Index: /branches/DataAnalysis/HeuristicLab 3.3.sln
===================================================================
--- /branches/DataAnalysis/HeuristicLab 3.3.sln (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab 3.3.sln (revision 4235)
@@ -0,0 +1,2259 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{96396439-A764-4022-A8D2-BE021449B8D1}"
+ ProjectSection(SolutionItems) = preProject
+ ConfigMerger.exe = ConfigMerger.exe
+ ..\documentation\License\gpl-3.0.txt = ..\documentation\License\gpl-3.0.txt
+ HeuristicLab 3.3.vsmdi = HeuristicLab 3.3.vsmdi
+ LocalTestRun.testrunconfig = LocalTestRun.testrunconfig
+ PreBuildEvent.cmd = PreBuildEvent.cmd
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.ExtLibs", "HeuristicLab.ExtLibs", "{07BCBC57-3E15-4582-B306-C046E516C49C}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.WinFormsUI", "HeuristicLab.WinFormsUI", "{7F485A48-A80F-4454-9A9B-7B126B43861C}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.WinFormsUI-2.3.1", "HeuristicLab.WinFormsUI-2.3.1", "{99AD3658-DB36-4E26-B4CC-6FEAACC5C88C}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.log4net", "HeuristicLab.log4net", "{BA3315A3-9D7C-4F5F-99F4-1C9B88FD32AE}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.Netron", "HeuristicLab.Netron", "{27D3A83C-DEEA-49DA-955E-65D3D703B2F1}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.Netron-3.0.2672.12446", "HeuristicLab.Netron-3.0.2672.12446", "{0A3CE05D-4FCD-40A4-9001-D57627554BBC}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.SharpDevelop", "HeuristicLab.SharpDevelop", "{F94E41E4-F25F-4302-8486-0BEF121CF5C8}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.ALGLIB", "HeuristicLab.ALGLIB", "{F0D06B07-1CB3-418E-88ED-CAE8DAACC7E0}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.ALGLIB-2.5.0", "HeuristicLab.ALGLIB-2.5.0", "{F1A195C9-98CD-47C6-9B74-3344EB258C5D}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.LibSVM", "HeuristicLab.LibSVM", "{782DDDA3-A7A3-404E-B751-6200CE2D5EF3}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.LibSVM-1.6.3", "HeuristicLab.LibSVM-1.6.3", "{16A50D44-107B-4601-A291-3B6870CD919D}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.ProtobufCS", "HeuristicLab.ProtobufCS", "{189F7770-5540-4832-B9A0-82474009680C}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HeuristicLab.ProtobufCS-0.9.1", "HeuristicLab.ProtobufCS-0.9.1", "{2F5318D7-9CC2-4B5A-A7FE-43985FEA7198}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.PluginInfrastructure-3.3", "HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj", "{94186A6A-5176-4402-AE83-886557B53CCA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Persistence-3.3", "HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj", "{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Persistence.GUI-3.3", "HeuristicLab.Persistence.GUI\3.3\HeuristicLab.Persistence.GUI-3.3.csproj", "{A9E282EA-180F-4233-B809-AEDF0787545C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Core-3.3", "HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj", "{C36BD924-A541-4A00-AFA8-41701378DDC5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Data-3.3", "HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj", "{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Operators-3.3", "HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj", "{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.SequentialEngine-3.3", "HeuristicLab.SequentialEngine\3.3\HeuristicLab.SequentialEngine-3.3.csproj", "{DC3D7072-7999-4719-B65D-3997744D5DC1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Random-3.3", "HeuristicLab.Random\3.3\HeuristicLab.Random-3.3.csproj", "{F4539FB6-4708-40C9-BE64-0A1390AEA197}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Selection-3.3", "HeuristicLab.Selection\3.3\HeuristicLab.Selection-3.3.csproj", "{2C36CD4F-E5F5-43A4-801A-201EA895FE17}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Operators.Programmable-3.3", "HeuristicLab.Operators.Programmable\3.3\HeuristicLab.Operators.Programmable-3.3.csproj", "{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab-3.3", "HeuristicLab\3.3\HeuristicLab-3.3.csproj", "{B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}"
+ ProjectSection(ProjectDependencies) = postProject
+ {89B50302-9CEE-4D13-9779-633EADCAE624} = {89B50302-9CEE-4D13-9779-633EADCAE624}
+ {125D3006-67F5-48CB-913E-73C0548F17FA} = {125D3006-67F5-48CB-913E-73C0548F17FA}
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD} = {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943} = {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}
+ {3081630C-9521-47D7-8075-1777C12F212C} = {3081630C-9521-47D7-8075-1777C12F212C}
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC} = {7252890C-F207-4AD6-B3C9-764DF93F73CC}
+ {25087811-F74C-4128-BC86-8324271DA13E} = {25087811-F74C-4128-BC86-8324271DA13E}
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2} = {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9} = {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}
+ {E226881D-315F-423D-B419-A766FE0D8685} = {E226881D-315F-423D-B419-A766FE0D8685}
+ {F62BCD22-FB83-4444-9401-8031C2487A86} = {F62BCD22-FB83-4444-9401-8031C2487A86}
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD} = {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E} = {CDA28124-ACD0-4231-8EB0-C510B361F84E}
+ {14AB8D24-25BC-400C-A846-4627AA945192} = {14AB8D24-25BC-400C-A846-4627AA945192}
+ {C36BD924-A541-4A00-AFA8-41701378DDC5} = {C36BD924-A541-4A00-AFA8-41701378DDC5}
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE} = {D58A232D-04BA-4186-B73E-0EC86FD31ABE}
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6} = {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB} = {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E} = {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} = {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}
+ {799B0B38-E384-4A17-A73C-F211EB854592} = {799B0B38-E384-4A17-A73C-F211EB854592}
+ {678E2145-8152-4E19-9646-07D439D00301} = {678E2145-8152-4E19-9646-07D439D00301}
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18} = {BB994448-2B21-4564-BB2E-38D8FFF8CF18}
+ {C49CB749-8B24-4628-8003-E86475749410} = {C49CB749-8B24-4628-8003-E86475749410}
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB} = {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777} = {1778134B-866B-4CB3-BFC0-52B2FAAA5777}
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B} = {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17} = {2C36CD4F-E5F5-43A4-801A-201EA895FE17}
+ {6024D74F-E29C-4E6B-843E-8851831B8E14} = {6024D74F-E29C-4E6B-843E-8851831B8E14}
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865} = {3EAF1454-086D-44A2-8509-B1BA24DB1865}
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A} = {2C429157-9C34-4DD3-9D5F-B444B751E39A}
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A} = {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF} = {01BBCB5A-144A-4A7E-908E-079849E2F7CF}
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342} = {96E5ED5B-187D-4012-9CDA-D85CDAD38342}
+ {E86E215D-E3CE-4244-978D-555D4E17AC09} = {E86E215D-E3CE-4244-978D-555D4E17AC09}
+ {C664305E-497C-4533-A140-967DEDB05C19} = {C664305E-497C-4533-A140-967DEDB05C19}
+ {8824925E-3E00-4543-8293-7DDACE4737F8} = {8824925E-3E00-4543-8293-7DDACE4737F8}
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809} = {E10F395F-C8A6-48AD-B470-9AA7A1F43809}
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5} = {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5} = {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7} = {56F9106A-079F-4C61-92F6-86A84C2D84B7}
+ {30D6606B-96E7-436C-B5D7-EA1455848E37} = {30D6606B-96E7-436C-B5D7-EA1455848E37}
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12} = {A8D5676D-9662-437A-B44D-ECB4046CDE12}
+ {DC3D7072-7999-4719-B65D-3997744D5DC1} = {DC3D7072-7999-4719-B65D-3997744D5DC1}
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9} = {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}
+ {57F38579-409D-4DD8-AB19-3F2C4A665126} = {57F38579-409D-4DD8-AB19-3F2C4A665126}
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1} = {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC} = {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F} = {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A} = {D767C38D-8014-46B0-9A32-03A3AECCE34A}
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71} = {BF7D9494-A586-457B-8DF9-ED599F9E6A71}
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7} = {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}
+ {9B6EA19A-F894-4E00-B5A3-970514284772} = {9B6EA19A-F894-4E00-B5A3-970514284772}
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58} = {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664} = {15452B9F-A436-4139-8EE7-DA72FB8D3664}
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540} = {DE12659F-87C4-48E6-B2E3-4E73DD95A540}
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB} = {4FE983A1-AAF8-4977-B9E2-52B3224510CB}
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F} = {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71} = {6410BDA6-3641-42B2-BABA-AA626E2F6F71}
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4} = {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA} = {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9} = {887425B4-4348-49ED-A457-B7D2C26DDBF9}
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55} = {25735DB4-8E54-4A2C-83E3-A60C76565E55}
+ {A16F23B5-FB62-499E-A831-26953AA56FE2} = {A16F23B5-FB62-499E-A831-26953AA56FE2}
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197} = {F4539FB6-4708-40C9-BE64-0A1390AEA197}
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} = {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} = {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}
+ {AB687BBE-1BFE-476B-906D-44237135431D} = {AB687BBE-1BFE-476B-906D-44237135431D}
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83} = {66D249C3-A01D-42A8-82A2-919BC8EC3D83}
+ {236459CE-80CF-4991-972F-DE74C826BCCC} = {236459CE-80CF-4991-972F-DE74C826BCCC}
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515} = {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} = {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384} = {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}
+ {71D904D9-233B-44B2-ABB2-1525691228C5} = {71D904D9-233B-44B2-ABB2-1525691228C5}
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC} = {EE2034D9-6E27-48A1-B855-42D45F69A4FC}
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B} = {A9EE65D9-405B-4C9C-B470-FC911AAC541B}
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140} = {1B3063DB-D71C-4A6A-A359-883E8F53A140}
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0} = {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803} = {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8} = {88B9B0E3-344E-4196-82A3-0F9732506FE8}
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295} = {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0} = {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}
+ {A9E282EA-180F-4233-B809-AEDF0787545C} = {A9E282EA-180F-4233-B809-AEDF0787545C}
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA} = {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}
+ {5A4679EF-A8F3-4647-B722-441A36B3BA6B} = {5A4679EF-A8F3-4647-B722-441A36B3BA6B}
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} = {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} = {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5} = {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85} = {6F42C5F8-16CD-43EE-8208-FD4573A69D85}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Tracing-3.3", "HeuristicLab.Tracing\3.3\HeuristicLab.Tracing-3.3.csproj", "{EE2034D9-6E27-48A1-B855-42D45F69A4FC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Common.Resources-3.3", "HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj", "{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Optimizer-3.3", "HeuristicLab.Optimizer\3.3\HeuristicLab.Optimizer-3.3.csproj", "{C664305E-497C-4533-A140-967DEDB05C19}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Core.Views-3.3", "HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj", "{E226881D-315F-423D-B419-A766FE0D8685}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Collections-3.3", "HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj", "{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.WinFormsUI-2.3.1", "HeuristicLab.ExtLibs\HeuristicLab.WinFormsUI\2.3.1\HeuristicLab.WinFormsUI-2.3.1\HeuristicLab.WinFormsUI-2.3.1.csproj", "{678E2145-8152-4E19-9646-07D439D00301}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsUI-2.3.1", "HeuristicLab.ExtLibs\HeuristicLab.WinFormsUI\2.3.1\WinFormsUI-2.3.1\WinFormsUI-2.3.1.csproj", "{1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.log4net-1.2.10.0", "HeuristicLab.ExtLibs\HeuristicLab.log4net\1.2.10.0\HeuristicLab.log4net-1.2.10.0.csproj", "{1B3063DB-D71C-4A6A-A359-883E8F53A140}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Data.Views-3.3", "HeuristicLab.Data.Views\3.3\HeuristicLab.Data.Views-3.3.csproj", "{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Operators.Views-3.3", "HeuristicLab.Operators.Views\3.3\HeuristicLab.Operators.Views-3.3.csproj", "{C49CB749-8B24-4628-8003-E86475749410}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Parameters-3.3", "HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj", "{56F9106A-079F-4C61-92F6-86A84C2D84B7}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Parameters.Views-3.3", "HeuristicLab.Parameters.Views\3.3\HeuristicLab.Parameters.Views-3.3.csproj", "{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Netron.Diagramming.Core-3.0.2672.12446", "HeuristicLab.ExtLibs\HeuristicLab.Netron\3.0.2672.12446\Netron.Diagramming.Core-3.0.2672.12446\Netron.Diagramming.Core-3.0.2672.12446.csproj", "{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Netron-3.0.2672.12446", "HeuristicLab.ExtLibs\HeuristicLab.Netron\3.0.2672.12446\HeuristicLab.Netron-3.0.2672.12446\HeuristicLab.Netron-3.0.2672.12446.csproj", "{BB994448-2B21-4564-BB2E-38D8FFF8CF18}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Operators.Views.GraphVisualization-3.3", "HeuristicLab.Operators.Views.GraphVisualization\3.3\HeuristicLab.Operators.Views.GraphVisualization-3.3.csproj", "{57F38579-409D-4DD8-AB19-3F2C4A665126}"
+ ProjectSection(ProjectDependencies) = postProject
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18} = {BB994448-2B21-4564-BB2E-38D8FFF8CF18}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.CodeEditor-3.3", "HeuristicLab.CodeEditor\3.3\HeuristicLab.CodeEditor-3.3.csproj", "{489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.SharpDevelop-3.1.1.5327", "HeuristicLab.ExtLibs\HeuristicLab.SharpDevelop\3.1.1.5327\HeuristicLab.SharpDevelop-3.1.1.5327.csproj", "{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Optimization-3.3", "HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj", "{14AB8D24-25BC-400C-A846-4627AA945192}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Optimization.Views-3.3", "HeuristicLab.Optimization.Views\3.3\HeuristicLab.Optimization.Views-3.3.csproj", "{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Analysis-3.3", "HeuristicLab.Analysis\3.3\HeuristicLab.Analysis-3.3.csproj", "{887425B4-4348-49ED-A457-B7D2C26DDBF9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Analysis.Views-3.3", "HeuristicLab.Analysis.Views\3.3\HeuristicLab.Analysis.Views-3.3.csproj", "{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Persistence-3.3.Tests", "HeuristicLab.Persistence\3.3\Tests\HeuristicLab.Persistence-3.3.Tests.csproj", "{BF7D9494-A586-457B-8DF9-ED599F9E6A71}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Optimization.Operators-3.3", "HeuristicLab.Optimization.Operators\3.3\HeuristicLab.Optimization.Operators-3.3.csproj", "{25087811-F74C-4128-BC86-8324271DA13E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.PermutationEncoding-3.3", "HeuristicLab.Encodings.PermutationEncoding\3.3\HeuristicLab.Encodings.PermutationEncoding-3.3.csproj", "{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.PermutationEncoding-3.3.Tests", "HeuristicLab.Encodings.PermutationEncoding\3.3\Tests\HeuristicLab.Encodings.PermutationEncoding-3.3.Tests.csproj", "{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.RealVectorEncoding-3.3", "HeuristicLab.Encodings.RealVectorEncoding\3.3\HeuristicLab.Encodings.RealVectorEncoding-3.3.csproj", "{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.RealVectorEncoding-3.3.Tests", "HeuristicLab.Encodings.RealVectorEncoding\3.3\Tests\HeuristicLab.Encodings.RealVectorEncoding-3.3.Tests.csproj", "{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.IntegerVectorEncoding-3.3", "HeuristicLab.Encodings.IntegerVectorEncoding\3.3\HeuristicLab.Encodings.IntegerVectorEncoding-3.3.csproj", "{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.IntegerVectorEncoding-3.3.Tests", "HeuristicLab.Encodings.IntegerVectorEncoding\3.3\Tests\HeuristicLab.Encodings.IntegerVectorEncoding-3.3.Tests.csproj", "{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.BinaryVectorEncoding-3.3", "HeuristicLab.Encodings.BinaryVectorEncoding\3.3\HeuristicLab.Encodings.BinaryVectorEncoding-3.3.csproj", "{66D249C3-A01D-42A8-82A2-919BC8EC3D83}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.BinaryVectorEncoding-3.3.Tests", "HeuristicLab.Encodings.BinaryVectorEncoding\3.3\Tests\HeuristicLab.Encodings.BinaryVectorEncoding-3.3.Tests.csproj", "{30D6606B-96E7-436C-B5D7-EA1455848E37}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.OneMax-3.3", "HeuristicLab.Problems.OneMax\3.3\HeuristicLab.Problems.OneMax-3.3.csproj", "{F62BCD22-FB83-4444-9401-8031C2487A86}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Knapsack-3.3", "HeuristicLab.Problems.Knapsack\3.3\HeuristicLab.Problems.Knapsack-3.3.csproj", "{E10F395F-C8A6-48AD-B470-9AA7A1F43809}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Knapsack.Views-3.3", "HeuristicLab.Problems.Knapsack.Views\3.3\HeuristicLab.Problems.Knapsack.Views-3.3.csproj", "{A9EE65D9-405B-4C9C-B470-FC911AAC541B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.SimulatedAnnealing-3.3", "HeuristicLab.Algorithms.SimulatedAnnealing\3.3\HeuristicLab.Algorithms.SimulatedAnnealing-3.3.csproj", "{96E5ED5B-187D-4012-9CDA-D85CDAD38342}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Deployment-3.3", "HeuristicLab.Services.Deployment\3.3\HeuristicLab.Services.Deployment-3.3.csproj", "{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Deployment.DataAccess-3.3", "HeuristicLab.Services.Deployment.DataAccess\3.3\HeuristicLab.Services.Deployment.DataAccess-3.3.csproj", "{EBEBA863-DD05-4331-BE25-5758B15F7407}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.TabuSearch-3.3", "HeuristicLab.Algorithms.TabuSearch\3.3\HeuristicLab.Algorithms.TabuSearch-3.3.csproj", "{D58A232D-04BA-4186-B73E-0EC86FD31ABE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.LocalSearch-3.3", "HeuristicLab.Algorithms.LocalSearch\3.3\HeuristicLab.Algorithms.LocalSearch-3.3.csproj", "{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.EvolutionStrategy-3.3", "HeuristicLab.Algorithms.EvolutionStrategy\3.3\HeuristicLab.Algorithms.EvolutionStrategy-3.3.csproj", "{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.TravelingSalesman-3.3", "HeuristicLab.Problems.TravelingSalesman\3.3\HeuristicLab.Problems.TravelingSalesman-3.3.csproj", "{D767C38D-8014-46B0-9A32-03A3AECCE34A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.TravelingSalesman.Views-3.3", "HeuristicLab.Problems.TravelingSalesman.Views\3.3\HeuristicLab.Problems.TravelingSalesman.Views-3.3.csproj", "{CDA28124-ACD0-4231-8EB0-C510B361F84E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.TestFunctions-3.3", "HeuristicLab.Problems.TestFunctions\3.3\HeuristicLab.Problems.TestFunctions-3.3.csproj", "{88B9B0E3-344E-4196-82A3-0F9732506FE8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.TestFunctions.Views-3.3", "HeuristicLab.Problems.TestFunctions.Views\3.3\HeuristicLab.Problems.TestFunctions.Views-3.3.csproj", "{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.GeneticAlgorithm-3.3", "HeuristicLab.Algorithms.GeneticAlgorithm\3.3\HeuristicLab.Algorithms.GeneticAlgorithm-3.3.csproj", "{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.GeneticAlgorithm-3.3.Tests", "HeuristicLab.Algorithms.GeneticAlgorithm\3.3\Tests\HeuristicLab.Algorithms.GeneticAlgorithm-3.3.Tests.csproj", "{DE12659F-87C4-48E6-B2E3-4E73DD95A540}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Deployment-3.3.Tests", "HeuristicLab.Services.Deployment\3.3\Tests\HeuristicLab.Services.Deployment-3.3.Tests.csproj", "{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3", "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.3\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3.csproj", "{125D3006-67F5-48CB-913E-73C0548F17FA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ArtificialAnt-3.3", "HeuristicLab.Problems.ArtificialAnt\3.3\HeuristicLab.Problems.ArtificialAnt-3.3.csproj", "{F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ArtificialAnt.Views-3.3", "HeuristicLab.Problems.ArtificialAnt.Views\3.3\HeuristicLab.Problems.ArtificialAnt.Views-3.3.csproj", "{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.3", "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views\3.3\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.3.csproj", "{6F42C5F8-16CD-43EE-8208-FD4573A69D85}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis-3.3", "HeuristicLab.Problems.DataAnalysis\3.3\HeuristicLab.Problems.DataAnalysis-3.3.csproj", "{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Regression-3.3", "HeuristicLab.Problems.DataAnalysis.Regression\3.3\HeuristicLab.Problems.DataAnalysis.Regression-3.3.csproj", "{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3.Tests", "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.3\Tests\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3.Tests.csproj", "{8824925E-3E00-4543-8293-7DDACE4737F8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.ParticleSwarmOptimization-3.3", "HeuristicLab.Algorithms.ParticleSwarmOptimization\3.3\HeuristicLab.Algorithms.ParticleSwarmOptimization-3.3.csproj", "{2C429157-9C34-4DD3-9D5F-B444B751E39A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Views-3.3", "HeuristicLab.Problems.DataAnalysis.Views\3.3\HeuristicLab.Problems.DataAnalysis.Views-3.3.csproj", "{799B0B38-E384-4A17-A73C-F211EB854592}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3", "HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm\3.3\HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3.csproj", "{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Common-3.3", "HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj", "{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.PermutationEncoding.Views-3.3", "HeuristicLab.Encodings.PermutationEncoding.Views\3.3\HeuristicLab.Encodings.PermutationEncoding.Views-3.3.csproj", "{3EAF1454-086D-44A2-8509-B1BA24DB1865}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.MainForm-3.3", "HeuristicLab.MainForm\3.3\HeuristicLab.MainForm-3.3.csproj", "{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.MainForm.WindowsForms-3.3", "HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj", "{AB687BBE-1BFE-476B-906D-44237135431D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.OneMax.Views-3.3", "HeuristicLab.Problems.OneMax.Views\3.3\HeuristicLab.Problems.OneMax.Views-3.3.csproj", "{4FE983A1-AAF8-4977-B9E2-52B3224510CB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Tests-3.3", "HeuristicLab.Problems.DataAnalysis\3.3\Tests\HeuristicLab.Problems.DataAnalysis.Tests-3.3.csproj", "{5A4679EF-A8F3-4647-B722-441A36B3BA6B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.TestFunctions-3.3.Tests", "HeuristicLab.Problems.TestFunctions\3.3\Tests\HeuristicLab.Problems.TestFunctions-3.3.Tests.csproj", "{71D904D9-233B-44B2-ABB2-1525691228C5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ALGLIB-2.5.0", "HeuristicLab.ExtLibs\HeuristicLab.ALGLIB\2.5.0\ALGLIB-2.5.0\ALGLIB-2.5.0.csproj", "{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.ALGLIB-2.5.0", "HeuristicLab.ExtLibs\HeuristicLab.ALGLIB\2.5.0\HeuristicLab.ALGLIB-2.5.0\HeuristicLab.ALGLIB-2.5.0.csproj", "{01BBCB5A-144A-4A7E-908E-079849E2F7CF}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibSVM-1.6.3", "HeuristicLab.ExtLibs\HeuristicLab.LibSVM\1.6.3\LibSVM-1.6.3\LibSVM-1.6.3.csproj", "{A16F23B5-FB62-499E-A831-26953AA56FE2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.LibSVM-1.6.3", "HeuristicLab.ExtLibs\HeuristicLab.LibSVM\1.6.3\HeuristicLab.LibSVM-1.6.3\HeuristicLab.LibSVM-1.6.3.csproj", "{89B50302-9CEE-4D13-9779-633EADCAE624}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ExternalEvaluation-3.3", "HeuristicLab.Problems.ExternalEvaluation\3.3\HeuristicLab.Problems.ExternalEvaluation-3.3.csproj", "{25735DB4-8E54-4A2C-83E3-A60C76565E55}"
+ ProjectSection(ProjectDependencies) = postProject
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A} = {250ADE34-82FD-4BAE-86D5-985FBE589C4A}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.DataAnalysis-3.3", "HeuristicLab.Algorithms.DataAnalysis\3.3\HeuristicLab.Algorithms.DataAnalysis-3.3.csproj", "{A8D5676D-9662-437A-B44D-ECB4046CDE12}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffers", "HeuristicLab.ExtLibs\HeuristicLab.ProtobufCS\0.9.1\ProtobufCS\src\ProtocolBuffers\ProtocolBuffers.csproj", "{6908BDCE-D925-43F3-94AC-A531E6DF2591}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffers.Test", "HeuristicLab.ExtLibs\HeuristicLab.ProtobufCS\0.9.1\ProtobufCS\src\ProtocolBuffers.Test\ProtocolBuffers.Test.csproj", "{DD01ED24-3750-4567-9A23-1DB676A15610}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtoGen", "HeuristicLab.ExtLibs\HeuristicLab.ProtobufCS\0.9.1\ProtobufCS\src\ProtoGen\ProtoGen.csproj", "{250ADE34-82FD-4BAE-86D5-985FBE589C4A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtoGen.Test", "HeuristicLab.ExtLibs\HeuristicLab.ProtobufCS\0.9.1\ProtobufCS\src\ProtoGen.Test\ProtoGen.Test.csproj", "{C268DA4C-4004-47DA-AF23-44C983281A68}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.ProtobufCS-0.9.1", "HeuristicLab.ExtLibs\HeuristicLab.ProtobufCS\0.9.1\HeuristicLab.ProtobufCS\HeuristicLab.ProtobufCS-0.9.1.csproj", "{236459CE-80CF-4991-972F-DE74C826BCCC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ExternalEvaluation.Views-3.3", "HeuristicLab.Problems.ExternalEvaluation.Views\3.3\HeuristicLab.Problems.ExternalEvaluation.Views-3.3.csproj", "{3081630C-9521-47D7-8075-1777C12F212C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.VehicleRouting-3.3", "HeuristicLab.Problems.VehicleRouting\3.3\HeuristicLab.Problems.VehicleRouting-3.3.csproj", "{6410BDA6-3641-42B2-BABA-AA626E2F6F71}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.VehicleRouting.Views-3.3", "HeuristicLab.Problems.VehicleRouting.Views\3.3\HeuristicLab.Problems.VehicleRouting.Views-3.3.csproj", "{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.MainForm.WindowsForms-3.3.Tests", "HeuristicLab.MainForm.WindowsForms\3.3\Tests\HeuristicLab.MainForm.WindowsForms-3.3.Tests.csproj", "{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.NSGA2-3.3", "HeuristicLab.Algorithms.NSGA2\3.3\HeuristicLab.Algorithms.NSGA2-3.3.csproj", "{15452B9F-A436-4139-8EE7-DA72FB8D3664}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3", "HeuristicLab.Problems.DataAnalysis.MultiVariate\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3.csproj", "{2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression-3.3", "HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression-3.3.csproj", "{6024D74F-E29C-4E6B-843E-8851831B8E14}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.MultiVariate.Views-3.3", "HeuristicLab.Problems.DataAnalysis.MultiVariate.Views\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate.Views-3.3.csproj", "{9B6EA19A-F894-4E00-B5A3-970514284772}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.FeatureSelection-3.3", "HeuristicLab.Problems.DataAnalysis.FeatureSelection\3.3\HeuristicLab.Problems.DataAnalysis.FeatureSelection-3.3.csproj", "{7252890C-F207-4AD6-B3C9-764DF93F73CC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ExternalEvaluation.GP-3.3", "HeuristicLab.Problems.ExternalEvaluation.GP\3.3\HeuristicLab.Problems.ExternalEvaluation.GP-3.3.csproj", "{E86E215D-E3CE-4244-978D-555D4E17AC09}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3", "HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3.csproj", "{B3310CE1-0C05-410F-BA77-8DAD6CE3F803}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views-3.3", "HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views\3.3\HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views-3.3.csproj", "{C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ExternalEvaluation.GP.Views-3.3", "HeuristicLab.Problems.ExternalEvaluation.GP.Views\3.3\HeuristicLab.Problems.ExternalEvaluation.GP.Views-3.3.csproj", "{1778134B-866B-4CB3-BFC0-52B2FAAA5777}"
+EndProject
+Global
+ GlobalSection(TestCaseManagementSettings) = postSolution
+ CategoryFile = HeuristicLab 3.3.vsmdi
+ EndGlobalSection
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ Services|Any CPU = Services|Any CPU
+ Services|x64 = Services|x64
+ Services|x86 = Services|x86
+ Silverlight2|Any CPU = Silverlight2|Any CPU
+ Silverlight2|x64 = Silverlight2|x64
+ Silverlight2|x86 = Silverlight2|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x64.ActiveCfg = Debug|x64
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x64.Build.0 = Debug|x64
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x86.ActiveCfg = Debug|x86
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x86.Build.0 = Debug|x86
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Release|x64.ActiveCfg = Release|x64
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Release|x64.Build.0 = Release|x64
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Release|x86.ActiveCfg = Release|x86
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Release|x86.Build.0 = Release|x86
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Services|x64.ActiveCfg = Release|x64
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Services|x86.ActiveCfg = Release|x86
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Silverlight2|x64.ActiveCfg = Release|x64
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Silverlight2|x64.Build.0 = Release|x64
+ {94186A6A-5176-4402-AE83-886557B53CCA}.Silverlight2|x86.ActiveCfg = Release|x64
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x64.ActiveCfg = Debug|x64
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x64.Build.0 = Debug|x64
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x86.ActiveCfg = Debug|x86
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x86.Build.0 = Debug|x86
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x64.ActiveCfg = Release|x64
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x64.Build.0 = Release|x64
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x86.ActiveCfg = Release|x86
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x86.Build.0 = Release|x86
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Services|x64.ActiveCfg = Release|x64
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Services|x86.ActiveCfg = Release|x86
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Silverlight2|x64.ActiveCfg = Release|x86
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Silverlight2|x86.ActiveCfg = Release|x86
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Silverlight2|x86.Build.0 = Release|x86
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Debug|x64.ActiveCfg = Debug|x64
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Debug|x64.Build.0 = Debug|x64
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Debug|x86.ActiveCfg = Debug|x86
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Debug|x86.Build.0 = Debug|x86
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Release|x64.ActiveCfg = Release|x64
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Release|x64.Build.0 = Release|x64
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Release|x86.ActiveCfg = Release|x86
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Release|x86.Build.0 = Release|x86
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Services|x64.ActiveCfg = Release|x64
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Services|x86.ActiveCfg = Release|x86
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Silverlight2|x64.ActiveCfg = Release|x86
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Silverlight2|x86.ActiveCfg = Release|x86
+ {A9E282EA-180F-4233-B809-AEDF0787545C}.Silverlight2|x86.Build.0 = Release|x86
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x64.ActiveCfg = Debug|x64
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x64.Build.0 = Debug|x64
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x86.ActiveCfg = Debug|x86
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x86.Build.0 = Debug|x86
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x64.ActiveCfg = Release|x64
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x64.Build.0 = Release|x64
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x86.ActiveCfg = Release|x86
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x86.Build.0 = Release|x86
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Services|x64.ActiveCfg = Release|x64
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Services|x86.ActiveCfg = Release|x86
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Silverlight2|x64.ActiveCfg = Release|x64
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Silverlight2|x64.Build.0 = Release|x64
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}.Silverlight2|x86.ActiveCfg = Release|x64
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x64.ActiveCfg = Debug|x64
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x64.Build.0 = Debug|x64
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x86.ActiveCfg = Debug|x86
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x86.Build.0 = Debug|x86
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x64.ActiveCfg = Release|x64
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x64.Build.0 = Release|x64
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x86.ActiveCfg = Release|x86
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x86.Build.0 = Release|x86
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Services|x64.ActiveCfg = Release|x64
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Services|x86.ActiveCfg = Release|x86
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Silverlight2|x64.ActiveCfg = Release|x64
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Silverlight2|x64.Build.0 = Release|x64
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Silverlight2|x86.ActiveCfg = Release|x64
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x64.ActiveCfg = Debug|x64
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x64.Build.0 = Debug|x64
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x86.ActiveCfg = Debug|x86
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x86.Build.0 = Debug|x86
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x64.ActiveCfg = Release|x64
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x64.Build.0 = Release|x64
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x86.ActiveCfg = Release|x86
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x86.Build.0 = Release|x86
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Services|x64.ActiveCfg = Release|x64
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Services|x86.ActiveCfg = Release|x86
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Silverlight2|x64.ActiveCfg = Release|x64
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Silverlight2|x64.Build.0 = Release|x64
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Silverlight2|x86.ActiveCfg = Release|x64
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x64.ActiveCfg = Debug|x64
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x64.Build.0 = Debug|x64
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x86.ActiveCfg = Debug|x86
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x86.Build.0 = Debug|x86
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x64.ActiveCfg = Release|x64
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x64.Build.0 = Release|x64
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x86.ActiveCfg = Release|x86
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x86.Build.0 = Release|x86
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Services|x64.ActiveCfg = Release|x64
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Services|x86.ActiveCfg = Release|x86
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Silverlight2|x64.ActiveCfg = Release|x64
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Silverlight2|x64.Build.0 = Release|x64
+ {DC3D7072-7999-4719-B65D-3997744D5DC1}.Silverlight2|x86.ActiveCfg = Release|x64
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x64.ActiveCfg = Debug|x64
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x64.Build.0 = Debug|x64
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x86.ActiveCfg = Debug|x86
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x86.Build.0 = Debug|x86
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x64.ActiveCfg = Release|x64
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x64.Build.0 = Release|x64
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x86.ActiveCfg = Release|x86
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x86.Build.0 = Release|x86
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Services|x64.ActiveCfg = Release|x64
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Services|x86.ActiveCfg = Release|x86
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Silverlight2|x64.ActiveCfg = Release|x64
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Silverlight2|x64.Build.0 = Release|x64
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Silverlight2|x86.ActiveCfg = Release|x64
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x64.ActiveCfg = Debug|x64
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x64.Build.0 = Debug|x64
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x86.ActiveCfg = Debug|x86
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x86.Build.0 = Debug|x86
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x64.ActiveCfg = Release|x64
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x64.Build.0 = Release|x64
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x86.ActiveCfg = Release|x86
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x86.Build.0 = Release|x86
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Services|x64.ActiveCfg = Release|x64
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Services|x86.ActiveCfg = Release|x86
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Silverlight2|x64.ActiveCfg = Release|x64
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Silverlight2|x64.Build.0 = Release|x64
+ {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Silverlight2|x86.ActiveCfg = Release|x64
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|x64.ActiveCfg = Debug|x64
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|x64.Build.0 = Debug|x64
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|x86.ActiveCfg = Debug|x86
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|x86.Build.0 = Debug|x86
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|x64.ActiveCfg = Release|x64
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|x64.Build.0 = Release|x64
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|x86.ActiveCfg = Release|x86
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|x86.Build.0 = Release|x86
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Services|x64.ActiveCfg = Release|x64
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Services|x86.ActiveCfg = Release|x86
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Silverlight2|x64.ActiveCfg = Release|x64
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Silverlight2|x64.Build.0 = Release|x64
+ {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Silverlight2|x86.ActiveCfg = Release|x64
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Debug|x64.ActiveCfg = Debug|x64
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Debug|x64.Build.0 = Debug|x64
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Debug|x86.ActiveCfg = Debug|x86
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Debug|x86.Build.0 = Debug|x86
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Release|x64.ActiveCfg = Release|x64
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Release|x64.Build.0 = Release|x64
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Release|x86.ActiveCfg = Release|x86
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Release|x86.Build.0 = Release|x86
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Services|x64.ActiveCfg = Release|x64
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Services|x86.ActiveCfg = Release|x86
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Silverlight2|x64.ActiveCfg = Release|x64
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Silverlight2|x64.Build.0 = Release|x64
+ {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Silverlight2|x86.ActiveCfg = Release|x64
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x64.ActiveCfg = Debug|x64
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x64.Build.0 = Debug|x64
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x86.ActiveCfg = Debug|x86
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x86.Build.0 = Debug|x86
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x64.ActiveCfg = Release|x64
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x64.Build.0 = Release|x64
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x86.ActiveCfg = Release|x86
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x86.Build.0 = Release|x86
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Services|x64.ActiveCfg = Release|x64
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Services|x86.ActiveCfg = Release|x86
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Silverlight2|x64.ActiveCfg = Release|x86
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Silverlight2|x86.ActiveCfg = Release|x86
+ {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Silverlight2|x86.Build.0 = Release|x86
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|x64.ActiveCfg = Debug|x64
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|x64.Build.0 = Debug|x64
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|x86.ActiveCfg = Debug|x86
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|x86.Build.0 = Debug|x86
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|x64.ActiveCfg = Release|x64
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|x64.Build.0 = Release|x64
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|x86.ActiveCfg = Release|x86
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|x86.Build.0 = Release|x86
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Services|x64.ActiveCfg = Release|x64
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Services|x86.ActiveCfg = Release|x86
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Silverlight2|x64.ActiveCfg = Release|x64
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Silverlight2|x64.Build.0 = Release|x64
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Silverlight2|x86.ActiveCfg = Release|x64
+ {C664305E-497C-4533-A140-967DEDB05C19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C664305E-497C-4533-A140-967DEDB05C19}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C664305E-497C-4533-A140-967DEDB05C19}.Debug|x64.ActiveCfg = Debug|x64
+ {C664305E-497C-4533-A140-967DEDB05C19}.Debug|x64.Build.0 = Debug|x64
+ {C664305E-497C-4533-A140-967DEDB05C19}.Debug|x86.ActiveCfg = Debug|x86
+ {C664305E-497C-4533-A140-967DEDB05C19}.Debug|x86.Build.0 = Debug|x86
+ {C664305E-497C-4533-A140-967DEDB05C19}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C664305E-497C-4533-A140-967DEDB05C19}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C664305E-497C-4533-A140-967DEDB05C19}.Release|x64.ActiveCfg = Release|x64
+ {C664305E-497C-4533-A140-967DEDB05C19}.Release|x64.Build.0 = Release|x64
+ {C664305E-497C-4533-A140-967DEDB05C19}.Release|x86.ActiveCfg = Release|x86
+ {C664305E-497C-4533-A140-967DEDB05C19}.Release|x86.Build.0 = Release|x86
+ {C664305E-497C-4533-A140-967DEDB05C19}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {C664305E-497C-4533-A140-967DEDB05C19}.Services|x64.ActiveCfg = Release|x64
+ {C664305E-497C-4533-A140-967DEDB05C19}.Services|x86.ActiveCfg = Release|x86
+ {C664305E-497C-4533-A140-967DEDB05C19}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {C664305E-497C-4533-A140-967DEDB05C19}.Silverlight2|x64.ActiveCfg = Release|x86
+ {C664305E-497C-4533-A140-967DEDB05C19}.Silverlight2|x86.ActiveCfg = Release|x86
+ {C664305E-497C-4533-A140-967DEDB05C19}.Silverlight2|x86.Build.0 = Release|x86
+ {E226881D-315F-423D-B419-A766FE0D8685}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E226881D-315F-423D-B419-A766FE0D8685}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E226881D-315F-423D-B419-A766FE0D8685}.Debug|x64.ActiveCfg = Debug|x64
+ {E226881D-315F-423D-B419-A766FE0D8685}.Debug|x64.Build.0 = Debug|x64
+ {E226881D-315F-423D-B419-A766FE0D8685}.Debug|x86.ActiveCfg = Debug|x86
+ {E226881D-315F-423D-B419-A766FE0D8685}.Debug|x86.Build.0 = Debug|x86
+ {E226881D-315F-423D-B419-A766FE0D8685}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E226881D-315F-423D-B419-A766FE0D8685}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E226881D-315F-423D-B419-A766FE0D8685}.Release|x64.ActiveCfg = Release|x64
+ {E226881D-315F-423D-B419-A766FE0D8685}.Release|x64.Build.0 = Release|x64
+ {E226881D-315F-423D-B419-A766FE0D8685}.Release|x86.ActiveCfg = Release|x86
+ {E226881D-315F-423D-B419-A766FE0D8685}.Release|x86.Build.0 = Release|x86
+ {E226881D-315F-423D-B419-A766FE0D8685}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {E226881D-315F-423D-B419-A766FE0D8685}.Services|x64.ActiveCfg = Release|x64
+ {E226881D-315F-423D-B419-A766FE0D8685}.Services|x86.ActiveCfg = Release|x86
+ {E226881D-315F-423D-B419-A766FE0D8685}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {E226881D-315F-423D-B419-A766FE0D8685}.Silverlight2|x64.ActiveCfg = Release|x86
+ {E226881D-315F-423D-B419-A766FE0D8685}.Silverlight2|x86.ActiveCfg = Release|x86
+ {E226881D-315F-423D-B419-A766FE0D8685}.Silverlight2|x86.Build.0 = Release|x86
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x64.ActiveCfg = Debug|x64
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x64.Build.0 = Debug|x64
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x86.ActiveCfg = Debug|x86
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x86.Build.0 = Debug|x86
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x64.ActiveCfg = Release|x64
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x64.Build.0 = Release|x64
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x86.ActiveCfg = Release|x86
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x86.Build.0 = Release|x86
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Services|x64.ActiveCfg = Release|x64
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Services|x86.ActiveCfg = Release|x86
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Silverlight2|x64.ActiveCfg = Release|x86
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Silverlight2|x86.ActiveCfg = Release|x86
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Silverlight2|x86.Build.0 = Release|x86
+ {678E2145-8152-4E19-9646-07D439D00301}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {678E2145-8152-4E19-9646-07D439D00301}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {678E2145-8152-4E19-9646-07D439D00301}.Debug|x64.ActiveCfg = Debug|x64
+ {678E2145-8152-4E19-9646-07D439D00301}.Debug|x64.Build.0 = Debug|x64
+ {678E2145-8152-4E19-9646-07D439D00301}.Debug|x86.ActiveCfg = Debug|x86
+ {678E2145-8152-4E19-9646-07D439D00301}.Debug|x86.Build.0 = Debug|x86
+ {678E2145-8152-4E19-9646-07D439D00301}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {678E2145-8152-4E19-9646-07D439D00301}.Release|Any CPU.Build.0 = Release|Any CPU
+ {678E2145-8152-4E19-9646-07D439D00301}.Release|x64.ActiveCfg = Release|x64
+ {678E2145-8152-4E19-9646-07D439D00301}.Release|x64.Build.0 = Release|x64
+ {678E2145-8152-4E19-9646-07D439D00301}.Release|x86.ActiveCfg = Release|x86
+ {678E2145-8152-4E19-9646-07D439D00301}.Release|x86.Build.0 = Release|x86
+ {678E2145-8152-4E19-9646-07D439D00301}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {678E2145-8152-4E19-9646-07D439D00301}.Services|x64.ActiveCfg = Release|x64
+ {678E2145-8152-4E19-9646-07D439D00301}.Services|x86.ActiveCfg = Release|x86
+ {678E2145-8152-4E19-9646-07D439D00301}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {678E2145-8152-4E19-9646-07D439D00301}.Silverlight2|x64.ActiveCfg = Release|x86
+ {678E2145-8152-4E19-9646-07D439D00301}.Silverlight2|x86.ActiveCfg = Release|x86
+ {678E2145-8152-4E19-9646-07D439D00301}.Silverlight2|x86.Build.0 = Release|x86
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Debug|x64.ActiveCfg = Debug|x64
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Debug|x64.Build.0 = Debug|x64
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Debug|x86.ActiveCfg = Debug|x86
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Debug|x86.Build.0 = Debug|x86
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Release|x64.ActiveCfg = Release|x64
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Release|x64.Build.0 = Release|x64
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Release|x86.ActiveCfg = Release|x86
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Release|x86.Build.0 = Release|x86
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Services|x64.ActiveCfg = Release|x64
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Services|x86.ActiveCfg = Release|x86
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Silverlight2|x64.ActiveCfg = Release|x64
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Silverlight2|x64.Build.0 = Release|x64
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB}.Silverlight2|x86.ActiveCfg = Release|x64
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Debug|x64.ActiveCfg = Debug|x64
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Debug|x64.Build.0 = Debug|x64
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Debug|x86.ActiveCfg = Debug|x86
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Debug|x86.Build.0 = Debug|x86
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Release|x64.ActiveCfg = Release|x64
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Release|x64.Build.0 = Release|x64
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Release|x86.ActiveCfg = Release|x86
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Release|x86.Build.0 = Release|x86
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Services|x64.ActiveCfg = Release|x64
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Services|x86.ActiveCfg = Release|x86
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Silverlight2|x64.ActiveCfg = Release|x86
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Silverlight2|x86.ActiveCfg = Release|x86
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140}.Silverlight2|x86.Build.0 = Release|x86
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Debug|x64.ActiveCfg = Debug|x64
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Debug|x64.Build.0 = Debug|x64
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Debug|x86.ActiveCfg = Debug|x86
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Debug|x86.Build.0 = Debug|x86
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Release|Any CPU.Build.0 = Release|Any CPU
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Release|x64.ActiveCfg = Release|x64
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Release|x64.Build.0 = Release|x64
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Release|x86.ActiveCfg = Release|x86
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Release|x86.Build.0 = Release|x86
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Services|x64.ActiveCfg = Release|x64
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Services|x86.ActiveCfg = Release|x86
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Silverlight2|x64.ActiveCfg = Release|x86
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Silverlight2|x86.ActiveCfg = Release|x86
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Silverlight2|x86.Build.0 = Release|x86
+ {C49CB749-8B24-4628-8003-E86475749410}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C49CB749-8B24-4628-8003-E86475749410}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C49CB749-8B24-4628-8003-E86475749410}.Debug|x64.ActiveCfg = Debug|x64
+ {C49CB749-8B24-4628-8003-E86475749410}.Debug|x64.Build.0 = Debug|x64
+ {C49CB749-8B24-4628-8003-E86475749410}.Debug|x86.ActiveCfg = Debug|x86
+ {C49CB749-8B24-4628-8003-E86475749410}.Debug|x86.Build.0 = Debug|x86
+ {C49CB749-8B24-4628-8003-E86475749410}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C49CB749-8B24-4628-8003-E86475749410}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C49CB749-8B24-4628-8003-E86475749410}.Release|x64.ActiveCfg = Release|x64
+ {C49CB749-8B24-4628-8003-E86475749410}.Release|x64.Build.0 = Release|x64
+ {C49CB749-8B24-4628-8003-E86475749410}.Release|x86.ActiveCfg = Release|x86
+ {C49CB749-8B24-4628-8003-E86475749410}.Release|x86.Build.0 = Release|x86
+ {C49CB749-8B24-4628-8003-E86475749410}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {C49CB749-8B24-4628-8003-E86475749410}.Services|x64.ActiveCfg = Release|x64
+ {C49CB749-8B24-4628-8003-E86475749410}.Services|x86.ActiveCfg = Release|x86
+ {C49CB749-8B24-4628-8003-E86475749410}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {C49CB749-8B24-4628-8003-E86475749410}.Silverlight2|x64.ActiveCfg = Release|x86
+ {C49CB749-8B24-4628-8003-E86475749410}.Silverlight2|x86.ActiveCfg = Release|x86
+ {C49CB749-8B24-4628-8003-E86475749410}.Silverlight2|x86.Build.0 = Release|x86
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x64.ActiveCfg = Debug|x64
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x64.Build.0 = Debug|x64
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x86.ActiveCfg = Debug|x86
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x86.Build.0 = Debug|x86
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x64.ActiveCfg = Release|x64
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x64.Build.0 = Release|x64
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x86.ActiveCfg = Release|x86
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x86.Build.0 = Release|x86
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Services|x64.ActiveCfg = Release|x64
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Services|x86.ActiveCfg = Release|x86
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Silverlight2|x64.ActiveCfg = Release|x86
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Silverlight2|x86.ActiveCfg = Release|x86
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Silverlight2|x86.Build.0 = Release|x86
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Debug|x64.ActiveCfg = Debug|x64
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Debug|x64.Build.0 = Debug|x64
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Debug|x86.ActiveCfg = Debug|x86
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Debug|x86.Build.0 = Debug|x86
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Release|x64.ActiveCfg = Release|x64
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Release|x64.Build.0 = Release|x64
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Release|x86.ActiveCfg = Release|x86
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Release|x86.Build.0 = Release|x86
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Services|x64.ActiveCfg = Release|x64
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Services|x86.ActiveCfg = Release|x86
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Silverlight2|x64.ActiveCfg = Release|x86
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Silverlight2|x86.ActiveCfg = Release|x86
+ {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Silverlight2|x86.Build.0 = Release|x86
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Debug|x64.ActiveCfg = Debug|x64
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Debug|x64.Build.0 = Debug|x64
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Debug|x86.ActiveCfg = Debug|x86
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Debug|x86.Build.0 = Debug|x86
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Release|x64.ActiveCfg = Release|x64
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Release|x64.Build.0 = Release|x64
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Release|x86.ActiveCfg = Release|x86
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Release|x86.Build.0 = Release|x86
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Services|x64.ActiveCfg = Release|x64
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Services|x86.ActiveCfg = Release|x86
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Silverlight2|x64.ActiveCfg = Release|x64
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Silverlight2|x64.Build.0 = Release|x64
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}.Silverlight2|x86.ActiveCfg = Release|x64
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Debug|x64.ActiveCfg = Debug|x64
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Debug|x64.Build.0 = Debug|x64
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Debug|x86.ActiveCfg = Debug|x86
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Debug|x86.Build.0 = Debug|x86
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Release|x64.ActiveCfg = Release|x64
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Release|x64.Build.0 = Release|x64
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Release|x86.ActiveCfg = Release|x86
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Release|x86.Build.0 = Release|x86
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Services|x64.ActiveCfg = Release|x64
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Services|x86.ActiveCfg = Release|x86
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Silverlight2|x64.ActiveCfg = Release|x64
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Silverlight2|x64.Build.0 = Release|x64
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18}.Silverlight2|x86.ActiveCfg = Release|x64
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Debug|x64.ActiveCfg = Debug|x64
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Debug|x64.Build.0 = Debug|x64
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Debug|x86.ActiveCfg = Debug|x86
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Debug|x86.Build.0 = Debug|x86
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Release|Any CPU.Build.0 = Release|Any CPU
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Release|x64.ActiveCfg = Release|x64
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Release|x64.Build.0 = Release|x64
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Release|x86.ActiveCfg = Release|x86
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Release|x86.Build.0 = Release|x86
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Services|x64.ActiveCfg = Release|x64
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Services|x86.ActiveCfg = Release|x86
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Silverlight2|x64.ActiveCfg = Release|x64
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Silverlight2|x64.Build.0 = Release|x64
+ {57F38579-409D-4DD8-AB19-3F2C4A665126}.Silverlight2|x86.ActiveCfg = Release|x64
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Debug|x64.ActiveCfg = Debug|x64
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Debug|x64.Build.0 = Debug|x64
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Debug|x86.ActiveCfg = Debug|x86
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Debug|x86.Build.0 = Debug|x86
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Release|x64.ActiveCfg = Release|x64
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Release|x64.Build.0 = Release|x64
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Release|x86.ActiveCfg = Release|x86
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Release|x86.Build.0 = Release|x86
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Services|x64.ActiveCfg = Release|x64
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Services|x86.ActiveCfg = Release|x86
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Silverlight2|x64.ActiveCfg = Release|x64
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Silverlight2|x64.Build.0 = Release|x64
+ {489CFE09-FDF7-4C89-BAB5-BD09CADD61AD}.Silverlight2|x86.ActiveCfg = Release|x64
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Debug|x64.ActiveCfg = Debug|x64
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Debug|x64.Build.0 = Debug|x64
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Debug|x86.ActiveCfg = Debug|x86
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Debug|x86.Build.0 = Debug|x86
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Release|x64.ActiveCfg = Release|x64
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Release|x64.Build.0 = Release|x64
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Release|x86.ActiveCfg = Release|x86
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Release|x86.Build.0 = Release|x86
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Services|x64.ActiveCfg = Release|x64
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Services|x86.ActiveCfg = Release|x86
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Silverlight2|x64.ActiveCfg = Release|x64
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Silverlight2|x64.Build.0 = Release|x64
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}.Silverlight2|x86.ActiveCfg = Release|x64
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x64.ActiveCfg = Debug|x64
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x64.Build.0 = Debug|x64
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x86.ActiveCfg = Debug|x86
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x86.Build.0 = Debug|x86
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Release|Any CPU.Build.0 = Release|Any CPU
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Release|x64.ActiveCfg = Release|x64
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Release|x64.Build.0 = Release|x64
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Release|x86.ActiveCfg = Release|x86
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Release|x86.Build.0 = Release|x86
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Services|x64.ActiveCfg = Release|x64
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Services|x86.ActiveCfg = Release|x86
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Silverlight2|x64.ActiveCfg = Release|x64
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Silverlight2|x64.Build.0 = Release|x64
+ {14AB8D24-25BC-400C-A846-4627AA945192}.Silverlight2|x86.ActiveCfg = Release|x64
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Debug|x64.ActiveCfg = Debug|x64
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Debug|x64.Build.0 = Debug|x64
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Debug|x86.ActiveCfg = Debug|x86
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Debug|x86.Build.0 = Debug|x86
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Release|x64.ActiveCfg = Release|x64
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Release|x64.Build.0 = Release|x64
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Release|x86.ActiveCfg = Release|x86
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Release|x86.Build.0 = Release|x86
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Services|x64.ActiveCfg = Release|x64
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Services|x86.ActiveCfg = Release|x86
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Silverlight2|x64.ActiveCfg = Release|x64
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Silverlight2|x64.Build.0 = Release|x64
+ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Silverlight2|x86.ActiveCfg = Release|x64
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x64.ActiveCfg = Debug|x64
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x64.Build.0 = Debug|x64
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x86.ActiveCfg = Debug|x86
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x86.Build.0 = Debug|x86
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x64.ActiveCfg = Release|x64
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x64.Build.0 = Release|x64
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x86.ActiveCfg = Release|x86
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x86.Build.0 = Release|x86
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Services|x64.ActiveCfg = Release|x64
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Services|x86.ActiveCfg = Release|x86
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Silverlight2|x64.ActiveCfg = Release|x64
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Silverlight2|x64.Build.0 = Release|x64
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Silverlight2|x86.ActiveCfg = Release|x64
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Debug|x64.ActiveCfg = Debug|x64
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Debug|x64.Build.0 = Debug|x64
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Debug|x86.ActiveCfg = Debug|x86
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Debug|x86.Build.0 = Debug|x86
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Release|x64.ActiveCfg = Release|x64
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Release|x64.Build.0 = Release|x64
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Release|x86.ActiveCfg = Release|x86
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Release|x86.Build.0 = Release|x86
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Services|x64.ActiveCfg = Release|x64
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Services|x86.ActiveCfg = Release|x86
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Silverlight2|x64.ActiveCfg = Release|x64
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Silverlight2|x64.Build.0 = Release|x64
+ {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Silverlight2|x86.ActiveCfg = Release|x64
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Debug|x64.ActiveCfg = Debug|x64
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Debug|x64.Build.0 = Debug|x64
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Debug|x86.ActiveCfg = Debug|x86
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Debug|x86.Build.0 = Debug|x86
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Release|x64.ActiveCfg = Release|x64
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Release|x64.Build.0 = Release|x64
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Release|x86.ActiveCfg = Release|x86
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Release|x86.Build.0 = Release|x86
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Services|x64.ActiveCfg = Release|x64
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Services|x86.ActiveCfg = Release|x86
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Silverlight2|x64.ActiveCfg = Release|x86
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Silverlight2|x86.ActiveCfg = Release|x86
+ {BF7D9494-A586-457B-8DF9-ED599F9E6A71}.Silverlight2|x86.Build.0 = Release|x86
+ {25087811-F74C-4128-BC86-8324271DA13E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {25087811-F74C-4128-BC86-8324271DA13E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {25087811-F74C-4128-BC86-8324271DA13E}.Debug|x64.ActiveCfg = Debug|x64
+ {25087811-F74C-4128-BC86-8324271DA13E}.Debug|x64.Build.0 = Debug|x64
+ {25087811-F74C-4128-BC86-8324271DA13E}.Debug|x86.ActiveCfg = Debug|x86
+ {25087811-F74C-4128-BC86-8324271DA13E}.Debug|x86.Build.0 = Debug|x86
+ {25087811-F74C-4128-BC86-8324271DA13E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {25087811-F74C-4128-BC86-8324271DA13E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {25087811-F74C-4128-BC86-8324271DA13E}.Release|x64.ActiveCfg = Release|x64
+ {25087811-F74C-4128-BC86-8324271DA13E}.Release|x64.Build.0 = Release|x64
+ {25087811-F74C-4128-BC86-8324271DA13E}.Release|x86.ActiveCfg = Release|x86
+ {25087811-F74C-4128-BC86-8324271DA13E}.Release|x86.Build.0 = Release|x86
+ {25087811-F74C-4128-BC86-8324271DA13E}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {25087811-F74C-4128-BC86-8324271DA13E}.Services|x64.ActiveCfg = Release|x64
+ {25087811-F74C-4128-BC86-8324271DA13E}.Services|x86.ActiveCfg = Release|x86
+ {25087811-F74C-4128-BC86-8324271DA13E}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {25087811-F74C-4128-BC86-8324271DA13E}.Silverlight2|x64.ActiveCfg = Release|x64
+ {25087811-F74C-4128-BC86-8324271DA13E}.Silverlight2|x64.Build.0 = Release|x64
+ {25087811-F74C-4128-BC86-8324271DA13E}.Silverlight2|x86.ActiveCfg = Release|x64
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x64.ActiveCfg = Debug|x64
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x64.Build.0 = Debug|x64
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x86.ActiveCfg = Debug|x86
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x86.Build.0 = Debug|x86
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x64.ActiveCfg = Release|x64
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x64.Build.0 = Release|x64
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x86.ActiveCfg = Release|x86
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x86.Build.0 = Release|x86
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Services|x64.ActiveCfg = Release|x64
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Services|x86.ActiveCfg = Release|x86
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Silverlight2|x64.ActiveCfg = Release|x64
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Silverlight2|x64.Build.0 = Release|x64
+ {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Silverlight2|x86.ActiveCfg = Release|x64
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|x64.ActiveCfg = Debug|x64
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|x64.Build.0 = Debug|x64
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|x86.ActiveCfg = Debug|x86
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|x86.Build.0 = Debug|x86
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|Any CPU.Build.0 = Release|Any CPU
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|x64.ActiveCfg = Release|x64
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|x64.Build.0 = Release|x64
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|x86.ActiveCfg = Release|x86
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|x86.Build.0 = Release|x86
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Services|x64.ActiveCfg = Release|x64
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Services|x86.ActiveCfg = Release|x86
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Silverlight2|x64.ActiveCfg = Release|x64
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Silverlight2|x64.Build.0 = Release|x64
+ {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Silverlight2|x86.ActiveCfg = Release|x64
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x64.ActiveCfg = Debug|x64
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x64.Build.0 = Debug|x64
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x86.ActiveCfg = Debug|x86
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x86.Build.0 = Debug|x86
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x64.ActiveCfg = Release|x64
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x64.Build.0 = Release|x64
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x86.ActiveCfg = Release|x86
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x86.Build.0 = Release|x86
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Services|x64.ActiveCfg = Release|x64
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Services|x86.ActiveCfg = Release|x86
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Silverlight2|x64.ActiveCfg = Release|x64
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Silverlight2|x64.Build.0 = Release|x64
+ {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Silverlight2|x86.ActiveCfg = Release|x64
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|x64.ActiveCfg = Debug|x64
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|x64.Build.0 = Debug|x64
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|x86.ActiveCfg = Debug|x86
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|x86.Build.0 = Debug|x86
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|x64.ActiveCfg = Release|x64
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|x64.Build.0 = Release|x64
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|x86.ActiveCfg = Release|x86
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|x86.Build.0 = Release|x86
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Services|x64.ActiveCfg = Release|x64
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Services|x86.ActiveCfg = Release|x86
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Silverlight2|x64.ActiveCfg = Release|x64
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Silverlight2|x64.Build.0 = Release|x64
+ {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Silverlight2|x86.ActiveCfg = Release|x64
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x64.ActiveCfg = Debug|x64
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x64.Build.0 = Debug|x64
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x86.ActiveCfg = Debug|x86
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x86.Build.0 = Debug|x86
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x64.ActiveCfg = Release|x64
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x64.Build.0 = Release|x64
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x86.ActiveCfg = Release|x86
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x86.Build.0 = Release|x86
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Services|x64.ActiveCfg = Release|x64
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Services|x86.ActiveCfg = Release|x86
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Silverlight2|x64.ActiveCfg = Release|x86
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Silverlight2|x86.ActiveCfg = Release|x86
+ {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Silverlight2|x86.Build.0 = Release|x86
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|x64.ActiveCfg = Debug|x64
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|x64.Build.0 = Debug|x64
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|x86.ActiveCfg = Debug|x86
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|x86.Build.0 = Debug|x86
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|x64.ActiveCfg = Release|x64
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|x64.Build.0 = Release|x64
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|x86.ActiveCfg = Release|x86
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|x86.Build.0 = Release|x86
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Services|x64.ActiveCfg = Release|x64
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Services|x86.ActiveCfg = Release|x86
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Silverlight2|x64.ActiveCfg = Release|x86
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Silverlight2|x86.ActiveCfg = Release|x86
+ {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Silverlight2|x86.Build.0 = Release|x86
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x64.ActiveCfg = Debug|x64
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x64.Build.0 = Debug|x64
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x86.ActiveCfg = Debug|x86
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x86.Build.0 = Debug|x86
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|Any CPU.Build.0 = Release|Any CPU
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x64.ActiveCfg = Release|x64
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x64.Build.0 = Release|x64
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x86.ActiveCfg = Release|x86
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x86.Build.0 = Release|x86
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Services|x64.ActiveCfg = Release|x64
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Services|x86.ActiveCfg = Release|x86
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Silverlight2|x64.ActiveCfg = Release|x86
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Silverlight2|x86.ActiveCfg = Release|x86
+ {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Silverlight2|x86.Build.0 = Release|x86
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|x64.ActiveCfg = Debug|x64
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|x64.Build.0 = Debug|x64
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|x86.ActiveCfg = Debug|x86
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|x86.Build.0 = Debug|x86
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|Any CPU.Build.0 = Release|Any CPU
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|x64.ActiveCfg = Release|x64
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|x64.Build.0 = Release|x64
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|x86.ActiveCfg = Release|x86
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|x86.Build.0 = Release|x86
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Services|x64.ActiveCfg = Release|x64
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Services|x86.ActiveCfg = Release|x86
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Silverlight2|x64.ActiveCfg = Release|x86
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Silverlight2|x86.ActiveCfg = Release|x86
+ {30D6606B-96E7-436C-B5D7-EA1455848E37}.Silverlight2|x86.Build.0 = Release|x86
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Debug|x64.ActiveCfg = Debug|x64
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Debug|x64.Build.0 = Debug|x64
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Debug|x86.ActiveCfg = Debug|x86
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Debug|x86.Build.0 = Debug|x86
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Release|x64.ActiveCfg = Release|x64
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Release|x64.Build.0 = Release|x64
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Release|x86.ActiveCfg = Release|x86
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Release|x86.Build.0 = Release|x86
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Services|x64.ActiveCfg = Release|x64
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Services|x86.ActiveCfg = Release|x86
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Silverlight2|x64.ActiveCfg = Release|x64
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Silverlight2|x64.Build.0 = Release|x64
+ {F62BCD22-FB83-4444-9401-8031C2487A86}.Silverlight2|x86.ActiveCfg = Release|x64
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x64.ActiveCfg = Debug|x64
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x64.Build.0 = Debug|x64
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x86.ActiveCfg = Debug|x86
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x86.Build.0 = Debug|x86
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x64.ActiveCfg = Release|x64
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x64.Build.0 = Release|x64
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x86.ActiveCfg = Release|x86
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x86.Build.0 = Release|x86
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Services|x64.ActiveCfg = Release|x64
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Services|x86.ActiveCfg = Release|x86
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Silverlight2|x64.ActiveCfg = Release|x64
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Silverlight2|x64.Build.0 = Release|x64
+ {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Silverlight2|x86.ActiveCfg = Release|x64
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Debug|x64.ActiveCfg = Debug|x64
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Debug|x64.Build.0 = Debug|x64
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Debug|x86.ActiveCfg = Debug|x86
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Debug|x86.Build.0 = Debug|x86
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Release|x64.ActiveCfg = Release|x64
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Release|x64.Build.0 = Release|x64
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Release|x86.ActiveCfg = Release|x86
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Release|x86.Build.0 = Release|x86
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Services|x64.ActiveCfg = Release|x64
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Services|x86.ActiveCfg = Release|x86
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Silverlight2|x64.ActiveCfg = Release|x86
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Silverlight2|x86.ActiveCfg = Release|x86
+ {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Silverlight2|x86.Build.0 = Release|x86
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x64.ActiveCfg = Debug|x64
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x64.Build.0 = Debug|x64
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x86.ActiveCfg = Debug|x86
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x86.Build.0 = Debug|x86
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|Any CPU.Build.0 = Release|Any CPU
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x64.ActiveCfg = Release|x64
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x64.Build.0 = Release|x64
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x86.ActiveCfg = Release|x86
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x86.Build.0 = Release|x86
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Services|x64.ActiveCfg = Release|x64
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Services|x86.ActiveCfg = Release|x86
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Silverlight2|x64.ActiveCfg = Release|x86
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Silverlight2|x86.ActiveCfg = Release|x86
+ {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Silverlight2|x86.Build.0 = Release|x86
+ {30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Debug|x64.ActiveCfg = Debug|x64
+ {30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Debug|x86.ActiveCfg = Debug|x86
+ {30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Release|x64.ActiveCfg = Release|x64
+ {30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Release|x86.ActiveCfg = Release|x86
+ {30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Services|Any CPU.Build.0 = Release|Any CPU
+ {30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Services|x64.ActiveCfg = Release|x64
+ {30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Services|x64.Build.0 = Release|x64
+ {30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Services|x86.ActiveCfg = Release|x86
+ {30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Services|x86.Build.0 = Release|x86
+ {30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Silverlight2|x64.ActiveCfg = Release|x64
+ {30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Silverlight2|x64.Build.0 = Release|x64
+ {30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Silverlight2|x86.ActiveCfg = Release|x64
+ {EBEBA863-DD05-4331-BE25-5758B15F7407}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EBEBA863-DD05-4331-BE25-5758B15F7407}.Debug|x64.ActiveCfg = Debug|x64
+ {EBEBA863-DD05-4331-BE25-5758B15F7407}.Debug|x86.ActiveCfg = Debug|x86
+ {EBEBA863-DD05-4331-BE25-5758B15F7407}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EBEBA863-DD05-4331-BE25-5758B15F7407}.Release|x64.ActiveCfg = Release|x64
+ {EBEBA863-DD05-4331-BE25-5758B15F7407}.Release|x86.ActiveCfg = Release|x86
+ {EBEBA863-DD05-4331-BE25-5758B15F7407}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {EBEBA863-DD05-4331-BE25-5758B15F7407}.Services|Any CPU.Build.0 = Release|Any CPU
+ {EBEBA863-DD05-4331-BE25-5758B15F7407}.Services|x64.ActiveCfg = Release|x64
+ {EBEBA863-DD05-4331-BE25-5758B15F7407}.Services|x64.Build.0 = Release|x64
+ {EBEBA863-DD05-4331-BE25-5758B15F7407}.Services|x86.ActiveCfg = Release|x86
+ {EBEBA863-DD05-4331-BE25-5758B15F7407}.Services|x86.Build.0 = Release|x86
+ {EBEBA863-DD05-4331-BE25-5758B15F7407}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {EBEBA863-DD05-4331-BE25-5758B15F7407}.Silverlight2|x64.ActiveCfg = Release|x64
+ {EBEBA863-DD05-4331-BE25-5758B15F7407}.Silverlight2|x64.Build.0 = Release|x64
+ {EBEBA863-DD05-4331-BE25-5758B15F7407}.Silverlight2|x86.ActiveCfg = Release|x64
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x64.ActiveCfg = Debug|x64
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x64.Build.0 = Debug|x64
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x86.ActiveCfg = Debug|x86
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x86.Build.0 = Debug|x86
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x64.ActiveCfg = Release|x64
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x64.Build.0 = Release|x64
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x86.ActiveCfg = Release|x86
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x86.Build.0 = Release|x86
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Services|x64.ActiveCfg = Release|x64
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Services|x86.ActiveCfg = Release|x86
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Silverlight2|x64.ActiveCfg = Release|x86
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Silverlight2|x86.ActiveCfg = Release|x86
+ {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Silverlight2|x86.Build.0 = Release|x86
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x64.ActiveCfg = Debug|x64
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x64.Build.0 = Debug|x64
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x86.ActiveCfg = Debug|x86
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x86.Build.0 = Debug|x86
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x64.ActiveCfg = Release|x64
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x64.Build.0 = Release|x64
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x86.ActiveCfg = Release|x86
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x86.Build.0 = Release|x86
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Services|x64.ActiveCfg = Release|x64
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Services|x86.ActiveCfg = Release|x86
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Silverlight2|x64.ActiveCfg = Release|x86
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Silverlight2|x86.ActiveCfg = Release|x86
+ {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Silverlight2|x86.Build.0 = Release|x86
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x64.ActiveCfg = Debug|x64
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x64.Build.0 = Debug|x64
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x86.ActiveCfg = Debug|x86
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x86.Build.0 = Debug|x86
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x64.ActiveCfg = Release|x64
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x64.Build.0 = Release|x64
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x86.ActiveCfg = Release|x86
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x86.Build.0 = Release|x86
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Services|x64.ActiveCfg = Release|x64
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Services|x86.ActiveCfg = Release|x86
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Silverlight2|x64.ActiveCfg = Release|x64
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Silverlight2|x64.Build.0 = Release|x64
+ {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Silverlight2|x86.ActiveCfg = Release|x64
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x64.ActiveCfg = Debug|x64
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x64.Build.0 = Debug|x64
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x86.ActiveCfg = Debug|x86
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x86.Build.0 = Debug|x86
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x64.ActiveCfg = Release|x64
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x64.Build.0 = Release|x64
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x86.ActiveCfg = Release|x86
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x86.Build.0 = Release|x86
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Services|x64.ActiveCfg = Release|x64
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Services|x86.ActiveCfg = Release|x86
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Silverlight2|x64.ActiveCfg = Release|x64
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Silverlight2|x64.Build.0 = Release|x64
+ {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Silverlight2|x86.ActiveCfg = Release|x64
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Debug|x64.ActiveCfg = Debug|x64
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Debug|x64.Build.0 = Debug|x64
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Debug|x86.ActiveCfg = Debug|x86
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Debug|x86.Build.0 = Debug|x86
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Release|x64.ActiveCfg = Release|x64
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Release|x64.Build.0 = Release|x64
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Release|x86.ActiveCfg = Release|x86
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Release|x86.Build.0 = Release|x86
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Services|x64.ActiveCfg = Release|x64
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Services|x86.ActiveCfg = Release|x86
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Silverlight2|x64.ActiveCfg = Release|x64
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Silverlight2|x64.Build.0 = Release|x64
+ {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Silverlight2|x86.ActiveCfg = Release|x64
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x64.ActiveCfg = Debug|x64
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x64.Build.0 = Debug|x64
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x86.ActiveCfg = Debug|x86
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x86.Build.0 = Debug|x86
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x64.ActiveCfg = Release|x64
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x64.Build.0 = Release|x64
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x86.ActiveCfg = Release|x86
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x86.Build.0 = Release|x86
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Services|x64.ActiveCfg = Release|x64
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Services|x86.ActiveCfg = Release|x86
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Silverlight2|x64.ActiveCfg = Release|x86
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Silverlight2|x86.ActiveCfg = Release|x86
+ {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Silverlight2|x86.Build.0 = Release|x86
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Debug|x64.ActiveCfg = Debug|x64
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Debug|x64.Build.0 = Debug|x64
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Debug|x86.ActiveCfg = Debug|x86
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Debug|x86.Build.0 = Debug|x86
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Release|x64.ActiveCfg = Release|x64
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Release|x64.Build.0 = Release|x64
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Release|x86.ActiveCfg = Release|x86
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Release|x86.Build.0 = Release|x86
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Services|x64.ActiveCfg = Release|x64
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Services|x86.ActiveCfg = Release|x86
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Silverlight2|x64.ActiveCfg = Release|x86
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Silverlight2|x86.ActiveCfg = Release|x86
+ {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Silverlight2|x86.Build.0 = Release|x86
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x64.ActiveCfg = Debug|x64
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x64.Build.0 = Debug|x64
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x86.ActiveCfg = Debug|x86
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x86.Build.0 = Debug|x86
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x64.ActiveCfg = Release|x64
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x64.Build.0 = Release|x64
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x86.ActiveCfg = Release|x86
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x86.Build.0 = Release|x86
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Services|x64.ActiveCfg = Release|x64
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Services|x86.ActiveCfg = Release|x86
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Silverlight2|x64.ActiveCfg = Release|x64
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Silverlight2|x64.Build.0 = Release|x64
+ {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Silverlight2|x86.ActiveCfg = Release|x64
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|x64.ActiveCfg = Debug|x64
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|x64.Build.0 = Debug|x64
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|x86.ActiveCfg = Debug|x86
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|x86.Build.0 = Debug|x86
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|x64.ActiveCfg = Release|x64
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|x64.Build.0 = Release|x64
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|x86.ActiveCfg = Release|x86
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|x86.Build.0 = Release|x86
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Services|x64.ActiveCfg = Release|x64
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Services|x86.ActiveCfg = Release|x86
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Silverlight2|x64.ActiveCfg = Release|x64
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Silverlight2|x64.Build.0 = Release|x64
+ {DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Silverlight2|x86.ActiveCfg = Release|x64
+ {421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Debug|x64.ActiveCfg = Debug|x64
+ {421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Debug|x86.ActiveCfg = Debug|x86
+ {421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Release|x64.ActiveCfg = Release|x64
+ {421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Release|x86.ActiveCfg = Release|x86
+ {421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Services|Any CPU.Build.0 = Release|Any CPU
+ {421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Services|x64.ActiveCfg = Release|x64
+ {421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Services|x64.Build.0 = Release|x64
+ {421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Services|x86.ActiveCfg = Release|x86
+ {421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Services|x86.Build.0 = Release|x86
+ {421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Silverlight2|x64.ActiveCfg = Release|x86
+ {421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Silverlight2|x86.ActiveCfg = Release|x86
+ {421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Silverlight2|x86.Build.0 = Release|x86
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Debug|x64.ActiveCfg = Debug|x64
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Debug|x64.Build.0 = Debug|x64
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Debug|x86.ActiveCfg = Debug|x86
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Debug|x86.Build.0 = Debug|x86
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Release|x64.ActiveCfg = Release|x64
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Release|x64.Build.0 = Release|x64
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Release|x86.ActiveCfg = Release|x86
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Release|x86.Build.0 = Release|x86
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Services|x64.ActiveCfg = Release|x64
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Services|x86.ActiveCfg = Release|x86
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Silverlight2|x64.ActiveCfg = Release|x86
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Silverlight2|x86.ActiveCfg = Release|x86
+ {125D3006-67F5-48CB-913E-73C0548F17FA}.Silverlight2|x86.Build.0 = Release|x86
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Debug|x64.ActiveCfg = Debug|x64
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Debug|x64.Build.0 = Debug|x64
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Debug|x86.ActiveCfg = Debug|x86
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Debug|x86.Build.0 = Debug|x86
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Release|x64.ActiveCfg = Release|x64
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Release|x64.Build.0 = Release|x64
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Release|x86.ActiveCfg = Release|x86
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Release|x86.Build.0 = Release|x86
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Services|x64.ActiveCfg = Release|x64
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Services|x86.ActiveCfg = Release|x86
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Silverlight2|x64.ActiveCfg = Release|x86
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Silverlight2|x86.ActiveCfg = Release|x86
+ {F5C0ECAC-EDBA-4024-872A-1F74AFCB20B4}.Silverlight2|x86.Build.0 = Release|x86
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Debug|x64.ActiveCfg = Debug|x64
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Debug|x64.Build.0 = Debug|x64
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Debug|x86.ActiveCfg = Debug|x86
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Debug|x86.Build.0 = Debug|x86
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Release|x64.ActiveCfg = Release|x64
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Release|x64.Build.0 = Release|x64
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Release|x86.ActiveCfg = Release|x86
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Release|x86.Build.0 = Release|x86
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Services|x64.ActiveCfg = Release|x64
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Services|x86.ActiveCfg = Release|x86
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Silverlight2|x64.ActiveCfg = Release|x86
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Silverlight2|x86.ActiveCfg = Release|x86
+ {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}.Silverlight2|x86.Build.0 = Release|x86
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Debug|x64.ActiveCfg = Debug|x64
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Debug|x64.Build.0 = Debug|x64
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Debug|x86.ActiveCfg = Debug|x86
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Debug|x86.Build.0 = Debug|x86
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Release|x64.ActiveCfg = Release|x64
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Release|x64.Build.0 = Release|x64
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Release|x86.ActiveCfg = Release|x86
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Release|x86.Build.0 = Release|x86
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Services|x64.ActiveCfg = Release|x64
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Services|x86.ActiveCfg = Release|x86
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Silverlight2|x64.ActiveCfg = Release|x86
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Silverlight2|x86.ActiveCfg = Release|x86
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Silverlight2|x86.Build.0 = Release|x86
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|x64.ActiveCfg = Debug|x64
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|x64.Build.0 = Debug|x64
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|x86.ActiveCfg = Debug|x86
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|x86.Build.0 = Debug|x86
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|x64.ActiveCfg = Release|x64
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|x64.Build.0 = Release|x64
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|x86.ActiveCfg = Release|x86
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|x86.Build.0 = Release|x86
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Services|x64.ActiveCfg = Release|x64
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Services|x86.ActiveCfg = Release|x86
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Silverlight2|x64.ActiveCfg = Release|x86
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Silverlight2|x86.ActiveCfg = Release|x86
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Silverlight2|x86.Build.0 = Release|x86
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|x64.ActiveCfg = Debug|x64
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|x64.Build.0 = Debug|x64
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|x86.ActiveCfg = Debug|x86
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|x86.Build.0 = Debug|x86
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|x64.ActiveCfg = Release|x64
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|x64.Build.0 = Release|x64
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|x86.ActiveCfg = Release|x86
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|x86.Build.0 = Release|x86
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Services|x64.ActiveCfg = Release|x64
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Services|x86.ActiveCfg = Release|x86
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Silverlight2|x64.ActiveCfg = Release|x86
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Silverlight2|x86.ActiveCfg = Release|x86
+ {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Silverlight2|x86.Build.0 = Release|x86
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Debug|x64.ActiveCfg = Debug|x64
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Debug|x64.Build.0 = Debug|x64
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Debug|x86.ActiveCfg = Debug|x86
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Debug|x86.Build.0 = Debug|x86
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Release|x64.ActiveCfg = Release|x64
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Release|x64.Build.0 = Release|x64
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Release|x86.ActiveCfg = Release|x86
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Release|x86.Build.0 = Release|x86
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Services|x64.ActiveCfg = Release|x64
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Services|x86.ActiveCfg = Release|x86
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Silverlight2|x64.ActiveCfg = Release|x86
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Silverlight2|x86.ActiveCfg = Release|x86
+ {8824925E-3E00-4543-8293-7DDACE4737F8}.Silverlight2|x86.Build.0 = Release|x86
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x64.ActiveCfg = Debug|x64
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x64.Build.0 = Debug|x64
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x86.ActiveCfg = Debug|x86
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x86.Build.0 = Debug|x86
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x64.ActiveCfg = Release|x64
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x64.Build.0 = Release|x64
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x86.ActiveCfg = Release|x86
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x86.Build.0 = Release|x86
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Services|x64.ActiveCfg = Release|x64
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Services|x86.ActiveCfg = Release|x86
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Silverlight2|x64.ActiveCfg = Release|x64
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Silverlight2|x64.Build.0 = Release|x64
+ {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Silverlight2|x86.ActiveCfg = Release|x64
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Debug|x64.ActiveCfg = Debug|x64
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Debug|x64.Build.0 = Debug|x64
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Debug|x86.ActiveCfg = Debug|x86
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Debug|x86.Build.0 = Debug|x86
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Release|Any CPU.Build.0 = Release|Any CPU
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Release|x64.ActiveCfg = Release|x64
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Release|x64.Build.0 = Release|x64
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Release|x86.ActiveCfg = Release|x86
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Release|x86.Build.0 = Release|x86
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Services|x64.ActiveCfg = Release|x64
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Services|x86.ActiveCfg = Release|x86
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Silverlight2|x64.ActiveCfg = Release|x86
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Silverlight2|x86.ActiveCfg = Release|x86
+ {799B0B38-E384-4A17-A73C-F211EB854592}.Silverlight2|x86.Build.0 = Release|x86
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x64.ActiveCfg = Debug|x64
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x64.Build.0 = Debug|x64
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x86.ActiveCfg = Debug|x86
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x86.Build.0 = Debug|x86
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x64.ActiveCfg = Release|x64
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x64.Build.0 = Release|x64
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x86.ActiveCfg = Release|x86
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x86.Build.0 = Release|x86
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Services|x64.ActiveCfg = Release|x64
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Services|x86.ActiveCfg = Release|x86
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Silverlight2|x64.ActiveCfg = Release|x64
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Silverlight2|x64.Build.0 = Release|x64
+ {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Silverlight2|x86.ActiveCfg = Release|x64
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x64.ActiveCfg = Debug|x64
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x64.Build.0 = Debug|x64
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x86.ActiveCfg = Debug|x86
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x86.Build.0 = Debug|x86
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x64.ActiveCfg = Release|x64
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x64.Build.0 = Release|x64
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x86.ActiveCfg = Release|x86
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x86.Build.0 = Release|x86
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Services|x64.ActiveCfg = Release|x64
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Services|x86.ActiveCfg = Release|x86
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Silverlight2|x64.ActiveCfg = Release|x64
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Silverlight2|x64.Build.0 = Release|x64
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Silverlight2|x86.ActiveCfg = Release|x64
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Debug|x64.ActiveCfg = Debug|x64
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Debug|x64.Build.0 = Debug|x64
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Debug|x86.ActiveCfg = Debug|x86
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Debug|x86.Build.0 = Debug|x86
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Release|x64.ActiveCfg = Release|x64
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Release|x64.Build.0 = Release|x64
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Release|x86.ActiveCfg = Release|x86
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Release|x86.Build.0 = Release|x86
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Services|x64.ActiveCfg = Release|x64
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Services|x86.ActiveCfg = Release|x86
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Silverlight2|x64.ActiveCfg = Release|x64
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Silverlight2|x64.Build.0 = Release|x64
+ {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Silverlight2|x86.ActiveCfg = Release|x64
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Debug|x64.ActiveCfg = Debug|x64
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Debug|x64.Build.0 = Debug|x64
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Debug|x86.ActiveCfg = Debug|x86
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Debug|x86.Build.0 = Debug|x86
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Release|x64.ActiveCfg = Release|x64
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Release|x64.Build.0 = Release|x64
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Release|x86.ActiveCfg = Release|x86
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Release|x86.Build.0 = Release|x86
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Services|x64.ActiveCfg = Release|x64
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Services|x86.ActiveCfg = Release|x86
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Silverlight2|x64.ActiveCfg = Release|x86
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Silverlight2|x86.ActiveCfg = Release|x86
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}.Silverlight2|x86.Build.0 = Release|x86
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Debug|x64.ActiveCfg = Debug|x64
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Debug|x64.Build.0 = Debug|x64
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Debug|x86.ActiveCfg = Debug|x86
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Debug|x86.Build.0 = Debug|x86
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Release|x64.ActiveCfg = Release|x64
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Release|x64.Build.0 = Release|x64
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Release|x86.ActiveCfg = Release|x86
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Release|x86.Build.0 = Release|x86
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Services|x64.ActiveCfg = Release|x64
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Services|x86.ActiveCfg = Release|x86
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Silverlight2|x64.ActiveCfg = Release|x86
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Silverlight2|x86.ActiveCfg = Release|x86
+ {AB687BBE-1BFE-476B-906D-44237135431D}.Silverlight2|x86.Build.0 = Release|x86
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Debug|x64.ActiveCfg = Debug|x64
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Debug|x64.Build.0 = Debug|x64
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Debug|x86.ActiveCfg = Debug|x86
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Debug|x86.Build.0 = Debug|x86
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Release|x64.ActiveCfg = Release|x64
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Release|x64.Build.0 = Release|x64
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Release|x86.ActiveCfg = Release|x86
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Release|x86.Build.0 = Release|x86
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Services|x64.ActiveCfg = Release|x64
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Services|x86.ActiveCfg = Release|x86
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Silverlight2|x64.ActiveCfg = Release|x86
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Silverlight2|x86.ActiveCfg = Release|x86
+ {4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Silverlight2|x86.Build.0 = Release|x86
+ {5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Release|x64.ActiveCfg = Release|Any CPU
+ {5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Release|x86.ActiveCfg = Release|Any CPU
+ {5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Services|Any CPU.Build.0 = Release|Any CPU
+ {5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Services|x64.ActiveCfg = Release|Any CPU
+ {5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Services|x86.ActiveCfg = Release|Any CPU
+ {5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Silverlight2|Any CPU.ActiveCfg = Release|Any CPU
+ {5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Silverlight2|Any CPU.Build.0 = Release|Any CPU
+ {5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Silverlight2|x64.ActiveCfg = Release|Any CPU
+ {5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Silverlight2|x86.ActiveCfg = Release|Any CPU
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|x64.ActiveCfg = Debug|x64
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|x64.Build.0 = Debug|x64
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|x86.ActiveCfg = Debug|x86
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|x86.Build.0 = Debug|x86
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Release|x64.ActiveCfg = Release|x64
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Release|x64.Build.0 = Release|x64
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Release|x86.ActiveCfg = Release|x86
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Release|x86.Build.0 = Release|x86
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Services|Any CPU.Build.0 = Release|Any CPU
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Services|x64.ActiveCfg = Release|Any CPU
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Services|x86.ActiveCfg = Release|Any CPU
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Silverlight2|x64.ActiveCfg = Release|x64
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Silverlight2|x64.Build.0 = Release|x64
+ {71D904D9-233B-44B2-ABB2-1525691228C5}.Silverlight2|x86.ActiveCfg = Release|x64
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Debug|x64.ActiveCfg = Debug|x64
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Debug|x64.Build.0 = Debug|x64
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Debug|x86.ActiveCfg = Debug|x86
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Debug|x86.Build.0 = Debug|x86
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Release|x64.ActiveCfg = Release|x64
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Release|x64.Build.0 = Release|x64
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Release|x86.ActiveCfg = Release|x86
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Release|x86.Build.0 = Release|x86
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Services|x64.ActiveCfg = Release|x64
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Services|x86.ActiveCfg = Release|x86
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Silverlight2|x64.ActiveCfg = Release|x64
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Silverlight2|x64.Build.0 = Release|x64
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Silverlight2|x86.ActiveCfg = Release|x64
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Debug|x64.ActiveCfg = Debug|x64
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Debug|x64.Build.0 = Debug|x64
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Debug|x86.ActiveCfg = Debug|x86
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Debug|x86.Build.0 = Debug|x86
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Release|x64.ActiveCfg = Release|x64
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Release|x64.Build.0 = Release|x64
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Release|x86.ActiveCfg = Release|x86
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Release|x86.Build.0 = Release|x86
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Services|x64.ActiveCfg = Release|x64
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Services|x86.ActiveCfg = Release|x86
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Silverlight2|x64.ActiveCfg = Release|x64
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Silverlight2|x64.Build.0 = Release|x64
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF}.Silverlight2|x86.ActiveCfg = Release|x64
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Debug|x64.ActiveCfg = Debug|x64
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Debug|x64.Build.0 = Debug|x64
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Debug|x86.ActiveCfg = Debug|x86
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Debug|x86.Build.0 = Debug|x86
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Release|x64.ActiveCfg = Release|x64
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Release|x64.Build.0 = Release|x64
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Release|x86.ActiveCfg = Release|x86
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Release|x86.Build.0 = Release|x86
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Services|x64.ActiveCfg = Release|x64
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Services|x86.ActiveCfg = Release|x86
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Silverlight2|x64.ActiveCfg = Release|x86
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Silverlight2|x86.ActiveCfg = Release|x86
+ {A16F23B5-FB62-499E-A831-26953AA56FE2}.Silverlight2|x86.Build.0 = Release|x86
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Debug|x64.ActiveCfg = Debug|x64
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Debug|x64.Build.0 = Debug|x64
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Debug|x86.ActiveCfg = Debug|x86
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Debug|x86.Build.0 = Debug|x86
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Release|Any CPU.Build.0 = Release|Any CPU
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Release|x64.ActiveCfg = Release|x64
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Release|x64.Build.0 = Release|x64
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Release|x86.ActiveCfg = Release|x86
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Release|x86.Build.0 = Release|x86
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Services|x64.ActiveCfg = Release|x64
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Services|x86.ActiveCfg = Release|x86
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Silverlight2|x64.ActiveCfg = Release|x86
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Silverlight2|x86.ActiveCfg = Release|x86
+ {89B50302-9CEE-4D13-9779-633EADCAE624}.Silverlight2|x86.Build.0 = Release|x86
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Debug|x64.ActiveCfg = Debug|x64
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Debug|x64.Build.0 = Debug|x64
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Debug|x86.ActiveCfg = Debug|x86
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Debug|x86.Build.0 = Debug|x86
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Release|Any CPU.Build.0 = Release|Any CPU
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Release|x64.ActiveCfg = Release|x64
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Release|x64.Build.0 = Release|x64
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Release|x86.ActiveCfg = Release|x86
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Release|x86.Build.0 = Release|x86
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Services|Any CPU.Build.0 = Release|Any CPU
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Services|x64.ActiveCfg = Release|Any CPU
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Services|x86.ActiveCfg = Release|Any CPU
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Silverlight2|x64.ActiveCfg = Release|x64
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Silverlight2|x64.Build.0 = Release|x64
+ {25735DB4-8E54-4A2C-83E3-A60C76565E55}.Silverlight2|x86.ActiveCfg = Release|x64
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|x64.ActiveCfg = Debug|x64
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|x64.Build.0 = Debug|x64
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|x86.ActiveCfg = Debug|x86
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|x86.Build.0 = Debug|x86
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|x64.ActiveCfg = Release|x64
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|x64.Build.0 = Release|x64
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|x86.ActiveCfg = Release|x86
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|x86.Build.0 = Release|x86
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Services|x64.ActiveCfg = Release|x64
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Services|x86.ActiveCfg = Release|x86
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Silverlight2|x64.ActiveCfg = Release|x64
+ {A8D5676D-9662-437A-B44D-ECB4046CDE12}.Silverlight2|x86.ActiveCfg = Release|x64
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|x64.ActiveCfg = Debug|x64
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|x64.Build.0 = Debug|x64
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|x86.ActiveCfg = Debug|x86
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|x86.Build.0 = Debug|x86
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Release|x64.ActiveCfg = Release|x64
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Release|x64.Build.0 = Release|x64
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Release|x86.ActiveCfg = Release|x86
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Release|x86.Build.0 = Release|x86
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Services|Any CPU.ActiveCfg = Silverlight2|Any CPU
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Services|Any CPU.Build.0 = Silverlight2|Any CPU
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Services|x64.ActiveCfg = Silverlight2|Any CPU
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Services|x86.ActiveCfg = Silverlight2|Any CPU
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Silverlight2|Any CPU.ActiveCfg = Silverlight2|Any CPU
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Silverlight2|Any CPU.Build.0 = Silverlight2|Any CPU
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Silverlight2|x64.ActiveCfg = Silverlight2|Any CPU
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Silverlight2|x86.ActiveCfg = Silverlight2|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Debug|x64.ActiveCfg = Debug|x64
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Debug|x86.ActiveCfg = Debug|x86
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Release|x64.ActiveCfg = Release|x64
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Release|x86.ActiveCfg = Release|x86
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Services|Any CPU.ActiveCfg = Silverlight2|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Services|Any CPU.Build.0 = Silverlight2|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Services|x64.ActiveCfg = Silverlight2|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Services|x86.ActiveCfg = Silverlight2|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Silverlight2|Any CPU.ActiveCfg = Silverlight2|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Silverlight2|Any CPU.Build.0 = Silverlight2|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Silverlight2|x64.ActiveCfg = Silverlight2|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Silverlight2|x86.ActiveCfg = Silverlight2|Any CPU
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Debug|x64.ActiveCfg = Debug|x64
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Debug|x64.Build.0 = Debug|x64
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Debug|x86.ActiveCfg = Debug|x86
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Debug|x86.Build.0 = Debug|x86
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Release|x64.ActiveCfg = Release|x64
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Release|x64.Build.0 = Release|x64
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Release|x86.ActiveCfg = Release|x86
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Release|x86.Build.0 = Release|x86
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Services|Any CPU.ActiveCfg = Silverlight2|Any CPU
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Services|Any CPU.Build.0 = Silverlight2|Any CPU
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Services|x64.ActiveCfg = Silverlight2|Any CPU
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Services|x86.ActiveCfg = Silverlight2|Any CPU
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Silverlight2|Any CPU.ActiveCfg = Silverlight2|Any CPU
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Silverlight2|Any CPU.Build.0 = Silverlight2|Any CPU
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Silverlight2|x64.ActiveCfg = Silverlight2|Any CPU
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A}.Silverlight2|x86.ActiveCfg = Silverlight2|Any CPU
+ {C268DA4C-4004-47DA-AF23-44C983281A68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C268DA4C-4004-47DA-AF23-44C983281A68}.Debug|x64.ActiveCfg = Debug|x64
+ {C268DA4C-4004-47DA-AF23-44C983281A68}.Debug|x86.ActiveCfg = Debug|x86
+ {C268DA4C-4004-47DA-AF23-44C983281A68}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C268DA4C-4004-47DA-AF23-44C983281A68}.Release|x64.ActiveCfg = Release|x64
+ {C268DA4C-4004-47DA-AF23-44C983281A68}.Release|x86.ActiveCfg = Release|x86
+ {C268DA4C-4004-47DA-AF23-44C983281A68}.Services|Any CPU.ActiveCfg = Silverlight2|Any CPU
+ {C268DA4C-4004-47DA-AF23-44C983281A68}.Services|Any CPU.Build.0 = Silverlight2|Any CPU
+ {C268DA4C-4004-47DA-AF23-44C983281A68}.Services|x64.ActiveCfg = Silverlight2|Any CPU
+ {C268DA4C-4004-47DA-AF23-44C983281A68}.Services|x86.ActiveCfg = Silverlight2|Any CPU
+ {C268DA4C-4004-47DA-AF23-44C983281A68}.Silverlight2|Any CPU.ActiveCfg = Silverlight2|Any CPU
+ {C268DA4C-4004-47DA-AF23-44C983281A68}.Silverlight2|Any CPU.Build.0 = Silverlight2|Any CPU
+ {C268DA4C-4004-47DA-AF23-44C983281A68}.Silverlight2|x64.ActiveCfg = Silverlight2|Any CPU
+ {C268DA4C-4004-47DA-AF23-44C983281A68}.Silverlight2|x86.ActiveCfg = Silverlight2|Any CPU
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Debug|x64.ActiveCfg = Debug|x64
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Debug|x64.Build.0 = Debug|x64
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Debug|x86.ActiveCfg = Debug|x86
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Debug|x86.Build.0 = Debug|x86
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Release|x64.ActiveCfg = Release|x64
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Release|x64.Build.0 = Release|x64
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Release|x86.ActiveCfg = Release|x86
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Release|x86.Build.0 = Release|x86
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Services|Any CPU.Build.0 = Release|Any CPU
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Services|x64.ActiveCfg = Release|Any CPU
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Services|x86.ActiveCfg = Release|Any CPU
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Silverlight2|Any CPU.ActiveCfg = Release|Any CPU
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Silverlight2|Any CPU.Build.0 = Release|Any CPU
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Silverlight2|x64.ActiveCfg = Release|Any CPU
+ {236459CE-80CF-4991-972F-DE74C826BCCC}.Silverlight2|x86.ActiveCfg = Release|Any CPU
+ {3081630C-9521-47D7-8075-1777C12F212C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3081630C-9521-47D7-8075-1777C12F212C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3081630C-9521-47D7-8075-1777C12F212C}.Debug|x64.ActiveCfg = Debug|x64
+ {3081630C-9521-47D7-8075-1777C12F212C}.Debug|x64.Build.0 = Debug|x64
+ {3081630C-9521-47D7-8075-1777C12F212C}.Debug|x86.ActiveCfg = Debug|x86
+ {3081630C-9521-47D7-8075-1777C12F212C}.Debug|x86.Build.0 = Debug|x86
+ {3081630C-9521-47D7-8075-1777C12F212C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3081630C-9521-47D7-8075-1777C12F212C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3081630C-9521-47D7-8075-1777C12F212C}.Release|x64.ActiveCfg = Release|x64
+ {3081630C-9521-47D7-8075-1777C12F212C}.Release|x64.Build.0 = Release|x64
+ {3081630C-9521-47D7-8075-1777C12F212C}.Release|x86.ActiveCfg = Release|x86
+ {3081630C-9521-47D7-8075-1777C12F212C}.Release|x86.Build.0 = Release|x86
+ {3081630C-9521-47D7-8075-1777C12F212C}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {3081630C-9521-47D7-8075-1777C12F212C}.Services|Any CPU.Build.0 = Release|Any CPU
+ {3081630C-9521-47D7-8075-1777C12F212C}.Services|x64.ActiveCfg = Release|Any CPU
+ {3081630C-9521-47D7-8075-1777C12F212C}.Services|x86.ActiveCfg = Release|Any CPU
+ {3081630C-9521-47D7-8075-1777C12F212C}.Silverlight2|Any CPU.ActiveCfg = Release|Any CPU
+ {3081630C-9521-47D7-8075-1777C12F212C}.Silverlight2|Any CPU.Build.0 = Release|Any CPU
+ {3081630C-9521-47D7-8075-1777C12F212C}.Silverlight2|x64.ActiveCfg = Release|Any CPU
+ {3081630C-9521-47D7-8075-1777C12F212C}.Silverlight2|x86.ActiveCfg = Release|Any CPU
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Debug|x64.ActiveCfg = Debug|x64
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Debug|x64.Build.0 = Debug|x64
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Debug|x86.ActiveCfg = Debug|x86
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Debug|x86.Build.0 = Debug|x86
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Release|x64.ActiveCfg = Release|x64
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Release|x64.Build.0 = Release|x64
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Release|x86.ActiveCfg = Release|x86
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Release|x86.Build.0 = Release|x86
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Services|Any CPU.ActiveCfg = Release|x64
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Services|x64.ActiveCfg = Release|x64
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Services|x64.Build.0 = Release|x64
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Services|x86.ActiveCfg = Release|x64
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Silverlight2|x64.ActiveCfg = Release|x64
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Silverlight2|x64.Build.0 = Release|x64
+ {6410BDA6-3641-42B2-BABA-AA626E2F6F71}.Silverlight2|x86.ActiveCfg = Release|x64
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Debug|x64.ActiveCfg = Debug|x64
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Debug|x64.Build.0 = Debug|x64
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Debug|x86.ActiveCfg = Debug|x86
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Debug|x86.Build.0 = Debug|x86
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Release|x64.ActiveCfg = Release|x64
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Release|x64.Build.0 = Release|x64
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Release|x86.ActiveCfg = Release|x86
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Release|x86.Build.0 = Release|x86
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Services|Any CPU.ActiveCfg = Release|x64
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Services|x64.ActiveCfg = Release|x64
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Services|x64.Build.0 = Release|x64
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Services|x86.ActiveCfg = Release|x64
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Silverlight2|x64.ActiveCfg = Release|x64
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Silverlight2|x64.Build.0 = Release|x64
+ {D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Silverlight2|x86.ActiveCfg = Release|x64
+ {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|x64.ActiveCfg = Debug|x64
+ {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|x86.ActiveCfg = Debug|x86
+ {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|x64.ActiveCfg = Release|x64
+ {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|x64.Build.0 = Release|x64
+ {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|x86.ActiveCfg = Release|x86
+ {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Services|Any CPU.Build.0 = Release|Any CPU
+ {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Services|x64.ActiveCfg = Release|Any CPU
+ {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Services|x86.ActiveCfg = Release|Any CPU
+ {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Silverlight2|Any CPU.ActiveCfg = Release|Any CPU
+ {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Silverlight2|Any CPU.Build.0 = Release|Any CPU
+ {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Silverlight2|x64.ActiveCfg = Release|Any CPU
+ {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Silverlight2|x86.ActiveCfg = Release|Any CPU
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x64.ActiveCfg = Debug|x64
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x64.Build.0 = Debug|x64
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x86.ActiveCfg = Debug|x86
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x86.Build.0 = Debug|x86
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|Any CPU.Build.0 = Release|Any CPU
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x64.ActiveCfg = Release|x64
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x64.Build.0 = Release|x64
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x86.ActiveCfg = Release|x86
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x86.Build.0 = Release|x86
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Services|Any CPU.ActiveCfg = Release|Any CPU
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Services|Any CPU.Build.0 = Release|Any CPU
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Services|x64.ActiveCfg = Release|Any CPU
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Services|x86.ActiveCfg = Release|Any CPU
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Silverlight2|Any CPU.ActiveCfg = Release|Any CPU
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Silverlight2|Any CPU.Build.0 = Release|Any CPU
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Silverlight2|x64.ActiveCfg = Release|Any CPU
+ {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Silverlight2|x86.ActiveCfg = Release|Any CPU
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|x64.ActiveCfg = Debug|x64
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|x64.Build.0 = Debug|x64
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|x86.ActiveCfg = Debug|x86
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Debug|x86.Build.0 = Debug|x86
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|x64.ActiveCfg = Release|x64
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|x64.Build.0 = Release|x64
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|x86.ActiveCfg = Release|x86
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Release|x86.Build.0 = Release|x86
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Services|Any CPU.ActiveCfg = Release|x86
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Services|x64.ActiveCfg = Release|x86
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Services|x86.ActiveCfg = Release|x86
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Services|x86.Build.0 = Release|x86
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Silverlight2|x64.ActiveCfg = Release|x86
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Silverlight2|x86.ActiveCfg = Release|x86
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}.Silverlight2|x86.Build.0 = Release|x86
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|x64.ActiveCfg = Debug|x64
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|x64.Build.0 = Debug|x64
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|x86.ActiveCfg = Debug|x86
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Debug|x86.Build.0 = Debug|x86
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|x64.ActiveCfg = Release|x64
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|x64.Build.0 = Release|x64
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|x86.ActiveCfg = Release|x86
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Release|x86.Build.0 = Release|x86
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Services|Any CPU.ActiveCfg = Release|x86
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Services|x64.ActiveCfg = Release|x86
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Services|x86.ActiveCfg = Release|x86
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Services|x86.Build.0 = Release|x86
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Silverlight2|x64.ActiveCfg = Release|x86
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Silverlight2|x86.ActiveCfg = Release|x86
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}.Silverlight2|x86.Build.0 = Release|x86
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|x64.ActiveCfg = Debug|x64
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|x64.Build.0 = Debug|x64
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|x86.ActiveCfg = Debug|x86
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Debug|x86.Build.0 = Debug|x86
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Release|x64.ActiveCfg = Release|x64
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Release|x64.Build.0 = Release|x64
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Release|x86.ActiveCfg = Release|x86
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Release|x86.Build.0 = Release|x86
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Services|Any CPU.ActiveCfg = Release|x86
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Services|x64.ActiveCfg = Release|x86
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Services|x86.ActiveCfg = Release|x86
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Services|x86.Build.0 = Release|x86
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Silverlight2|x64.ActiveCfg = Release|x86
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Silverlight2|x86.ActiveCfg = Release|x86
+ {9B6EA19A-F894-4E00-B5A3-970514284772}.Silverlight2|x86.Build.0 = Release|x86
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Debug|x64.ActiveCfg = Debug|x64
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Debug|x64.Build.0 = Debug|x64
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Debug|x86.ActiveCfg = Debug|x86
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Debug|x86.Build.0 = Debug|x86
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Release|x64.ActiveCfg = Release|x64
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Release|x64.Build.0 = Release|x64
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Release|x86.ActiveCfg = Release|x86
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Release|x86.Build.0 = Release|x86
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Services|Any CPU.ActiveCfg = Release|x86
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Services|x64.ActiveCfg = Release|x86
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Services|x86.ActiveCfg = Release|x86
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Services|x86.Build.0 = Release|x86
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Silverlight2|x64.ActiveCfg = Release|x86
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Silverlight2|x86.ActiveCfg = Release|x86
+ {7252890C-F207-4AD6-B3C9-764DF93F73CC}.Silverlight2|x86.Build.0 = Release|x86
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Debug|x64.ActiveCfg = Debug|x64
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Debug|x64.Build.0 = Debug|x64
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Debug|x86.ActiveCfg = Debug|x86
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Debug|x86.Build.0 = Debug|x86
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Release|x64.ActiveCfg = Release|x64
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Release|x64.Build.0 = Release|x64
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Release|x86.ActiveCfg = Release|x86
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Release|x86.Build.0 = Release|x86
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Services|Any CPU.ActiveCfg = Release|x64
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Services|x64.ActiveCfg = Release|x64
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Services|x64.Build.0 = Release|x64
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Services|x86.ActiveCfg = Release|x64
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Silverlight2|x64.ActiveCfg = Release|x64
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Silverlight2|x64.Build.0 = Release|x64
+ {E86E215D-E3CE-4244-978D-555D4E17AC09}.Silverlight2|x86.ActiveCfg = Release|x64
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|x64.ActiveCfg = Debug|x64
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|x64.Build.0 = Debug|x64
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|x86.ActiveCfg = Debug|x86
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Debug|x86.Build.0 = Debug|x86
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|x64.ActiveCfg = Release|x64
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|x64.Build.0 = Release|x64
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|x86.ActiveCfg = Release|x86
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Release|x86.Build.0 = Release|x86
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Services|Any CPU.ActiveCfg = Release|x86
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Services|x64.ActiveCfg = Release|x86
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Services|x86.ActiveCfg = Release|x86
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Services|x86.Build.0 = Release|x86
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Silverlight2|x64.ActiveCfg = Release|x86
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Silverlight2|x86.ActiveCfg = Release|x86
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}.Silverlight2|x86.Build.0 = Release|x86
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|x64.ActiveCfg = Debug|x64
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|x64.Build.0 = Debug|x64
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|x86.ActiveCfg = Debug|x86
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Debug|x86.Build.0 = Debug|x86
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|x64.ActiveCfg = Release|x64
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|x64.Build.0 = Release|x64
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|x86.ActiveCfg = Release|x86
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Release|x86.Build.0 = Release|x86
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Services|Any CPU.ActiveCfg = Release|x86
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Services|x64.ActiveCfg = Release|x86
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Services|x86.ActiveCfg = Release|x86
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Services|x86.Build.0 = Release|x86
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Silverlight2|Any CPU.ActiveCfg = Release|x86
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Silverlight2|x64.ActiveCfg = Release|x86
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Silverlight2|x86.ActiveCfg = Release|x86
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}.Silverlight2|x86.Build.0 = Release|x86
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Debug|x64.ActiveCfg = Debug|x64
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Debug|x64.Build.0 = Debug|x64
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Debug|x86.ActiveCfg = Debug|x86
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Debug|x86.Build.0 = Debug|x86
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Release|x64.ActiveCfg = Release|x64
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Release|x64.Build.0 = Release|x64
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Release|x86.ActiveCfg = Release|x86
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Release|x86.Build.0 = Release|x86
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Services|Any CPU.ActiveCfg = Release|x64
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Services|x64.ActiveCfg = Release|x64
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Services|x64.Build.0 = Release|x64
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Services|x86.ActiveCfg = Release|x64
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Silverlight2|Any CPU.ActiveCfg = Release|x64
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Silverlight2|x64.ActiveCfg = Release|x64
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Silverlight2|x64.Build.0 = Release|x64
+ {1778134B-866B-4CB3-BFC0-52B2FAAA5777}.Silverlight2|x86.ActiveCfg = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {7F485A48-A80F-4454-9A9B-7B126B43861C} = {07BCBC57-3E15-4582-B306-C046E516C49C}
+ {BA3315A3-9D7C-4F5F-99F4-1C9B88FD32AE} = {07BCBC57-3E15-4582-B306-C046E516C49C}
+ {27D3A83C-DEEA-49DA-955E-65D3D703B2F1} = {07BCBC57-3E15-4582-B306-C046E516C49C}
+ {F94E41E4-F25F-4302-8486-0BEF121CF5C8} = {07BCBC57-3E15-4582-B306-C046E516C49C}
+ {F0D06B07-1CB3-418E-88ED-CAE8DAACC7E0} = {07BCBC57-3E15-4582-B306-C046E516C49C}
+ {782DDDA3-A7A3-404E-B751-6200CE2D5EF3} = {07BCBC57-3E15-4582-B306-C046E516C49C}
+ {189F7770-5540-4832-B9A0-82474009680C} = {07BCBC57-3E15-4582-B306-C046E516C49C}
+ {99AD3658-DB36-4E26-B4CC-6FEAACC5C88C} = {7F485A48-A80F-4454-9A9B-7B126B43861C}
+ {678E2145-8152-4E19-9646-07D439D00301} = {99AD3658-DB36-4E26-B4CC-6FEAACC5C88C}
+ {1849A92E-DCFC-4E05-BB0A-D7B7A3DAFCFB} = {99AD3658-DB36-4E26-B4CC-6FEAACC5C88C}
+ {1B3063DB-D71C-4A6A-A359-883E8F53A140} = {BA3315A3-9D7C-4F5F-99F4-1C9B88FD32AE}
+ {0A3CE05D-4FCD-40A4-9001-D57627554BBC} = {27D3A83C-DEEA-49DA-955E-65D3D703B2F1}
+ {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA} = {0A3CE05D-4FCD-40A4-9001-D57627554BBC}
+ {BB994448-2B21-4564-BB2E-38D8FFF8CF18} = {0A3CE05D-4FCD-40A4-9001-D57627554BBC}
+ {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1} = {F94E41E4-F25F-4302-8486-0BEF121CF5C8}
+ {F1A195C9-98CD-47C6-9B74-3344EB258C5D} = {F0D06B07-1CB3-418E-88ED-CAE8DAACC7E0}
+ {29E4B033-1FEF-4FE1-AE17-0A9319D7C54E} = {F1A195C9-98CD-47C6-9B74-3344EB258C5D}
+ {01BBCB5A-144A-4A7E-908E-079849E2F7CF} = {F1A195C9-98CD-47C6-9B74-3344EB258C5D}
+ {16A50D44-107B-4601-A291-3B6870CD919D} = {782DDDA3-A7A3-404E-B751-6200CE2D5EF3}
+ {A16F23B5-FB62-499E-A831-26953AA56FE2} = {16A50D44-107B-4601-A291-3B6870CD919D}
+ {89B50302-9CEE-4D13-9779-633EADCAE624} = {16A50D44-107B-4601-A291-3B6870CD919D}
+ {2F5318D7-9CC2-4B5A-A7FE-43985FEA7198} = {189F7770-5540-4832-B9A0-82474009680C}
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591} = {2F5318D7-9CC2-4B5A-A7FE-43985FEA7198}
+ {DD01ED24-3750-4567-9A23-1DB676A15610} = {2F5318D7-9CC2-4B5A-A7FE-43985FEA7198}
+ {250ADE34-82FD-4BAE-86D5-985FBE589C4A} = {2F5318D7-9CC2-4B5A-A7FE-43985FEA7198}
+ {C268DA4C-4004-47DA-AF23-44C983281A68} = {2F5318D7-9CC2-4B5A-A7FE-43985FEA7198}
+ {236459CE-80CF-4991-972F-DE74C826BCCC} = {2F5318D7-9CC2-4B5A-A7FE-43985FEA7198}
+ EndGlobalSection
+EndGlobal
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views-3.3.csproj
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views-3.3.csproj (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views-3.3.csproj (revision 4235)
@@ -0,0 +1,226 @@
+
+
+
+ Debug
+ AnyCPU
+ 9.0.30729
+ 2.0
+ {C60DF094-ABC1-4313-AD82-E2EAD3FC8DF7}
+ Library
+ Properties
+ HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views
+ HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views-3.3
+ v3.5
+ 512
+ true
+ HeuristicLab.snk
+
+
+ 3.5
+
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ false
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ AllRules.ruleset
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ AllRules.ruleset
+
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE
+ full
+ x64
+ prompt
+ AllRules.ruleset
+
+
+ bin\x64\Release\
+ TRACE
+ true
+ pdbonly
+ x64
+ prompt
+ AllRules.ruleset
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE
+ full
+ x86
+ prompt
+ AllRules.ruleset
+
+
+ bin\x86\Release\
+ TRACE
+ true
+ pdbonly
+ x86
+ prompt
+ AllRules.ruleset
+
+
+
+
+ 3.5
+
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+ UserControl
+
+
+ DerivativeVariableView.cs
+
+
+ UserControl
+
+
+ IntegratedVariableView.cs
+
+
+ UserControl
+
+
+ MovingAverageView.cs
+
+
+
+
+
+
+
+
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}
+ HeuristicLab.Common-3.3
+
+
+ {E226881D-315F-423D-B419-A766FE0D8685}
+ HeuristicLab.Core.Views-3.3
+
+
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}
+ HeuristicLab.Core-3.3
+
+
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}
+ HeuristicLab.Data.Views-3.3
+
+
+ {6F42C5F8-16CD-43EE-8208-FD4573A69D85}
+ HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.3
+
+
+ {125D3006-67F5-48CB-913E-73C0548F17FA}
+ HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3
+
+
+ {AB687BBE-1BFE-476B-906D-44237135431D}
+ HeuristicLab.MainForm.WindowsForms-3.3
+
+
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}
+ HeuristicLab.MainForm-3.3
+
+
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}
+ HeuristicLab.Persistence-3.3
+
+
+ {94186A6A-5176-4402-AE83-886557B53CCA}
+ HeuristicLab.PluginInfrastructure-3.3
+
+
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}
+ HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3
+
+
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}
+ HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3
+
+
+ {799B0B38-E384-4A17-A73C-F211EB854592}
+ HeuristicLab.Problems.DataAnalysis.Views-3.3
+
+
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}
+ HeuristicLab.Problems.DataAnalysis-3.3
+
+
+
+
+ False
+ .NET Framework 3.5 SP1 Client Profile
+ false
+
+
+ False
+ .NET Framework 3.5 SP1
+ true
+
+
+ False
+ Windows Installer 3.1
+ true
+
+
+
+
+
+ set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd
+SubWCRev "%25ProjectDir%25\" "%25ProjectDir%25\HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisViewsPlugin.cs.frame" "%25ProjectDir%25\HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisViewsPlugin.cs"
+
+
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisViewsPlugin.cs.frame
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisViewsPlugin.cs.frame (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisViewsPlugin.cs.frame (revision 4235)
@@ -0,0 +1,45 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views {
+ [Plugin("HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views","3.3.0.$WCREV$")]
+ [PluginFile("HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views-3.3.dll", PluginFileType.Assembly)]
+ [PluginDependency("HeuristicLab.Common", "3.3")]
+ [PluginDependency("HeuristicLab.Core", "3.3")]
+ [PluginDependency("HeuristicLab.Core.Views", "3.3")]
+ [PluginDependency("HeuristicLab.Data.Views", "3.3")]
+ [PluginDependency("HeuristicLab.Encodings.SymbolicExpressionTreeEncoding", "3.3")]
+ [PluginDependency("HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views", "3.3")]
+ [PluginDependency("HeuristicLab.MainForm", "3.3")]
+ [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
+ [PluginDependency("HeuristicLab.Persistence", "3.3")]
+ [PluginDependency("HeuristicLab.Problems.DataAnalysis", "3.3")]
+ [PluginDependency("HeuristicLab.Problems.DataAnalysis.MultiVariate", "3.3")]
+ [PluginDependency("HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis", "3.3")]
+ [PluginDependency("HeuristicLab.Problems.DataAnalysis.Views", "3.3")]
+ public class HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisViewsPlugin : PluginBase {
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Properties/AssemblyInfo.frame
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Properties/AssemblyInfo.frame (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Properties/AssemblyInfo.frame (revision 4235)
@@ -0,0 +1,55 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views")]
+[assembly: AssemblyDescription("Views for HeuristicLab multi variate time series prognosis problem classes ")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2010 HEAL")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("9D140A01-2FB2-427A-A4DC-8BAB8D449252")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.0.$WCREV$")]
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/DerivativeVariableView.Designer.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/DerivativeVariableView.Designer.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/DerivativeVariableView.Designer.cs (revision 4235)
@@ -0,0 +1,155 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views.Symbols {
+ partial class DerivativeVariableView {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing) {
+ if (disposing && (components != null)) {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent() {
+ this.minTimeOffsetLabel = new System.Windows.Forms.Label();
+ this.maxTimeOffsetLabel = new System.Windows.Forms.Label();
+ this.minTimeOffsetTextBox = new System.Windows.Forms.TextBox();
+ this.maxTimeOffsetTextBox = new System.Windows.Forms.TextBox();
+ ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+ this.SuspendLayout();
+ //
+ // initializationGroupBox
+ //
+ this.initializationGroupBox.Location = new System.Drawing.Point(6, 131);
+ this.initializationGroupBox.Size = new System.Drawing.Size(396, 73);
+ //
+ // mutationGroupBox
+ //
+ this.mutationGroupBox.Location = new System.Drawing.Point(9, 210);
+ this.mutationGroupBox.Size = new System.Drawing.Size(393, 73);
+ //
+ // initialFrequencyLabel
+ //
+ this.initialFrequencyLabel.Location = new System.Drawing.Point(3, 56);
+ this.toolTip.SetToolTip(this.initialFrequencyLabel, "Relative frequency of the symbol in randomly created trees");
+ //
+ // initialFrequencyTextBox
+ //
+ this.errorProvider.SetIconAlignment(this.initialFrequencyTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+ this.initialFrequencyTextBox.Size = new System.Drawing.Size(285, 20);
+ //
+ // nameTextBox
+ //
+ this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+ this.errorProvider.SetIconPadding(this.nameTextBox, 2);
+ this.nameTextBox.Size = new System.Drawing.Size(285, 20);
+ //
+ // descriptionTextBox
+ //
+ this.errorProvider.SetIconAlignment(this.descriptionTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+ this.descriptionTextBox.Size = new System.Drawing.Size(285, 20);
+ //
+ // minTimeOffsetLabel
+ //
+ this.minTimeOffsetLabel.AutoSize = true;
+ this.minTimeOffsetLabel.Location = new System.Drawing.Point(3, 82);
+ this.minTimeOffsetLabel.Name = "minTimeOffsetLabel";
+ this.minTimeOffsetLabel.Size = new System.Drawing.Size(81, 13);
+ this.minTimeOffsetLabel.TabIndex = 10;
+ this.minTimeOffsetLabel.Text = "Min. time offset:";
+ //
+ // maxTimeOffsetLabel
+ //
+ this.maxTimeOffsetLabel.AutoSize = true;
+ this.maxTimeOffsetLabel.Location = new System.Drawing.Point(3, 108);
+ this.maxTimeOffsetLabel.Name = "maxTimeOffsetLabel";
+ this.maxTimeOffsetLabel.Size = new System.Drawing.Size(84, 13);
+ this.maxTimeOffsetLabel.TabIndex = 11;
+ this.maxTimeOffsetLabel.Text = "Max. time offset:";
+ //
+ // minTimeOffsetTextBox
+ //
+ this.minTimeOffsetTextBox.Location = new System.Drawing.Point(117, 79);
+ this.minTimeOffsetTextBox.Name = "minTimeOffsetTextBox";
+ this.minTimeOffsetTextBox.Size = new System.Drawing.Size(285, 20);
+ this.minTimeOffsetTextBox.TabIndex = 12;
+ this.minTimeOffsetTextBox.TextChanged += new System.EventHandler(this.minTimeOffsetTextBox_TextChanged);
+ //
+ // maxTimeOffsetTextBox
+ //
+ this.maxTimeOffsetTextBox.Location = new System.Drawing.Point(117, 105);
+ this.maxTimeOffsetTextBox.Name = "maxTimeOffsetTextBox";
+ this.maxTimeOffsetTextBox.Size = new System.Drawing.Size(285, 20);
+ this.maxTimeOffsetTextBox.TabIndex = 13;
+ this.maxTimeOffsetTextBox.TextChanged += new System.EventHandler(this.maxTimeOffsetTextBox_TextChanged);
+ //
+ // DerivativeVariableView
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.maxTimeOffsetTextBox);
+ this.Controls.Add(this.minTimeOffsetTextBox);
+ this.Controls.Add(this.maxTimeOffsetLabel);
+ this.Controls.Add(this.minTimeOffsetLabel);
+ this.Name = "DerivativeVariableView";
+ this.Size = new System.Drawing.Size(408, 290);
+ this.Controls.SetChildIndex(this.initializationGroupBox, 0);
+ this.Controls.SetChildIndex(this.initialFrequencyTextBox, 0);
+ this.Controls.SetChildIndex(this.initialFrequencyLabel, 0);
+ this.Controls.SetChildIndex(this.nameLabel, 0);
+ this.Controls.SetChildIndex(this.descriptionLabel, 0);
+ this.Controls.SetChildIndex(this.nameTextBox, 0);
+ this.Controls.SetChildIndex(this.descriptionTextBox, 0);
+ this.Controls.SetChildIndex(this.mutationGroupBox, 0);
+ this.Controls.SetChildIndex(this.minTimeOffsetLabel, 0);
+ this.Controls.SetChildIndex(this.maxTimeOffsetLabel, 0);
+ this.Controls.SetChildIndex(this.minTimeOffsetTextBox, 0);
+ this.Controls.SetChildIndex(this.maxTimeOffsetTextBox, 0);
+ ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label minTimeOffsetLabel;
+ private System.Windows.Forms.Label maxTimeOffsetLabel;
+ private System.Windows.Forms.TextBox minTimeOffsetTextBox;
+ private System.Windows.Forms.TextBox maxTimeOffsetTextBox;
+
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/DerivativeVariableView.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/DerivativeVariableView.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/DerivativeVariableView.cs (revision 4235)
@@ -0,0 +1,110 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views.Symbols {
+ [View("DerivativeVariable View")]
+ [Content(typeof(DerivativeVariable), true)]
+ public partial class DerivativeVariableView : HeuristicLab.Problems.DataAnalysis.Views.Symbolic.Symbols.VariableView {
+ public new DerivativeVariable Content {
+ get { return (DerivativeVariable)base.Content; }
+ set { base.Content = value; }
+ }
+
+ public DerivativeVariableView() {
+ InitializeComponent();
+ }
+
+ protected override void RegisterContentEvents() {
+ base.RegisterContentEvents();
+ Content.Changed += new EventHandler(Content_Changed);
+ }
+
+ protected override void DeregisterContentEvents() {
+ base.DeregisterContentEvents();
+ Content.Changed -= new EventHandler(Content_Changed);
+ }
+
+ protected override void OnContentChanged() {
+ base.OnContentChanged();
+ UpdateControl();
+ }
+
+ protected override void SetEnabledStateOfControls() {
+ base.SetEnabledStateOfControls();
+ minTimeOffsetTextBox.Enabled = Content != null;
+ maxTimeOffsetTextBox.Enabled = Content != null;
+ }
+
+ #region content event handlers
+ private void Content_Changed(object sender, EventArgs e) {
+ UpdateControl();
+ }
+ #endregion
+ #region control event handlers
+ private void minTimeOffsetTextBox_TextChanged(object sender, EventArgs e) {
+ int timeOffset;
+ if (int.TryParse(minTimeOffsetTextBox.Text, out timeOffset) && timeOffset < 0) {
+ Content.MinLag = timeOffset;
+ errorProvider.SetError(minTimeOffsetTextBox, string.Empty);
+ } else {
+ errorProvider.SetError(minTimeOffsetTextBox, "Time offset must be a negative value.");
+ }
+ }
+
+ private void maxTimeOffsetTextBox_TextChanged(object sender, EventArgs e) {
+ int timeOffset;
+ if (int.TryParse(maxTimeOffsetTextBox.Text, out timeOffset) && timeOffset < 0) {
+ Content.MaxLag = timeOffset;
+ errorProvider.SetError(maxTimeOffsetTextBox, string.Empty);
+ } else {
+ errorProvider.SetError(maxTimeOffsetTextBox, "Time offset must be a negative value.");
+ }
+ }
+
+ #endregion
+ #region helpers
+ private void UpdateControl() {
+ if (Content == null) {
+ minTimeOffsetTextBox.Text = string.Empty;
+ maxTimeOffsetTextBox.Text = string.Empty;
+ } else {
+ minTimeOffsetTextBox.Text = Content.MinLag.ToString();
+ maxTimeOffsetTextBox.Text = Content.MaxLag.ToString();
+ }
+ SetEnabledStateOfControls();
+ }
+ #endregion
+
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/IntegratedVariableView.Designer.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/IntegratedVariableView.Designer.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/IntegratedVariableView.Designer.cs (revision 4235)
@@ -0,0 +1,155 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views.Symbols {
+ partial class IntegratedVariableView {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing) {
+ if (disposing && (components != null)) {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent() {
+ this.minTimeOffsetLabel = new System.Windows.Forms.Label();
+ this.maxTimeOffsetLabel = new System.Windows.Forms.Label();
+ this.minTimeOffsetTextBox = new System.Windows.Forms.TextBox();
+ this.maxTimeOffsetTextBox = new System.Windows.Forms.TextBox();
+ ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+ this.SuspendLayout();
+ //
+ // initializationGroupBox
+ //
+ this.initializationGroupBox.Location = new System.Drawing.Point(6, 131);
+ this.initializationGroupBox.Size = new System.Drawing.Size(396, 73);
+ //
+ // mutationGroupBox
+ //
+ this.mutationGroupBox.Location = new System.Drawing.Point(6, 210);
+ this.mutationGroupBox.Size = new System.Drawing.Size(396, 73);
+ //
+ // initialFrequencyLabel
+ //
+ this.initialFrequencyLabel.Location = new System.Drawing.Point(3, 56);
+ this.toolTip.SetToolTip(this.initialFrequencyLabel, "Relative frequency of the symbol in randomly created trees");
+ //
+ // initialFrequencyTextBox
+ //
+ this.errorProvider.SetIconAlignment(this.initialFrequencyTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+ this.initialFrequencyTextBox.Size = new System.Drawing.Size(285, 20);
+ //
+ // nameTextBox
+ //
+ this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+ this.errorProvider.SetIconPadding(this.nameTextBox, 2);
+ this.nameTextBox.Size = new System.Drawing.Size(285, 20);
+ //
+ // descriptionTextBox
+ //
+ this.errorProvider.SetIconAlignment(this.descriptionTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+ this.descriptionTextBox.Size = new System.Drawing.Size(285, 20);
+ //
+ // minTimeOffsetLabel
+ //
+ this.minTimeOffsetLabel.AutoSize = true;
+ this.minTimeOffsetLabel.Location = new System.Drawing.Point(3, 82);
+ this.minTimeOffsetLabel.Name = "minTimeOffsetLabel";
+ this.minTimeOffsetLabel.Size = new System.Drawing.Size(81, 13);
+ this.minTimeOffsetLabel.TabIndex = 10;
+ this.minTimeOffsetLabel.Text = "Min. time offset:";
+ //
+ // maxTimeOffsetLabel
+ //
+ this.maxTimeOffsetLabel.AutoSize = true;
+ this.maxTimeOffsetLabel.Location = new System.Drawing.Point(3, 108);
+ this.maxTimeOffsetLabel.Name = "maxTimeOffsetLabel";
+ this.maxTimeOffsetLabel.Size = new System.Drawing.Size(84, 13);
+ this.maxTimeOffsetLabel.TabIndex = 11;
+ this.maxTimeOffsetLabel.Text = "Max. time offset:";
+ //
+ // minTimeOffsetTextBox
+ //
+ this.minTimeOffsetTextBox.Location = new System.Drawing.Point(117, 79);
+ this.minTimeOffsetTextBox.Name = "minTimeOffsetTextBox";
+ this.minTimeOffsetTextBox.Size = new System.Drawing.Size(285, 20);
+ this.minTimeOffsetTextBox.TabIndex = 12;
+ this.minTimeOffsetTextBox.TextChanged += new System.EventHandler(this.minTimeOffsetTextBox_TextChanged);
+ //
+ // maxTimeOffsetTextBox
+ //
+ this.maxTimeOffsetTextBox.Location = new System.Drawing.Point(117, 105);
+ this.maxTimeOffsetTextBox.Name = "maxTimeOffsetTextBox";
+ this.maxTimeOffsetTextBox.Size = new System.Drawing.Size(285, 20);
+ this.maxTimeOffsetTextBox.TabIndex = 13;
+ this.maxTimeOffsetTextBox.TextChanged += new System.EventHandler(this.maxTimeOffsetTextBox_TextChanged);
+ //
+ // IntegratedVariableView
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.maxTimeOffsetTextBox);
+ this.Controls.Add(this.minTimeOffsetTextBox);
+ this.Controls.Add(this.maxTimeOffsetLabel);
+ this.Controls.Add(this.minTimeOffsetLabel);
+ this.Name = "IntegratedVariableView";
+ this.Size = new System.Drawing.Size(408, 303);
+ this.Controls.SetChildIndex(this.initializationGroupBox, 0);
+ this.Controls.SetChildIndex(this.mutationGroupBox, 0);
+ this.Controls.SetChildIndex(this.initialFrequencyTextBox, 0);
+ this.Controls.SetChildIndex(this.initialFrequencyLabel, 0);
+ this.Controls.SetChildIndex(this.nameLabel, 0);
+ this.Controls.SetChildIndex(this.descriptionLabel, 0);
+ this.Controls.SetChildIndex(this.nameTextBox, 0);
+ this.Controls.SetChildIndex(this.descriptionTextBox, 0);
+ this.Controls.SetChildIndex(this.minTimeOffsetLabel, 0);
+ this.Controls.SetChildIndex(this.maxTimeOffsetLabel, 0);
+ this.Controls.SetChildIndex(this.minTimeOffsetTextBox, 0);
+ this.Controls.SetChildIndex(this.maxTimeOffsetTextBox, 0);
+ ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label minTimeOffsetLabel;
+ private System.Windows.Forms.Label maxTimeOffsetLabel;
+ private System.Windows.Forms.TextBox minTimeOffsetTextBox;
+ private System.Windows.Forms.TextBox maxTimeOffsetTextBox;
+
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/IntegratedVariableView.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/IntegratedVariableView.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/IntegratedVariableView.cs (revision 4235)
@@ -0,0 +1,112 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views.Symbols {
+ [View("IntegratedVariable View")]
+ [Content(typeof(IntegratedVariable), true)]
+ public partial class IntegratedVariableView : HeuristicLab.Problems.DataAnalysis.Views.Symbolic.Symbols.VariableView {
+ public new IntegratedVariable Content {
+ get { return (IntegratedVariable)base.Content; }
+ set { base.Content = value; }
+ }
+
+ public IntegratedVariableView() {
+ InitializeComponent();
+ }
+
+ protected override void RegisterContentEvents() {
+ base.RegisterContentEvents();
+ Content.Changed += new EventHandler(Content_Changed);
+ }
+
+ protected override void DeregisterContentEvents() {
+ base.DeregisterContentEvents();
+ Content.Changed -= new EventHandler(Content_Changed);
+ }
+
+ protected override void OnContentChanged() {
+ base.OnContentChanged();
+ UpdateControl();
+ }
+
+ protected override void SetEnabledStateOfControls() {
+ base.SetEnabledStateOfControls();
+ minTimeOffsetTextBox.Enabled = Content != null;
+ maxTimeOffsetTextBox.Enabled = Content != null;
+ }
+
+ #region content event handlers
+ private void Content_Changed(object sender, EventArgs e) {
+ UpdateControl();
+ }
+ #endregion
+
+ #region control event handlers
+ private void minTimeOffsetTextBox_TextChanged(object sender, EventArgs e) {
+ int timeOffset;
+ if (int.TryParse(minTimeOffsetTextBox.Text, out timeOffset) && timeOffset < 0) {
+ Content.MinLag = timeOffset;
+ errorProvider.SetError(minTimeOffsetTextBox, string.Empty);
+ } else {
+ errorProvider.SetError(minTimeOffsetTextBox, "Time offset must be a negative value.");
+ }
+ }
+
+ private void maxTimeOffsetTextBox_TextChanged(object sender, EventArgs e) {
+ int timeOffset;
+ if (int.TryParse(maxTimeOffsetTextBox.Text, out timeOffset) && timeOffset < 0) {
+ Content.MaxLag = timeOffset;
+ errorProvider.SetError(maxTimeOffsetTextBox, string.Empty);
+ } else {
+ errorProvider.SetError(maxTimeOffsetTextBox, "Time offset must be a negative value.");
+ }
+ }
+
+ #endregion
+
+ #region helpers
+ private void UpdateControl() {
+ if (Content == null) {
+ minTimeOffsetTextBox.Text = string.Empty;
+ maxTimeOffsetTextBox.Text = string.Empty;
+ } else {
+ minTimeOffsetTextBox.Text = Content.MinLag.ToString();
+ maxTimeOffsetTextBox.Text = Content.MaxLag.ToString();
+ }
+ SetEnabledStateOfControls();
+ }
+ #endregion
+
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/MovingAverageView.Designer.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/MovingAverageView.Designer.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/MovingAverageView.Designer.cs (revision 4235)
@@ -0,0 +1,153 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views.Symbols {
+ partial class MovingAverageView {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing) {
+ if (disposing && (components != null)) {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent() {
+ this.minTimeOffsetLabel = new System.Windows.Forms.Label();
+ this.maxTimeOffsetLabel = new System.Windows.Forms.Label();
+ this.minTimeOffsetTextBox = new System.Windows.Forms.TextBox();
+ this.maxTimeOffsetTextBox = new System.Windows.Forms.TextBox();
+ ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+ this.SuspendLayout();
+ //
+ // initializationGroupBox
+ //
+ this.initializationGroupBox.Location = new System.Drawing.Point(6, 131);
+ this.initializationGroupBox.Size = new System.Drawing.Size(396, 73);
+ //
+ // mutationGroupBox
+ //
+ this.mutationGroupBox.Location = new System.Drawing.Point(6, 210);
+ this.mutationGroupBox.Size = new System.Drawing.Size(396, 73);
+ //
+ // initialFrequencyLabel
+ //
+ this.initialFrequencyLabel.Location = new System.Drawing.Point(3, 56);
+ this.toolTip.SetToolTip(this.initialFrequencyLabel, "Relative frequency of the symbol in randomly created trees");
+ //
+ // initialFrequencyTextBox
+ //
+ this.errorProvider.SetIconAlignment(this.initialFrequencyTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+ this.initialFrequencyTextBox.Size = new System.Drawing.Size(285, 20);
+ //
+ // nameTextBox
+ //
+ this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+ this.errorProvider.SetIconPadding(this.nameTextBox, 2);
+ this.nameTextBox.Size = new System.Drawing.Size(285, 20);
+ //
+ // descriptionTextBox
+ //
+ this.errorProvider.SetIconAlignment(this.descriptionTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+ this.descriptionTextBox.Size = new System.Drawing.Size(285, 20);
+ //
+ // minTimeOffsetLabel
+ //
+ this.minTimeOffsetLabel.Location = new System.Drawing.Point(3, 82);
+ this.minTimeOffsetLabel.Name = "minTimeOffsetLabel";
+ this.minTimeOffsetLabel.Size = new System.Drawing.Size(100, 23);
+ this.minTimeOffsetLabel.TabIndex = 15;
+ this.minTimeOffsetLabel.Text = "Min. time offset:";
+ //
+ // maxTimeOffsetLabel
+ //
+ this.maxTimeOffsetLabel.Location = new System.Drawing.Point(3, 108);
+ this.maxTimeOffsetLabel.Name = "maxTimeOffsetLabel";
+ this.maxTimeOffsetLabel.Size = new System.Drawing.Size(100, 23);
+ this.maxTimeOffsetLabel.TabIndex = 14;
+ this.maxTimeOffsetLabel.Text = "Max. time offset:";
+ //
+ // minTimeOffsetTextBox
+ //
+ this.minTimeOffsetTextBox.Location = new System.Drawing.Point(117, 79);
+ this.minTimeOffsetTextBox.Name = "minTimeOffsetTextBox";
+ this.minTimeOffsetTextBox.Size = new System.Drawing.Size(285, 20);
+ this.minTimeOffsetTextBox.TabIndex = 12;
+ this.minTimeOffsetTextBox.TextChanged += new System.EventHandler(this.minTimeOffsetTextBox_TextChanged);
+ //
+ // maxTimeOffsetTextBox
+ //
+ this.maxTimeOffsetTextBox.Location = new System.Drawing.Point(117, 105);
+ this.maxTimeOffsetTextBox.Name = "maxTimeOffsetTextBox";
+ this.maxTimeOffsetTextBox.Size = new System.Drawing.Size(285, 20);
+ this.maxTimeOffsetTextBox.TabIndex = 13;
+ this.maxTimeOffsetTextBox.TextChanged += new System.EventHandler(this.maxTimeOffsetTextBox_TextChanged);
+ //
+ // MovingAverageView
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.maxTimeOffsetLabel);
+ this.Controls.Add(this.maxTimeOffsetTextBox);
+ this.Controls.Add(this.minTimeOffsetTextBox);
+ this.Controls.Add(this.minTimeOffsetLabel);
+ this.Name = "MovingAverageView";
+ this.Size = new System.Drawing.Size(408, 288);
+ this.Controls.SetChildIndex(this.initializationGroupBox, 0);
+ this.Controls.SetChildIndex(this.initialFrequencyTextBox, 0);
+ this.Controls.SetChildIndex(this.initialFrequencyLabel, 0);
+ this.Controls.SetChildIndex(this.nameLabel, 0);
+ this.Controls.SetChildIndex(this.descriptionLabel, 0);
+ this.Controls.SetChildIndex(this.nameTextBox, 0);
+ this.Controls.SetChildIndex(this.descriptionTextBox, 0);
+ this.Controls.SetChildIndex(this.mutationGroupBox, 0);
+ this.Controls.SetChildIndex(this.minTimeOffsetLabel, 0);
+ this.Controls.SetChildIndex(this.minTimeOffsetTextBox, 0);
+ this.Controls.SetChildIndex(this.maxTimeOffsetTextBox, 0);
+ this.Controls.SetChildIndex(this.maxTimeOffsetLabel, 0);
+ ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label minTimeOffsetLabel;
+ private System.Windows.Forms.Label maxTimeOffsetLabel;
+ private System.Windows.Forms.TextBox minTimeOffsetTextBox;
+ private System.Windows.Forms.TextBox maxTimeOffsetTextBox;
+
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/MovingAverageView.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/MovingAverageView.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views/3.3/Symbols/MovingAverageView.cs (revision 4235)
@@ -0,0 +1,112 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Views.Symbols {
+ [View("MovingAverage View")]
+ [Content(typeof(MovingAverage), true)]
+ public partial class MovingAverageView : HeuristicLab.Problems.DataAnalysis.Views.Symbolic.Symbols.VariableView {
+ public new MovingAverage Content {
+ get { return (MovingAverage)base.Content; }
+ set { base.Content = value; }
+ }
+
+ public MovingAverageView() {
+ InitializeComponent();
+ }
+
+ protected override void RegisterContentEvents() {
+ base.RegisterContentEvents();
+ Content.Changed += new EventHandler(Content_Changed);
+ }
+
+ protected override void DeregisterContentEvents() {
+ base.DeregisterContentEvents();
+ Content.Changed -= new EventHandler(Content_Changed);
+ }
+
+ protected override void OnContentChanged() {
+ base.OnContentChanged();
+ UpdateControl();
+ }
+
+ protected override void SetEnabledStateOfControls() {
+ base.SetEnabledStateOfControls();
+ minTimeOffsetTextBox.Enabled = Content != null;
+ maxTimeOffsetTextBox.Enabled = Content != null;
+ }
+
+ #region content event handlers
+ private void Content_Changed(object sender, EventArgs e) {
+ UpdateControl();
+ }
+ #endregion
+
+ #region control event handlers
+ private void minTimeOffsetTextBox_TextChanged(object sender, EventArgs e) {
+ int timeOffset;
+ if (int.TryParse(minTimeOffsetTextBox.Text, out timeOffset) && timeOffset < 0) {
+ Content.MinLag = timeOffset;
+ errorProvider.SetError(minTimeOffsetTextBox, string.Empty);
+ } else {
+ errorProvider.SetError(minTimeOffsetTextBox, "Time offset must be a negative value.");
+ }
+ }
+
+ private void maxTimeOffsetTextBox_TextChanged(object sender, EventArgs e) {
+ int timeOffset;
+ if (int.TryParse(maxTimeOffsetTextBox.Text, out timeOffset) && timeOffset < 0) {
+ Content.MaxLag = timeOffset;
+ errorProvider.SetError(maxTimeOffsetTextBox, string.Empty);
+ } else {
+ errorProvider.SetError(maxTimeOffsetTextBox, "Time offset must be a negative value.");
+ }
+ }
+
+ #endregion
+
+ #region helpers
+ private void UpdateControl() {
+ if (Content == null) {
+ minTimeOffsetTextBox.Text = string.Empty;
+ maxTimeOffsetTextBox.Text = string.Empty;
+ } else {
+ minTimeOffsetTextBox.Text = Content.MinLag.ToString();
+ maxTimeOffsetTextBox.Text = Content.MaxLag.ToString();
+ }
+ SetEnabledStateOfControls();
+ }
+ #endregion
+
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineDirectionalSymmetryEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineDirectionalSymmetryEvaluator.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineDirectionalSymmetryEvaluator.cs (revision 4235)
@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Problems.DataAnalysis.Evaluators;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Parameters;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis {
+ public class OnlineDirectionalSymmetryEvaluator : IOnlineTimeSeriesPrognosisEvaluator {
+ private double prevEstimated;
+ private double prevOriginal;
+ private int n;
+ private int nCorrect;
+
+ public double DirectionalSymmetry {
+ get {
+ if (n < 1) return 0.0;
+ return (double)nCorrect / n * 100.0;
+ }
+ }
+
+ public OnlineDirectionalSymmetryEvaluator() {
+ Reset();
+ }
+
+ #region IOnlineEvaluator Members
+ public double Value {
+ get { return DirectionalSymmetry; }
+ }
+
+ public void Add(double original, double estimated) {
+ if (double.IsNaN(original) || double.IsInfinity(original) || double.IsNaN(estimated) || double.IsInfinity(estimated)) {
+ throw new ArgumentException("Directional symmetry is not defined for series containing NaN or infinity values.");
+ }
+ if (!double.IsNaN(prevOriginal)) {
+ if ((original - prevOriginal) * (estimated - prevEstimated) >= 0.0) {
+ nCorrect++;
+ } else {
+ n++;
+ }
+ }
+ }
+
+ public void Reset() {
+ n = 0;
+ nCorrect = 0;
+ prevOriginal = double.NaN;
+ prevEstimated = double.NaN;
+ }
+
+ #endregion
+
+ #region IOnlineTimeSeriesPrognosisEvaluator Members
+
+ public void StartNewPredictionWindow(double lastKnownOriginalValue) {
+ prevEstimated = lastKnownOriginalValue;
+ prevOriginal = lastKnownOriginalValue;
+ }
+
+ #endregion
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineTheilsUStatisticEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineTheilsUStatisticEvaluator.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineTheilsUStatisticEvaluator.cs (revision 4235)
@@ -0,0 +1,66 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Problems.DataAnalysis.Evaluators;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Parameters;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis {
+ public class OnlineTheilsUStatisticEvaluator : IOnlineTimeSeriesPrognosisEvaluator {
+ private OnlineMeanAndVarianceCalculator squaredErrorMeanCalculator;
+ private OnlineMeanAndVarianceCalculator unbiasedEstimatorMeanCalculator;
+ private double prevOriginal;
+
+ public double TheilsUStatistic {
+ get {
+ return Math.Sqrt(squaredErrorMeanCalculator.Mean) / Math.Sqrt(unbiasedEstimatorMeanCalculator.Mean);
+ }
+ }
+
+ public OnlineTheilsUStatisticEvaluator() {
+ squaredErrorMeanCalculator = new OnlineMeanAndVarianceCalculator();
+ unbiasedEstimatorMeanCalculator = new OnlineMeanAndVarianceCalculator();
+ Reset();
+ }
+
+ #region IOnlineEvaluator Members
+ public double Value {
+ get { return TheilsUStatistic; }
+ }
+
+ public void Add(double original, double estimated) {
+ if (double.IsInfinity(original) || double.IsNaN(original) || double.IsInfinity(estimated) || double.IsNaN(estimated)) {
+ throw new ArgumentException("Theil's U-statistic is not defined for series containing NaN or infinity values.");
+ }
+
+ if (!double.IsNaN(prevOriginal)) {
+ // error of predicted change
+ double errorEstimatedChange = (estimated - original);
+ squaredErrorMeanCalculator.Add(errorEstimatedChange * errorEstimatedChange);
+
+ // error of naive model y(t+1) = y(t)
+ double errorNoChange = (original - prevOriginal);
+ unbiasedEstimatorMeanCalculator.Add(errorNoChange * errorNoChange);
+ }
+ }
+
+ public void Reset() {
+ prevOriginal = double.NaN;
+ squaredErrorMeanCalculator.Reset();
+ unbiasedEstimatorMeanCalculator.Reset();
+ }
+
+ #endregion
+
+ #region IOnlineTimeSeriesPrognosisEvaluator Members
+
+ public void StartNewPredictionWindow(double referenceOriginalValue) {
+ prevOriginal = referenceOriginalValue;
+ }
+
+ #endregion
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineWeightedDirectionalSymmetryEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineWeightedDirectionalSymmetryEvaluator.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Evaluators/OnlineWeightedDirectionalSymmetryEvaluator.cs (revision 4235)
@@ -0,0 +1,66 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Problems.DataAnalysis.Evaluators;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Parameters;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis {
+ public class OnlineWeightedDirectionalSymmetryEvaluator : IOnlineTimeSeriesPrognosisEvaluator {
+ private double prevEstimated;
+ private double prevOriginal;
+ private double incorrectSum;
+ private double correctSum;
+
+ public double WeightedDirectionalSymmetry {
+ get {
+ return incorrectSum / correctSum;
+ }
+ }
+
+ public OnlineWeightedDirectionalSymmetryEvaluator() {
+ Reset();
+ }
+
+ #region IOnlineEvaluator Members
+ public double Value {
+ get { return WeightedDirectionalSymmetry; }
+ }
+
+ public void Add(double original, double estimated) {
+ if (double.IsInfinity(original) || double.IsNaN(original) || double.IsInfinity(estimated) || double.IsNaN(estimated)) {
+ throw new ArgumentException("Weighted directional symmetry is not defined for series containing NaN or infinity values.");
+ }
+
+ // not the first element and a valid estimated value
+ if (!double.IsNaN(prevOriginal)) {
+ double error = Math.Abs(estimated - original);
+ if ((original - prevOriginal) * (estimated - prevEstimated) >= 0.0)
+ correctSum += error;
+ else
+ incorrectSum += error;
+ }
+ }
+
+ public void Reset() {
+ correctSum = 0;
+ incorrectSum = 0;
+ prevOriginal = double.NaN;
+ prevEstimated = double.NaN;
+ }
+
+ #endregion
+
+ #region IOnlineTimeSeriesPrognosisEvaluator Members
+
+ public void StartNewPredictionWindow(double referenceOriginalValue) {
+ prevOriginal = referenceOriginalValue;
+ prevEstimated = referenceOriginalValue;
+ }
+
+ #endregion
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3.csproj
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3.csproj (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3.csproj (revision 4235)
@@ -0,0 +1,235 @@
+
+
+
+ Debug
+ AnyCPU
+ 9.0.30729
+ 2.0
+ {B3310CE1-0C05-410F-BA77-8DAD6CE3F803}
+ Library
+ Properties
+ HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis
+ HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3
+ v3.5
+ 512
+ true
+ HeuristicLab.snk
+
+
+ 3.5
+
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ false
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ AllRules.ruleset
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ AllRules.ruleset
+
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE
+ full
+ x64
+ prompt
+ AllRules.ruleset
+
+
+ bin\x64\Release\
+ TRACE
+ true
+ pdbonly
+ x64
+ prompt
+ AllRules.ruleset
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE
+ full
+ x86
+ prompt
+ AllRules.ruleset
+
+
+ bin\x86\Release\
+ TRACE
+ true
+ pdbonly
+ x86
+ prompt
+ AllRules.ruleset
+
+
+
+
+ 3.5
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {887425B4-4348-49ED-A457-B7D2C26DDBF9}
+ HeuristicLab.Analysis-3.3
+
+
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}
+ HeuristicLab.Collections-3.3
+
+
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}
+ HeuristicLab.Common.Resources-3.3
+
+
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}
+ HeuristicLab.Common-3.3
+
+
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}
+ HeuristicLab.Core-3.3
+
+
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}
+ HeuristicLab.Data-3.3
+
+
+ {125D3006-67F5-48CB-913E-73C0548F17FA}
+ HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3
+
+
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}
+ HeuristicLab.Operators-3.3
+
+
+ {14AB8D24-25BC-400C-A846-4627AA945192}
+ HeuristicLab.Optimization-3.3
+
+
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}
+ HeuristicLab.Parameters-3.3
+
+
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}
+ HeuristicLab.Persistence-3.3
+
+
+ {94186A6A-5176-4402-AE83-886557B53CCA}
+ HeuristicLab.PluginInfrastructure-3.3
+
+
+ {6024D74F-E29C-4E6B-843E-8851831B8E14}
+ HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression-3.3
+
+
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}
+ HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3
+
+
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}
+ HeuristicLab.Problems.DataAnalysis-3.3
+
+
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}
+ HeuristicLab.Random-3.3
+
+
+
+
+ False
+ .NET Framework 3.5 SP1 Client Profile
+ false
+
+
+ False
+ .NET Framework 3.5 SP1
+ true
+
+
+ False
+ Windows Installer 3.1
+ true
+
+
+
+
+
+ set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd
+SubWCRev "%25ProjectDir%25\" "%25ProjectDir%25\HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisPlugin.cs.frame" "%25ProjectDir%25\HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisPlugin.cs"
+
+
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisPlugin.cs.frame
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisPlugin.cs.frame (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisPlugin.cs.frame (revision 4235)
@@ -0,0 +1,32 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis {
+ [Plugin("HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis","3.3.0.$WCREV$")]
+ [PluginFile("HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3.dll", PluginFileType.Assembly)]
+ public class HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisPlugin : PluginBase {
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Interfaces/IOnlineTimeSeriesPrognosisEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Interfaces/IOnlineTimeSeriesPrognosisEvaluator.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Interfaces/IOnlineTimeSeriesPrognosisEvaluator.cs (revision 4235)
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Problems.DataAnalysis.Evaluators;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Parameters;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis {
+ public interface IOnlineTimeSeriesPrognosisEvaluator : IOnlineEvaluator {
+ void StartNewPredictionWindow(double referenceOriginalValue);
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Properties/AssemblyInfo.frame
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Properties/AssemblyInfo.frame (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Properties/AssemblyInfo.frame (revision 4235)
@@ -0,0 +1,55 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis")]
+[assembly: AssemblyDescription("HeuristicLab multi variate time series prognosis problem classes")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2010 HEAL")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("8A05822F-E13D-4F74-A479-135828BB2F36")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.0.$WCREV$")]
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Analyzer/ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Analyzer/ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Analyzer/ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer.cs (revision 4235)
@@ -0,0 +1,336 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Operators;
+using HeuristicLab.Optimization;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Problems.DataAnalysis.Regression.Symbolic;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using System.Collections.Generic;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+using HeuristicLab.Problems.DataAnalysis;
+using System;
+
+using HeuristicLab.Problems.DataAnalysis.Evaluators;
+using HeuristicLab.Problems.DataAnalysis.Regression;
+using HeuristicLab.Analysis;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Evaluators;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression.Symbolic;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Analyzers {
+ ///
+ /// An operator that analyzes the validation best scaled symbolic time series prognosis solution.
+ ///
+ [Item("ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer", "An operator that analyzes the validation best scaled symbolic time series prognosis solution.")]
+ [StorableClass]
+ public sealed class ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer : SingleSuccessorOperator, IAnalyzer {
+ private const string RandomParameterName = "Random";
+ private const string SymbolicExpressionTreeParameterName = "SymbolicExpressionTree";
+ private const string SymbolicExpressionTreeInterpreterParameterName = "SymbolicExpressionTreeInterpreter";
+ private const string ProblemDataParameterName = "ProblemData";
+ private const string ValidationSamplesStartParameterName = "SamplesStart";
+ private const string ValidationSamplesEndParameterName = "SamplesEnd";
+ private const string QualityParameterName = "Quality";
+ private const string ScaledQualityParameterName = "ScaledQuality";
+ private const string UpperEstimationLimitParameterName = "UpperEstimationLimit";
+ private const string LowerEstimationLimitParameterName = "LowerEstimationLimit";
+ private const string PredictionHorizonParameterName = "PredictionHorizon";
+ private const string ConditionVariableParameterName = "ConditionVariableName";
+ private const string AlphaParameterName = "Alpha";
+ private const string BetaParameterName = "Beta";
+ private const string BestSolutionParameterName = "Best solution (validation)";
+ private const string BestSolutionQualityParameterName = "Best solution quality (validation)";
+ private const string CurrentBestValidationQualityParameterName = "Current best validation quality";
+ private const string BestSolutionQualityValuesParameterName = "Validation Quality";
+ private const string ResultsParameterName = "Results";
+ private const string VariableFrequenciesParameterName = "VariableFrequencies";
+ private const string BestKnownQualityParameterName = "BestKnownQuality";
+ private const string GenerationsParameterName = "Generations";
+
+ private const string TrainingMeanSquaredErrorQualityParameterName = "Mean squared error (training)";
+ private const string MinTrainingMeanSquaredErrorQualityParameterName = "Min mean squared error (training)";
+ private const string MaxTrainingMeanSquaredErrorQualityParameterName = "Max mean squared error (training)";
+ private const string AverageTrainingMeanSquaredErrorQualityParameterName = "Average mean squared error (training)";
+ private const string BestTrainingMeanSquaredErrorQualityParameterName = "Best mean squared error (training)";
+
+ private const string TrainingAverageRelativeErrorQualityParameterName = "Average relative error (training)";
+ private const string MinTrainingAverageRelativeErrorQualityParameterName = "Min average relative error (training)";
+ private const string MaxTrainingAverageRelativeErrorQualityParameterName = "Max average relative error (training)";
+ private const string AverageTrainingAverageRelativeErrorQualityParameterName = "Average average relative error (training)";
+ private const string BestTrainingAverageRelativeErrorQualityParameterName = "Best average relative error (training)";
+
+ private const string TrainingRSquaredQualityParameterName = "R² (training)";
+ private const string MinTrainingRSquaredQualityParameterName = "Min R² (training)";
+ private const string MaxTrainingRSquaredQualityParameterName = "Max R² (training)";
+ private const string AverageTrainingRSquaredQualityParameterName = "Average R² (training)";
+ private const string BestTrainingRSquaredQualityParameterName = "Best R² (training)";
+
+ private const string TestMeanSquaredErrorQualityParameterName = "Mean squared error (test)";
+ private const string MinTestMeanSquaredErrorQualityParameterName = "Min mean squared error (test)";
+ private const string MaxTestMeanSquaredErrorQualityParameterName = "Max mean squared error (test)";
+ private const string AverageTestMeanSquaredErrorQualityParameterName = "Average mean squared error (test)";
+ private const string BestTestMeanSquaredErrorQualityParameterName = "Best mean squared error (test)";
+
+ private const string TestAverageRelativeErrorQualityParameterName = "Average relative error (test)";
+ private const string MinTestAverageRelativeErrorQualityParameterName = "Min average relative error (test)";
+ private const string MaxTestAverageRelativeErrorQualityParameterName = "Max average relative error (test)";
+ private const string AverageTestAverageRelativeErrorQualityParameterName = "Average average relative error (test)";
+ private const string BestTestAverageRelativeErrorQualityParameterName = "Best average relative error (test)";
+
+ private const string TestRSquaredQualityParameterName = "R² (test)";
+ private const string MinTestRSquaredQualityParameterName = "Min R² (test)";
+ private const string MaxTestRSquaredQualityParameterName = "Max R² (test)";
+ private const string AverageTestRSquaredQualityParameterName = "Average R² (test)";
+ private const string BestTestRSquaredQualityParameterName = "Best R² (test)";
+
+ private const string RSquaredValuesParameterName = "R²";
+ private const string MeanSquaredErrorValuesParameterName = "Mean squared error";
+ private const string RelativeErrorValuesParameterName = "Average relative error";
+ private const string BestSolutionResultName = "Best solution (on validiation set)";
+ private const string RelativeNumberOfEvaluatedSamplesParameterName = "RelativeNumberOfEvaluatedSamples";
+
+ #region parameter properties
+ public ILookupParameter RandomParameter {
+ get { return (ILookupParameter)Parameters[RandomParameterName]; }
+ }
+ public ScopeTreeLookupParameter SymbolicExpressionTreeParameter {
+ get { return (ScopeTreeLookupParameter)Parameters[SymbolicExpressionTreeParameterName]; }
+ }
+ public OptionalValueParameter ConditionVariableNameParameter {
+ get { return (OptionalValueParameter)Parameters[ConditionVariableParameterName]; }
+ }
+ public ScopeTreeLookupParameter AlphaParameter {
+ get { return (ScopeTreeLookupParameter)Parameters[AlphaParameterName]; }
+ }
+ public ScopeTreeLookupParameter BetaParameter {
+ get { return (ScopeTreeLookupParameter)Parameters[BetaParameterName]; }
+ }
+ public IValueLookupParameter SymbolicExpressionTreeInterpreterParameter {
+ get { return (IValueLookupParameter)Parameters[SymbolicExpressionTreeInterpreterParameterName]; }
+ }
+ public IValueLookupParameter ProblemDataParameter {
+ get { return (IValueLookupParameter)Parameters[ProblemDataParameterName]; }
+ }
+ public IValueLookupParameter ValidationSamplesStartParameter {
+ get { return (IValueLookupParameter)Parameters[ValidationSamplesStartParameterName]; }
+ }
+ public IValueLookupParameter ValidationSamplesEndParameter {
+ get { return (IValueLookupParameter)Parameters[ValidationSamplesEndParameterName]; }
+ }
+ public IValueLookupParameter UpperEstimationLimitParameter {
+ get { return (IValueLookupParameter)Parameters[UpperEstimationLimitParameterName]; }
+ }
+ public IValueLookupParameter LowerEstimationLimitParameter {
+ get { return (IValueLookupParameter)Parameters[LowerEstimationLimitParameterName]; }
+ }
+ public IValueLookupParameter PredictionHorizonParameter {
+ get { return (IValueLookupParameter)Parameters[PredictionHorizonParameterName]; }
+ }
+ public ILookupParameter BestSolutionParameter {
+ get { return (ILookupParameter)Parameters[BestSolutionParameterName]; }
+ }
+ public ILookupParameter GenerationsParameter {
+ get { return (ILookupParameter)Parameters[GenerationsParameterName]; }
+ }
+ public ILookupParameter BestSolutionQualityParameter {
+ get { return (ILookupParameter)Parameters[BestSolutionQualityParameterName]; }
+ }
+ public ILookupParameter ResultsParameter {
+ get { return (ILookupParameter)Parameters[ResultsParameterName]; }
+ }
+ public ILookupParameter BestKnownQualityParameter {
+ get { return (ILookupParameter)Parameters[BestKnownQualityParameterName]; }
+ }
+ public ILookupParameter VariableFrequenciesParameter {
+ get { return (ILookupParameter)Parameters[VariableFrequenciesParameterName]; }
+ }
+ public IValueParameter RelativeNumberOfEvaluatedSamplesParameter {
+ get { return (IValueParameter)Parameters[RelativeNumberOfEvaluatedSamplesParameterName]; }
+ }
+ #endregion
+ #region properties
+ public IRandom Random {
+ get { return RandomParameter.ActualValue; }
+ }
+ public ItemArray SymbolicExpressionTree {
+ get { return SymbolicExpressionTreeParameter.ActualValue; }
+ }
+ public ItemArray Alpha {
+ get { return AlphaParameter.ActualValue; }
+ }
+ public ItemArray Beta {
+ get { return BetaParameter.ActualValue; }
+ }
+ public ISymbolicTimeSeriesExpressionInterpreter SymbolicExpressionTreeInterpreter {
+ get { return SymbolicExpressionTreeInterpreterParameter.ActualValue; }
+ }
+ public MultiVariateDataAnalysisProblemData ProblemData {
+ get { return ProblemDataParameter.ActualValue; }
+ }
+ public IntValue ValidiationSamplesStart {
+ get { return ValidationSamplesStartParameter.ActualValue; }
+ }
+ public IntValue ValidationSamplesEnd {
+ get { return ValidationSamplesEndParameter.ActualValue; }
+ }
+ public DoubleArray UpperEstimationLimit {
+ get { return UpperEstimationLimitParameter.ActualValue; }
+ }
+ public DoubleArray LowerEstimationLimit {
+ get { return LowerEstimationLimitParameter.ActualValue; }
+ }
+ public IntValue PredictionHorizon {
+ get { return PredictionHorizonParameter.ActualValue; }
+ }
+ public StringValue ConditionVariableName {
+ get { return ConditionVariableNameParameter.Value; }
+ }
+ public ResultCollection Results {
+ get { return ResultsParameter.ActualValue; }
+ }
+ public DataTable VariableFrequencies {
+ get { return VariableFrequenciesParameter.ActualValue; }
+ }
+ public IntValue Generations {
+ get { return GenerationsParameter.ActualValue; }
+ }
+ public PercentValue RelativeNumberOfEvaluatedSamples {
+ get { return RelativeNumberOfEvaluatedSamplesParameter.Value; }
+ }
+ #endregion
+
+ public ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer()
+ : base() {
+ Parameters.Add(new LookupParameter(RandomParameterName, "A random number generator."));
+ Parameters.Add(new ScopeTreeLookupParameter(SymbolicExpressionTreeParameterName, "The symbolic expression trees to analyze."));
+ Parameters.Add(new OptionalValueParameter(ConditionVariableParameterName, "The name of the condition variable indicating if a row should be considered for evaluation or not."));
+ Parameters.Add(new ScopeTreeLookupParameter(AlphaParameterName, "The alpha parameter for linear scaling."));
+ Parameters.Add(new ScopeTreeLookupParameter(BetaParameterName, "The beta parameter for linear scaling."));
+ Parameters.Add(new ValueLookupParameter(SymbolicExpressionTreeInterpreterParameterName, "The interpreter that should be used for the analysis of symbolic expression trees."));
+ Parameters.Add(new ValueLookupParameter(ProblemDataParameterName, "The problem data for which the symbolic expression tree is a solution."));
+ Parameters.Add(new ValueLookupParameter(ValidationSamplesStartParameterName, "The first index of the validation partition of the data set."));
+ Parameters.Add(new ValueLookupParameter(ValidationSamplesEndParameterName, "The last index of the validation partition of the data set."));
+ Parameters.Add(new ValueLookupParameter(PredictionHorizonParameterName, "The number of time steps for which to create a forecast."));
+ Parameters.Add(new ValueLookupParameter(UpperEstimationLimitParameterName, "The upper estimation limit that was set for the evaluation of the symbolic expression trees."));
+ Parameters.Add(new ValueLookupParameter(LowerEstimationLimitParameterName, "The lower estimation limit that was set for the evaluation of the symbolic expression trees."));
+ Parameters.Add(new LookupParameter(BestSolutionParameterName, "The best symbolic time series prognosis solution."));
+ Parameters.Add(new LookupParameter(GenerationsParameterName, "The number of generations calculated so far."));
+ Parameters.Add(new LookupParameter(BestSolutionQualityParameterName, "The quality of the best symbolic regression solution."));
+ Parameters.Add(new LookupParameter(ResultsParameterName, "The result collection where the best symbolic regression solution should be stored."));
+ Parameters.Add(new LookupParameter(BestKnownQualityParameterName, "The best known (validation) quality achieved on the data set."));
+ Parameters.Add(new LookupParameter(VariableFrequenciesParameterName, "The variable frequencies table to use for the calculation of variable impacts"));
+ Parameters.Add(new ValueParameter(RelativeNumberOfEvaluatedSamplesParameterName, "The relative number of samples of the dataset partition, which should be randomly chosen for evaluation between the start and end index.", new PercentValue(1)));
+
+ }
+
+ [StorableConstructor]
+ private ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer(bool deserializing) : base(deserializing) { }
+
+ public override IOperation Apply() {
+ var alphas = Alpha;
+ var betas = Beta;
+ var trees = SymbolicExpressionTree;
+
+ IEnumerable scaledTrees;
+ if (alphas.Length == trees.Length) {
+ scaledTrees = from i in Enumerable.Range(0, trees.Length)
+ select SymbolicVectorRegressionSolutionLinearScaler.Scale(trees[i], betas[i].ToArray(), alphas[i].ToArray());
+ } else {
+ scaledTrees = trees;
+ }
+
+ int trainingStart = ProblemData.TrainingSamplesStart.Value;
+ int trainingEnd = ProblemData.TrainingSamplesEnd.Value;
+ int testStart = ProblemData.TestSamplesStart.Value;
+ int testEnd = ProblemData.TestSamplesEnd.Value;
+
+ #region validation best model
+ int validationStart = ValidiationSamplesStart.Value;
+ int validationEnd = ValidationSamplesEnd.Value;
+ int rowCount = (int)Math.Ceiling((validationEnd - validationStart) * RelativeNumberOfEvaluatedSamples.Value);
+ IEnumerable rows = RandomEnumerable.SampleRandomNumbers((uint)Random.Next(), validationStart, validationEnd, rowCount);
+ double bestValidationNmse = double.MaxValue;
+ SymbolicExpressionTree bestTree = null;
+ string conditionalVariableName = ConditionVariableName == null ? null : ConditionVariableName.Value;
+ foreach (var tree in scaledTrees) {
+ double validationNmse;
+ validationNmse = SymbolicTimeSeriesPrognosisNormalizedMseEvaluator.Evaluate(tree, ProblemData,
+ SymbolicExpressionTreeInterpreter, conditionalVariableName,
+ rows, PredictionHorizon.Value, LowerEstimationLimit, UpperEstimationLimit);
+ if (validationNmse < bestValidationNmse) {
+ bestValidationNmse = validationNmse;
+ bestTree = tree;
+ }
+ }
+
+
+ if (BestSolutionQualityParameter.ActualValue == null || BestSolutionQualityParameter.ActualValue.Value > bestValidationNmse) {
+ var solution = bestTree;
+ //solution.Name = BestSolutionParameterName;
+ //solution.Description = "Best solution on validation partition found over the whole run.";
+
+ BestSolutionParameter.ActualValue = solution;
+ BestSolutionQualityParameter.ActualValue = new DoubleValue(bestValidationNmse);
+
+ // BestSymbolicTimeSeriesPrognosisSolutionAnalyzer.UpdateBestSolutionResults(solution, ProblemData, Results, Generations, VariableFrequencies);
+ }
+
+ if (!Results.ContainsKey(BestSolutionQualityValuesParameterName)) {
+ Results.Add(new Result(BestSolutionResultName, BestSolutionParameter.ActualValue));
+ Results.Add(new Result(BestSolutionQualityValuesParameterName, new DataTable(BestSolutionQualityValuesParameterName, BestSolutionQualityValuesParameterName)));
+ Results.Add(new Result(BestSolutionQualityParameterName, new DoubleValue()));
+ Results.Add(new Result(CurrentBestValidationQualityParameterName, new DoubleValue()));
+ }
+ Results[BestSolutionResultName].Value = BestSolutionParameter.ActualValue;
+ Results[BestSolutionQualityParameterName].Value = new DoubleValue(BestSolutionQualityParameter.ActualValue.Value);
+ Results[CurrentBestValidationQualityParameterName].Value = new DoubleValue(bestValidationNmse);
+
+ DataTable validationValues = (DataTable)Results[BestSolutionQualityValuesParameterName].Value;
+ AddValue(validationValues, BestSolutionQualityParameter.ActualValue.Value, BestSolutionQualityParameterName, BestSolutionQualityParameterName);
+ AddValue(validationValues, bestValidationNmse, CurrentBestValidationQualityParameterName, CurrentBestValidationQualityParameterName);
+ #endregion
+ return base.Apply();
+ }
+
+ [StorableHook(HookType.AfterDeserialization)]
+ private void Initialize() {
+ }
+
+ private static void AddValue(DataTable table, double data, string name, string description) {
+ DataRow row;
+ table.Rows.TryGetValue(name, out row);
+ if (row == null) {
+ row = new DataRow(name, description);
+ row.Values.Add(data);
+ table.Rows.Add(row);
+ } else {
+ row.Values.Add(data);
+ }
+ }
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Evaluators/SymbolicTimeSeriesPrognosisNormalizedMseEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Evaluators/SymbolicTimeSeriesPrognosisNormalizedMseEvaluator.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Evaluators/SymbolicTimeSeriesPrognosisNormalizedMseEvaluator.cs (revision 4235)
@@ -0,0 +1,174 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.DataAnalysis.SupportVectorMachine;
+using HeuristicLab.Problems.DataAnalysis;
+using HeuristicLab.Problems.DataAnalysis.Evaluators;
+using HeuristicLab.Parameters;
+using HeuristicLab.Optimization;
+using HeuristicLab.Operators;
+using HeuristicLab.Problems.DataAnalysis.Regression.Symbolic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using System.Collections.Generic;
+using HeuristicLab.Problems.DataAnalysis.Regression;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Evaluators {
+ [Item("SymbolicTimeSeriesPrognosisNormalizedMseEvaluator", "")]
+ [StorableClass]
+ public class SymbolicTimeSeriesPrognosisNormalizedMseEvaluator : SingleSuccessorOperator, ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator {
+ private const string RandomParameterName = "Random";
+ private const string DataAnalysisProblemDataParameterName = "MultiVariateDataAnalysisProblemData";
+ private const string TimeSeriesExpressionInterpreterParameterName = "TimeSeriesExpressionInterpreter";
+ private const string TimeSeriesPrognosisModelParameterName = "TimeSeriesPrognosisModel";
+ private const string PredictionHorizontParameterName = "PredictionHorizon";
+ private const string LowerEstimationLimitParameterName = "LowerEstimationLimit";
+ private const string UpperEstimationLimitParameterName = "UpperEstimationLimit";
+ private const string ConditionVariableParameterName = "ConditionVariableName";
+ private const string SamplesStartParameterName = "SamplesStart";
+ private const string SamplesEndParameterName = "SamplesEnd";
+ private const string QualityParameterName = "Quality";
+ private const string RelativeNumberOfEvaluatedSamplesParameterName = "RelativeNumberOfEvaluatedSamples";
+
+ #region parameter properties
+ public ILookupParameter RandomParameter {
+ get { return (ILookupParameter)Parameters[RandomParameterName]; }
+ }
+ public ILookupParameter ProblemDataParameter {
+ get { return (ILookupParameter)Parameters[DataAnalysisProblemDataParameterName]; }
+ }
+ public ILookupParameter TimeSeriesExpressionInterpreterParameter {
+ get { return (ILookupParameter)Parameters[TimeSeriesExpressionInterpreterParameterName]; }
+ }
+ public IValueLookupParameter PredictionHorizonParameter {
+ get { return (IValueLookupParameter)Parameters[PredictionHorizontParameterName]; }
+ }
+ public OptionalValueParameter ConditionVariableNameParameter {
+ get { return (OptionalValueParameter)Parameters[ConditionVariableParameterName]; }
+ }
+ public IValueLookupParameter SamplesStartParameter {
+ get { return (IValueLookupParameter)Parameters[SamplesStartParameterName]; }
+ }
+ public IValueLookupParameter SamplesEndParameter {
+ get { return (IValueLookupParameter)Parameters[SamplesEndParameterName]; }
+ }
+ public IValueLookupParameter LowerEstimationLimitParameter {
+ get { return (IValueLookupParameter)Parameters[LowerEstimationLimitParameterName]; }
+ }
+ public IValueLookupParameter UpperEstimationLimitParameter {
+ get { return (IValueLookupParameter)Parameters[UpperEstimationLimitParameterName]; }
+ }
+ public ILookupParameter TimeSeriesPrognosisModelParameter {
+ get { return (ILookupParameter)Parameters[TimeSeriesPrognosisModelParameterName]; }
+ }
+ public ILookupParameter QualityParameter {
+ get { return (ILookupParameter)Parameters[QualityParameterName]; }
+ }
+ public IValueParameter RelativeNumberOfEvaluatedSamplesParameter {
+ get { return (IValueParameter)Parameters[RelativeNumberOfEvaluatedSamplesParameterName]; }
+ }
+ #endregion
+ #region
+ public IRandom Random {
+ get { return RandomParameter.ActualValue; }
+ }
+ public MultiVariateDataAnalysisProblemData ProblemData {
+ get { return ProblemDataParameter.ActualValue; }
+ }
+ public ISymbolicTimeSeriesExpressionInterpreter TimeSeriesExpressionInterpreter {
+ get { return TimeSeriesExpressionInterpreterParameter.ActualValue; }
+ }
+ public IntValue PredictionHorizon {
+ get { return PredictionHorizonParameter.ActualValue; }
+ }
+ public StringValue ConditionVariableName {
+ get { return ConditionVariableNameParameter.Value; }
+ }
+ public IntValue SamplesStart {
+ get { return SamplesStartParameter.ActualValue; }
+ }
+ public IntValue SamplesEnd {
+ get { return SamplesEndParameter.ActualValue; }
+ }
+ public DoubleArray LowerEstimationLimit {
+ get { return LowerEstimationLimitParameter.ActualValue; }
+ }
+ public DoubleArray UpperEstimationLimit {
+ get { return UpperEstimationLimitParameter.ActualValue; }
+ }
+ public SymbolicExpressionTree TimeSeriesPrognosisModel {
+ get { return TimeSeriesPrognosisModelParameter.ActualValue; }
+ }
+ public PercentValue RelativeNumberOfEvaluatedSamples {
+ get { return RelativeNumberOfEvaluatedSamplesParameter.Value; }
+ }
+ #endregion
+
+ public SymbolicTimeSeriesPrognosisNormalizedMseEvaluator()
+ : base() {
+ Parameters.Add(new LookupParameter(RandomParameterName, "A random number generator."));
+ Parameters.Add(new LookupParameter(DataAnalysisProblemDataParameterName, "The data analysis problem data to use for training."));
+ Parameters.Add(new LookupParameter(TimeSeriesExpressionInterpreterParameterName, "The interpreter that should be used to evaluate the time series model represented as a symbolic expression tree."));
+ Parameters.Add(new ValueLookupParameter(SamplesStartParameterName, "The first index of the data set partition to use for training."));
+ Parameters.Add(new ValueLookupParameter(SamplesEndParameterName, "The last index of the data set partition to use for training."));
+ Parameters.Add(new ValueLookupParameter(PredictionHorizontParameterName, "The number of time steps for which to create a forecast."));
+ Parameters.Add(new ValueLookupParameter(LowerEstimationLimitParameterName, "The lower limit for estimated values."));
+ Parameters.Add(new ValueLookupParameter(UpperEstimationLimitParameterName, "The upper limit for estimated values."));
+ Parameters.Add(new OptionalValueParameter(ConditionVariableParameterName, "The name of the condition variable indicating if a row should be considered for evaluation or not."));
+ Parameters.Add(new LookupParameter(TimeSeriesPrognosisModelParameterName, "The time series prognosis model encoded as a symbolic expression tree."));
+ Parameters.Add(new LookupParameter(QualityParameterName, "The quality of the time series prognosis model encoded as a symbolic expression tree."));
+ Parameters.Add(new ValueParameter(RelativeNumberOfEvaluatedSamplesParameterName, "The relative number of samples of the dataset partition, which should be randomly chosen for evaluation between the start and end index.", new PercentValue(1)));
+ }
+
+ public override IOperation Apply() {
+ double quality;
+ string conditionVariableName = ConditionVariableName == null ? null : ConditionVariableName.Value;
+ int nRows = (int)Math.Ceiling((SamplesEnd.Value - SamplesStart.Value) * RelativeNumberOfEvaluatedSamples.Value);
+ IEnumerable rows = RandomEnumerable.SampleRandomNumbers((uint)Random.Next(), SamplesStart.Value, SamplesEnd.Value, nRows);
+
+ quality = Evaluate(TimeSeriesPrognosisModel, ProblemData, TimeSeriesExpressionInterpreter,
+ conditionVariableName, rows, PredictionHorizon.Value, LowerEstimationLimit, UpperEstimationLimit);
+ QualityParameter.ActualValue = new DoubleValue(quality);
+ return base.Apply();
+ }
+
+ public static double Evaluate(SymbolicExpressionTree tree, MultiVariateDataAnalysisProblemData problemData,
+ ISymbolicTimeSeriesExpressionInterpreter interpreter,
+ IEnumerable rows, int predictionHorizon, DoubleArray lowerEstimationLimit, DoubleArray upperEstimationLimit) {
+ return Evaluate(tree, problemData, interpreter, null, rows, predictionHorizon, lowerEstimationLimit, upperEstimationLimit);
+ }
+
+ public static double Evaluate(SymbolicExpressionTree tree, MultiVariateDataAnalysisProblemData problemData,
+ ISymbolicTimeSeriesExpressionInterpreter interpreter, string conditionVariableName,
+ IEnumerable rows, int predictionHorizon, DoubleArray lowerEstimationLimit, DoubleArray upperEstimationLimit) {
+ double[] zeros = new double[problemData.TargetVariables.CheckedItems.Count()];
+ double[] ones = Enumerable.Repeat(1.0, zeros.Length).ToArray();
+ return SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator.Evaluate(tree, problemData, interpreter, conditionVariableName, rows,
+ predictionHorizon, lowerEstimationLimit, upperEstimationLimit, ones, zeros);
+ }
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Evaluators/SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Evaluators/SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Evaluators/SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator.cs (revision 4235)
@@ -0,0 +1,303 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.DataAnalysis.SupportVectorMachine;
+using HeuristicLab.Problems.DataAnalysis;
+using HeuristicLab.Problems.DataAnalysis.Evaluators;
+using HeuristicLab.Parameters;
+using HeuristicLab.Optimization;
+using HeuristicLab.Operators;
+using HeuristicLab.Problems.DataAnalysis.Regression.Symbolic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using System.Collections.Generic;
+using HeuristicLab.Problems.DataAnalysis.Regression;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Evaluators {
+ [Item("SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator", "")]
+ [StorableClass]
+ public class SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator : SingleSuccessorOperator, ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator {
+ private const string RandomParameterName = "Random";
+ private const string DataAnalysisProblemDataParameterName = "MultiVariateDataAnalysisProblemData";
+ private const string TimeSeriesExpressionInterpreterParameterName = "TimeSeriesExpressionInterpreter";
+ private const string TimeSeriesPrognosisModelParameterName = "TimeSeriesPrognosisModel";
+ private const string PredictionHorizontParameterName = "PredictionHorizon";
+ private const string ConditionVariableParameterName = "ConditionVariableName";
+ private const string SamplesStartParameterName = "SamplesStart";
+ private const string SamplesEndParameterName = "SamplesEnd";
+ private const string AlphaParameterName = "Alpha";
+ private const string BetaParameterName = "Beta";
+ private const string LowerEstimationLimitParameterName = "LowerEstimationLimit";
+ private const string UpperEstimationLimitParameterName = "UpperEstimationLimit";
+ private const string QualityParameterName = "Quality";
+ private const string RelativeNumberOfEvaluatedSamplesParameterName = "RelativeNumberOfEvaluatedSamples";
+
+ #region parameter properties
+ public ILookupParameter RandomParameter {
+ get { return (ILookupParameter)Parameters[RandomParameterName]; }
+ }
+ public ILookupParameter ProblemDataParameter {
+ get { return (ILookupParameter)Parameters[DataAnalysisProblemDataParameterName]; }
+ }
+ public ILookupParameter TimeSeriesExpressionInterpreterParameter {
+ get { return (ILookupParameter)Parameters[TimeSeriesExpressionInterpreterParameterName]; }
+ }
+ public IValueLookupParameter PredictionHorizonParameter {
+ get { return (IValueLookupParameter)Parameters[PredictionHorizontParameterName]; }
+ }
+ public OptionalValueParameter ConditionVariableNameParameter {
+ get { return (OptionalValueParameter)Parameters[ConditionVariableParameterName]; }
+ }
+ public IValueLookupParameter SamplesStartParameter {
+ get { return (IValueLookupParameter)Parameters[SamplesStartParameterName]; }
+ }
+ public IValueLookupParameter SamplesEndParameter {
+ get { return (IValueLookupParameter)Parameters[SamplesEndParameterName]; }
+ }
+ public ILookupParameter TimeSeriesPrognosisModelParameter {
+ get { return (ILookupParameter)Parameters[TimeSeriesPrognosisModelParameterName]; }
+ }
+ public ILookupParameter QualityParameter {
+ get { return (ILookupParameter)Parameters[QualityParameterName]; }
+ }
+ public ILookupParameter AlphaParameter {
+ get { return (ILookupParameter)Parameters[AlphaParameterName]; }
+ }
+ public ILookupParameter BetaParameter {
+ get { return (ILookupParameter)Parameters[BetaParameterName]; }
+ }
+ public IValueLookupParameter LowerEstimationLimitParameter {
+ get { return (IValueLookupParameter)Parameters[LowerEstimationLimitParameterName]; }
+ }
+ public IValueLookupParameter UpperEstimationLimitParameter {
+ get { return (IValueLookupParameter)Parameters[UpperEstimationLimitParameterName]; }
+ }
+ public IValueParameter RelativeNumberOfEvaluatedSamplesParameter {
+ get { return (IValueParameter)Parameters[RelativeNumberOfEvaluatedSamplesParameterName]; }
+ }
+
+ #endregion
+ #region properties
+ public IRandom Random {
+ get { return RandomParameter.ActualValue; }
+ }
+ public MultiVariateDataAnalysisProblemData ProblemData {
+ get { return ProblemDataParameter.ActualValue; }
+ }
+ public ISymbolicTimeSeriesExpressionInterpreter TimeSeriesExpressionInterpreter {
+ get { return TimeSeriesExpressionInterpreterParameter.ActualValue; }
+ }
+ public IntValue PredictionHorizon {
+ get { return PredictionHorizonParameter.ActualValue; }
+ }
+ public StringValue ConditionVariableName {
+ get { return ConditionVariableNameParameter.Value; }
+ }
+ public IntValue SamplesStart {
+ get { return SamplesStartParameter.ActualValue; }
+ }
+ public IntValue SamplesEnd {
+ get { return SamplesEndParameter.ActualValue; }
+ }
+ public DoubleArray LowerEstimationLimit {
+ get { return LowerEstimationLimitParameter.ActualValue; }
+ }
+ public DoubleArray UpperEstimationLimit {
+ get { return UpperEstimationLimitParameter.ActualValue; }
+ }
+ public SymbolicExpressionTree TimeSeriesPrognosisModel {
+ get { return TimeSeriesPrognosisModelParameter.ActualValue; }
+ }
+ public PercentValue RelativeNumberOfEvaluatedSamples {
+ get { return RelativeNumberOfEvaluatedSamplesParameter.Value; }
+ }
+ #endregion
+
+ public SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator()
+ : base() {
+ Parameters.Add(new LookupParameter(RandomParameterName, "A random number generator."));
+ Parameters.Add(new LookupParameter(DataAnalysisProblemDataParameterName, "The data analysis problem data to use for training."));
+ Parameters.Add(new LookupParameter(TimeSeriesExpressionInterpreterParameterName, "The interpreter that should be used to evaluate the time series model represented as a symbolic expression tree."));
+ Parameters.Add(new ValueLookupParameter(SamplesStartParameterName, "The first index of the data set partition to use for training."));
+ Parameters.Add(new ValueLookupParameter(SamplesEndParameterName, "The last index of the data set partition to use for training."));
+ Parameters.Add(new ValueLookupParameter(PredictionHorizontParameterName, "The number of time steps for which to create a forecast."));
+ Parameters.Add(new ValueLookupParameter(LowerEstimationLimitParameterName, "The lower limit for estimated values."));
+ Parameters.Add(new ValueLookupParameter(UpperEstimationLimitParameterName, "The upper limit for estimated values."));
+ Parameters.Add(new OptionalValueParameter(ConditionVariableParameterName, "The name of the condition variable indicating if a row should be considered for evaluation or not."));
+ Parameters.Add(new LookupParameter(TimeSeriesPrognosisModelParameterName, "The time series prognosis model encoded as a symbolic expression tree."));
+ Parameters.Add(new LookupParameter(QualityParameterName, "The quality of the time series prognosis model encoded as a symbolic expression tree."));
+ Parameters.Add(new LookupParameter(AlphaParameterName, "The alpha parameter for linear scaling based on one step predictions."));
+ Parameters.Add(new LookupParameter(BetaParameterName, "The beta parameter for linear scaling based on one step predictions."));
+ Parameters.Add(new ValueParameter(RelativeNumberOfEvaluatedSamplesParameterName, "The relative number of samples of the dataset partition, which should be randomly chosen for evaluation between the start and end index.", new PercentValue(1)));
+ }
+
+ public override IOperation Apply() {
+ double[] alpha, beta;
+ double quality;
+ string conditionVariableName = ConditionVariableName == null ? null : ConditionVariableName.Value;
+ int nRows = (int)Math.Ceiling((SamplesEnd.Value - SamplesStart.Value) * RelativeNumberOfEvaluatedSamples.Value);
+
+ IEnumerable rows = RandomEnumerable.SampleRandomNumbers((uint)Random.Next(), SamplesStart.Value, SamplesEnd.Value, nRows);
+ CalculateScalingParameters(TimeSeriesPrognosisModel, ProblemData, TimeSeriesExpressionInterpreter,
+ conditionVariableName, rows,
+ out beta, out alpha);
+
+ quality = Evaluate(TimeSeriesPrognosisModel, ProblemData, TimeSeriesExpressionInterpreter,
+ conditionVariableName, rows, PredictionHorizon.Value,
+ LowerEstimationLimit, UpperEstimationLimit,
+ beta, alpha);
+ QualityParameter.ActualValue = new DoubleValue(quality);
+ AlphaParameter.ActualValue = new DoubleArray(alpha);
+ BetaParameter.ActualValue = new DoubleArray(beta);
+ return base.Apply();
+ }
+
+ public static double Evaluate(SymbolicExpressionTree tree, MultiVariateDataAnalysisProblemData problemData,
+ ISymbolicTimeSeriesExpressionInterpreter interpreter,
+ IEnumerable rows, int predictionHorizon,
+ DoubleArray lowerEstimationLimit, DoubleArray upperEstimationLimit,
+ double[] beta, double[] alpha) {
+ return Evaluate(tree, problemData, interpreter, null, rows, predictionHorizon, lowerEstimationLimit, upperEstimationLimit, beta, alpha);
+ }
+
+ public static double Evaluate(SymbolicExpressionTree tree, MultiVariateDataAnalysisProblemData problemData,
+ ISymbolicTimeSeriesExpressionInterpreter interpreter, string conditionVariableName,
+ IEnumerable rows, int predictionHorizon,
+ DoubleArray lowerEstimationLimit, DoubleArray upperEstimationLimit,
+ double[] beta, double[] alpha) {
+ if (conditionVariableName != null) {
+ rows = from row in rows
+ where !problemData.Dataset[conditionVariableName, row].IsAlmost(0.0)
+ select row;
+ }
+ IEnumerable selectedTargetVariables = from targetVariable in problemData.TargetVariables
+ where problemData.TargetVariables.ItemChecked(targetVariable)
+ select targetVariable.Value;
+
+ IEnumerable estimatedValues =
+ interpreter.GetScaledSymbolicExpressionTreeValues(tree, problemData.Dataset, selectedTargetVariables,
+ rows, predictionHorizon, beta, alpha);
+
+ IEnumerable originalValues = from row in rows
+ from step in Enumerable.Range(0, predictionHorizon)
+ select (from targetVariable in selectedTargetVariables
+ select problemData.Dataset[targetVariable, row + step]).ToArray();
+
+ List evaluators = new List();
+ foreach (string targetVariable in selectedTargetVariables)
+ evaluators.Add(new OnlineNormalizedMeanSquaredErrorEvaluator());
+
+ var estimatedValuesEnumerator = estimatedValues.GetEnumerator();
+ var originalValuesEnumerator = originalValues.GetEnumerator();
+ while (originalValuesEnumerator.MoveNext() & estimatedValuesEnumerator.MoveNext()) {
+ double[] original = originalValuesEnumerator.Current;
+ double[] estimated = estimatedValuesEnumerator.Current;
+ for (int i = 0; i < evaluators.Count; i++) {
+ if (double.IsNaN(estimated[i])) estimated[i] = upperEstimationLimit[i];
+ else estimated[i] = Math.Min(upperEstimationLimit[i], Math.Max(lowerEstimationLimit[i], estimated[i]));
+ evaluators[i].Add(original[i], estimated[i]);
+ }
+ }
+
+ double quality = evaluators.Select(x => x.NormalizedMeanSquaredError).Sum();
+ return quality;
+ }
+
+ public static void CalculateScalingParameters(SymbolicExpressionTree tree, MultiVariateDataAnalysisProblemData problemData,
+ ISymbolicTimeSeriesExpressionInterpreter interpreter,
+ IEnumerable rows,
+ out double[] betas, out double[] alphas) {
+ CalculateScalingParameters(tree, problemData, interpreter, null, rows, out betas, out alphas);
+ }
+
+ public static void CalculateScalingParameters(SymbolicExpressionTree tree, MultiVariateDataAnalysisProblemData problemData,
+ ISymbolicTimeSeriesExpressionInterpreter interpreter, string conditionVariableName,
+ IEnumerable rows, out double[] betas, out double[] alphas) {
+ IEnumerable selectedTargetVariables = from item in problemData.TargetVariables
+ where problemData.TargetVariables.ItemChecked(item)
+ select item.Value;
+ int dimension = selectedTargetVariables.Count();
+
+ if (conditionVariableName != null) {
+ rows = from row in rows
+ where !problemData.Dataset[conditionVariableName, row].IsAlmost(0.0)
+ select row;
+ }
+
+ IEnumerable oneStepPredictions =
+ interpreter.GetSymbolicExpressionTreeValues(tree, problemData.Dataset, selectedTargetVariables, rows, 1);
+ IEnumerable originalValues = from row in rows
+ select (from targetVariable in selectedTargetVariables
+ select problemData.Dataset[targetVariable, row]).ToArray();
+
+ alphas = new double[dimension];
+ betas = new double[dimension];
+ int[] cnt = new int[dimension];
+ List estimatedVarianceEvaluators = new List();
+ List covarianceEvaluators = new List();
+ List originalMeanCalculators = new List();
+ foreach (var selectedTargetVariable in selectedTargetVariables) {
+ estimatedVarianceEvaluators.Add(new OnlineMeanAndVarianceCalculator());
+ covarianceEvaluators.Add(new OnlineCovarianceEvaluator());
+ originalMeanCalculators.Add(new OnlineMeanAndVarianceCalculator());
+ }
+ var estimatedEnumerator = oneStepPredictions.GetEnumerator();
+ var originalEnumerator = originalValues.GetEnumerator();
+ while (estimatedEnumerator.MoveNext() & originalEnumerator.MoveNext()) {
+ double[] original = originalEnumerator.Current;
+ double[] estimated = estimatedEnumerator.Current;
+ for (int component = 0; component < dimension; component++) {
+ if (IsValidValue(original[component]) && IsValidValue(estimated[component])) {
+ cnt[component]++;
+ estimatedVarianceEvaluators[component].Add(estimated[component]);
+ covarianceEvaluators[component].Add(original[component], estimated[component]);
+ originalMeanCalculators[component].Add(original[component]);
+ }
+ }
+ }
+ if (estimatedEnumerator.MoveNext() || originalEnumerator.MoveNext())
+ throw new InvalidOperationException("Number of elements in estimated and original series doesn't match.");
+ for (int component = 0; component < dimension; component++) {
+ if (cnt[component] < 2) {
+ alphas[component] = 0;
+ betas[component] = 1;
+ } else {
+ if (estimatedVarianceEvaluators[component].Variance.IsAlmost(0.0))
+ betas[component] = 1;
+ else
+ betas[component] = covarianceEvaluators[component].Covariance / estimatedVarianceEvaluators[component].Variance;
+
+ alphas[component] = originalMeanCalculators[component].Mean - betas[component] * estimatedVarianceEvaluators[component].Mean;
+ }
+ }
+ }
+
+ private static bool IsValidValue(double d) {
+ return !double.IsInfinity(d) && !double.IsNaN(d) && d > -1.0E07 && d < 1.0E07; // don't consider very large or very small values for scaling
+ }
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/IMultiObjectiveSymbolicTimeSeriesPrognosisEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/IMultiObjectiveSymbolicTimeSeriesPrognosisEvaluator.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/IMultiObjectiveSymbolicTimeSeriesPrognosisEvaluator.cs (revision 4235)
@@ -0,0 +1,38 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using System.Collections.Generic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Compiler;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Optimization;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces {
+ public interface IMultiObjectiveSymbolicTimeSeriesPrognosisEvaluator : ISymbolicTimeSeriesPrognosisEvaluator, IMultiObjectiveEvaluator {
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator.cs (revision 4235)
@@ -0,0 +1,39 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using System.Collections.Generic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Compiler;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Optimization;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces {
+ public interface ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator : ISymbolicTimeSeriesPrognosisEvaluator, ISingleObjectiveEvaluator {
+ }
+
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISymbolicTimeSeriesExpressionInterpreter.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISymbolicTimeSeriesExpressionInterpreter.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISymbolicTimeSeriesExpressionInterpreter.cs (revision 4235)
@@ -0,0 +1,38 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using System.Collections.Generic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Compiler;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces {
+ public interface ISymbolicTimeSeriesExpressionInterpreter : IItem {
+ IEnumerable GetSymbolicExpressionTreeValues(SymbolicExpressionTree tree, Dataset dataset, IEnumerable targetVariables, IEnumerable rows, int predictionHorizon);
+ IEnumerable GetScaledSymbolicExpressionTreeValues(SymbolicExpressionTree tree, Dataset dataset, IEnumerable targetVariables, IEnumerable rows, int predictionHorizon, double[] beta, double[] alpha);
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISymbolicTimeSeriesPrognosisEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISymbolicTimeSeriesPrognosisEvaluator.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Interfaces/ISymbolicTimeSeriesPrognosisEvaluator.cs (revision 4235)
@@ -0,0 +1,44 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using System.Collections.Generic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Compiler;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Optimization;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces {
+ public interface ISymbolicTimeSeriesPrognosisEvaluator : IEvaluator {
+ ILookupParameter TimeSeriesPrognosisModelParameter { get; }
+ ILookupParameter TimeSeriesExpressionInterpreterParameter { get; }
+ ILookupParameter ProblemDataParameter { get; }
+ IValueLookupParameter PredictionHorizonParameter { get; }
+ IValueLookupParameter SamplesStartParameter { get; }
+ IValueLookupParameter SamplesEndParameter { get; }
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SingleObjectiveSymbolicTimeSeriesPrognosisProblem.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SingleObjectiveSymbolicTimeSeriesPrognosisProblem.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SingleObjectiveSymbolicTimeSeriesPrognosisProblem.cs (revision 4235)
@@ -0,0 +1,174 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Optimization;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.PluginInfrastructure;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ArchitectureManipulators;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Manipulators;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Crossovers;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Creators;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Interfaces;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Analyzers;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Evaluators;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Analyzers;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic {
+ [Item("Symbolic Time Series Prognosis Problem", "Represents a symbolic time series prognosis problem.")]
+ [Creatable("Problems")]
+ [StorableClass]
+ public class SingleObjectiveSymbolicTimeSeriesPrognosisProblem : SymbolicTimeSeriesPrognosisProblem, ISingleObjectiveProblem {
+
+ #region Parameter Properties
+ public ValueParameter EvaluatorParameter {
+ get { return (ValueParameter)Parameters["Evaluator"]; }
+ }
+ IParameter IProblem.EvaluatorParameter {
+ get { return EvaluatorParameter; }
+ }
+ public ValueParameter MaximizationParameter {
+ get { return (ValueParameter)Parameters["Maximization"]; }
+ }
+ IParameter ISingleObjectiveProblem.MaximizationParameter {
+ get { return MaximizationParameter; }
+ }
+ public OptionalValueParameter BestKnownQualityParameter {
+ get { return (OptionalValueParameter)Parameters["BestKnownQuality"]; }
+ }
+ IParameter ISingleObjectiveProblem.BestKnownQualityParameter {
+ get { return BestKnownQualityParameter; }
+ }
+
+ #endregion
+
+ #region Properties
+ public ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator Evaluator {
+ get { return EvaluatorParameter.Value; }
+ }
+ ISingleObjectiveEvaluator ISingleObjectiveProblem.Evaluator {
+ get { return Evaluator; }
+ }
+ IEvaluator IProblem.Evaluator {
+ get { return Evaluator; }
+ }
+ public DoubleValue BestKnownQuality {
+ get { return BestKnownQualityParameter.Value; }
+ }
+ #endregion
+
+ [StorableConstructor]
+ protected SingleObjectiveSymbolicTimeSeriesPrognosisProblem(bool deserializing) : base(deserializing) { }
+ public SingleObjectiveSymbolicTimeSeriesPrognosisProblem()
+ : base() {
+ var evaluator = new SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator();
+ Parameters.Add(new ValueParameter("Maximization", "Set to false as the error of the time series prognosis model should be minimized.", (BoolValue)new BoolValue(false).AsReadOnly()));
+ Parameters.Add(new ValueParameter("Evaluator", "The operator which should be used to evaluate symbolic time series prognosis solutions.", evaluator));
+ Parameters.Add(new OptionalValueParameter("BestKnownQuality", "The minimal error value that reached by symbolic time series prognosis solutions for the problem."));
+ evaluator.QualityParameter.ActualName = "TrainingMeanSquaredError";
+
+ ParameterizeEvaluator();
+
+ InitializeOperators();
+ AttachEventHandlers();
+ }
+
+ [StorableHook(HookType.AfterDeserialization)]
+ private void AfterDeserializationHook() {
+ AttachEventHandlers();
+ }
+
+ public override IDeepCloneable Clone(Cloner cloner) {
+ SingleObjectiveSymbolicTimeSeriesPrognosisProblem clone = (SingleObjectiveSymbolicTimeSeriesPrognosisProblem)base.Clone(cloner);
+ clone.AttachEventHandlers();
+ return clone;
+ }
+
+ #region event handling
+ protected override void OnMultiVariateDataAnalysisProblemChanged(EventArgs e) {
+ base.OnMultiVariateDataAnalysisProblemChanged(e);
+ BestKnownQualityParameter.Value = null;
+ // paritions could be changed
+ ParameterizeEvaluator();
+ ParameterizeAnalyzers();
+ }
+
+ protected override void OnSolutionParameterNameChanged(EventArgs e) {
+ ParameterizeEvaluator();
+ ParameterizeAnalyzers();
+ }
+
+ protected virtual void OnEvaluatorChanged(EventArgs e) {
+ ParameterizeEvaluator();
+ ParameterizeAnalyzers();
+ RaiseEvaluatorChanged(e);
+ }
+ #endregion
+
+ #region Helpers
+ private void AttachEventHandlers() {
+ }
+
+ private void InitializeOperators() {
+ AddOperator(new ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer());
+ ParameterizeAnalyzers();
+ }
+
+ private void ParameterizeEvaluator() {
+ Evaluator.TimeSeriesPrognosisModelParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
+ Evaluator.TimeSeriesExpressionInterpreterParameter.ActualName = SymbolicExpressionTreeInterpreterParameter.Name;
+ Evaluator.ProblemDataParameter.ActualName = MultiVariateDataAnalysisProblemDataParameter.Name;
+ Evaluator.PredictionHorizonParameter.ActualName = PredictionHorizonParameter.Name;
+ Evaluator.SamplesStartParameter.Value = TrainingSamplesStart;
+ Evaluator.SamplesEndParameter.Value = TrainingSamplesEnd;
+ }
+
+ private void ParameterizeAnalyzers() {
+ foreach (var analyzer in Analyzers) {
+ var bestValidationSolutionAnalyzer = analyzer as ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer;
+ if (bestValidationSolutionAnalyzer != null) {
+ bestValidationSolutionAnalyzer.ProblemDataParameter.ActualName = MultiVariateDataAnalysisProblemDataParameter.Name;
+ bestValidationSolutionAnalyzer.SymbolicExpressionTreeInterpreterParameter.ActualName = SymbolicExpressionTreeInterpreterParameter.Name;
+ bestValidationSolutionAnalyzer.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
+ bestValidationSolutionAnalyzer.ValidationSamplesStartParameter.Value = ValidationSamplesStart;
+ bestValidationSolutionAnalyzer.ValidationSamplesEndParameter.Value = ValidationSamplesEnd;
+ bestValidationSolutionAnalyzer.BestKnownQualityParameter.ActualName = BestKnownQualityParameter.Name;
+ bestValidationSolutionAnalyzer.PredictionHorizonParameter.ActualName = PredictionHorizonParameter.Name;
+ bestValidationSolutionAnalyzer.UpperEstimationLimitParameter.ActualName = UpperEstimationLimitParameter.Name;
+ bestValidationSolutionAnalyzer.LowerEstimationLimitParameter.ActualName = LowerEstimationLimitParameter.Name;
+ }
+ }
+ foreach (ISymbolicExpressionTreeAnalyzer analyzer in Operators.OfType()) {
+ analyzer.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
+ }
+ }
+ #endregion
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesExpressionInterpreter.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesExpressionInterpreter.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesExpressionInterpreter.cs (revision 4235)
@@ -0,0 +1,413 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using System.Collections.Generic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Compiler;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis {
+ [StorableClass]
+ [Item("SymbolicTimeSeriesExpressionInterpreter", "Interpreter for symbolic expression trees representing time series forecast models.")]
+ public class SymbolicTimeSeriesExpressionInterpreter : NamedItem, ISymbolicTimeSeriesExpressionInterpreter {
+ private class OpCodes {
+ public const byte Add = 1;
+ public const byte Sub = 2;
+ public const byte Mul = 3;
+ public const byte Div = 4;
+
+ public const byte Sin = 5;
+ public const byte Cos = 6;
+ public const byte Tan = 7;
+
+ public const byte Log = 8;
+ public const byte Exp = 9;
+
+ public const byte IfThenElse = 10;
+
+ public const byte GT = 11;
+ public const byte LT = 12;
+
+ public const byte AND = 13;
+ public const byte OR = 14;
+ public const byte NOT = 15;
+
+
+ public const byte Average = 16;
+
+ public const byte Call = 17;
+
+ public const byte Variable = 18;
+ public const byte LagVariable = 19;
+ public const byte Constant = 20;
+ public const byte Arg = 21;
+ public const byte Differential = 22;
+ public const byte Integral = 23;
+ public const byte MovingAverage = 24;
+ }
+
+ private Dictionary symbolToOpcode = new Dictionary() {
+ { typeof(Addition), OpCodes.Add },
+ { typeof(Subtraction), OpCodes.Sub },
+ { typeof(Multiplication), OpCodes.Mul },
+ { typeof(Division), OpCodes.Div },
+ { typeof(Sine), OpCodes.Sin },
+ { typeof(Cosine), OpCodes.Cos },
+ { typeof(Tangent), OpCodes.Tan },
+ { typeof(Logarithm), OpCodes.Log },
+ { typeof(Exponential), OpCodes.Exp },
+ { typeof(IfThenElse), OpCodes.IfThenElse },
+ { typeof(GreaterThan), OpCodes.GT },
+ { typeof(LessThan), OpCodes.LT },
+ { typeof(And), OpCodes.AND },
+ { typeof(Or), OpCodes.OR },
+ { typeof(Not), OpCodes.NOT},
+ { typeof(Average), OpCodes.Average},
+ { typeof(InvokeFunction), OpCodes.Call },
+ { typeof(HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols.Variable), OpCodes.Variable },
+ { typeof(LaggedVariable), OpCodes.LagVariable },
+ { typeof(IntegratedVariable), OpCodes.Integral },
+ { typeof(DerivativeVariable), OpCodes.Differential },
+ { typeof(MovingAverage), OpCodes.MovingAverage },
+ { typeof(Constant), OpCodes.Constant },
+ { typeof(Argument), OpCodes.Arg },
+ };
+ private const int ARGUMENT_STACK_SIZE = 1024;
+
+ private Dataset dataset;
+ private int row;
+ private Instruction[] code;
+ private int pc;
+ private double[] argumentStack = new double[ARGUMENT_STACK_SIZE];
+ private int argStackPointer;
+ private Dictionary estimatedTargetVariableValues;
+ private int currentPredictionHorizon;
+
+ public override bool CanChangeName {
+ get { return false; }
+ }
+ public override bool CanChangeDescription {
+ get { return false; }
+ }
+
+ public SymbolicTimeSeriesExpressionInterpreter()
+ : base() {
+ }
+ #region ITimeSeriesExpressionInterpreter Members
+
+ public IEnumerable GetSymbolicExpressionTreeValues(SymbolicExpressionTree tree, Dataset dataset, IEnumerable targetVariables, IEnumerable rows, int predictionHorizon) {
+ this.dataset = dataset;
+ List targetVariableIndexes = new List();
+ estimatedTargetVariableValues = new Dictionary();
+ foreach (string targetVariable in targetVariables) {
+ int index = dataset.GetVariableIndex(targetVariable);
+ targetVariableIndexes.Add(index);
+ estimatedTargetVariableValues.Add(index, new double[predictionHorizon]);
+ }
+ var compiler = new SymbolicExpressionTreeCompiler();
+ compiler.AddInstructionPostProcessingHook(PostProcessInstruction);
+ code = compiler.Compile(tree, MapSymbolToOpCode);
+
+ foreach (var row in rows) {
+ ResetVariableValues(dataset, row);
+ for (int step = 0; step < predictionHorizon; step++) {
+ this.row = row + step;
+ this.currentPredictionHorizon = step;
+ pc = 0;
+ argStackPointer = 0;
+ double[] estimatedValues = new double[tree.Root.SubTrees[0].SubTrees.Count];
+ int component = 0;
+ foreach (int targetVariableIndex in targetVariableIndexes) {
+ double estimatedValue = Evaluate();
+ estimatedTargetVariableValues[targetVariableIndex][step] = estimatedValue;
+ estimatedValues[component] = estimatedValue;
+ component++;
+ }
+ yield return estimatedValues;
+ }
+ }
+ }
+
+ public IEnumerable GetScaledSymbolicExpressionTreeValues(SymbolicExpressionTree tree, Dataset dataset, IEnumerable targetVariables, IEnumerable rows, int predictionHorizon, double[] beta, double[] alpha) {
+ this.dataset = dataset;
+ List targetVariableIndexes = new List();
+ estimatedTargetVariableValues = new Dictionary();
+ foreach (string targetVariable in targetVariables) {
+ int index = dataset.GetVariableIndex(targetVariable);
+ targetVariableIndexes.Add(index);
+ estimatedTargetVariableValues.Add(index, new double[predictionHorizon]);
+ }
+ var compiler = new SymbolicExpressionTreeCompiler();
+ compiler.AddInstructionPostProcessingHook(PostProcessInstruction);
+ code = compiler.Compile(tree, MapSymbolToOpCode);
+
+ foreach (var row in rows) {
+ ResetVariableValues(dataset, row);
+ for (int step = 0; step < predictionHorizon; step++) {
+ this.row = row + step;
+ this.currentPredictionHorizon = step;
+ pc = 0;
+ argStackPointer = 0;
+ double[] estimatedValues = new double[tree.Root.SubTrees[0].SubTrees.Count];
+ int component = 0;
+ foreach (int targetVariableIndex in targetVariableIndexes) {
+ double estimatedValue = Evaluate() * beta[component] + alpha[component];
+ estimatedTargetVariableValues[targetVariableIndex][step] = estimatedValue;
+ estimatedValues[component] = estimatedValue;
+ component++;
+ }
+ yield return estimatedValues;
+ }
+ }
+ }
+
+ #endregion
+
+ private void ResetVariableValues(Dataset dataset, int start) {
+ foreach (var pair in estimatedTargetVariableValues) {
+ int targetVariableIndex = pair.Key;
+ double[] values = pair.Value;
+ for (int i = 0; i < values.Length; i++) {
+ values[i] = dataset[start + i, targetVariableIndex];
+ }
+ }
+ }
+
+ private Instruction PostProcessInstruction(Instruction instr) {
+ if (instr.opCode == OpCodes.Variable) {
+ var variableTreeNode = instr.dynamicNode as VariableTreeNode;
+ instr.iArg0 = (ushort)dataset.GetVariableIndex(variableTreeNode.VariableName);
+ } else if (instr.opCode == OpCodes.LagVariable) {
+ var variableTreeNode = instr.dynamicNode as LaggedVariableTreeNode;
+ instr.iArg0 = (ushort)dataset.GetVariableIndex(variableTreeNode.VariableName);
+ }
+ return instr;
+ }
+
+ private byte MapSymbolToOpCode(SymbolicExpressionTreeNode treeNode) {
+ if (symbolToOpcode.ContainsKey(treeNode.Symbol.GetType()))
+ return symbolToOpcode[treeNode.Symbol.GetType()];
+ else
+ throw new NotSupportedException("Symbol: " + treeNode.Symbol);
+ }
+
+ private double Evaluate() {
+ Instruction currentInstr = code[pc++];
+ switch (currentInstr.opCode) {
+ case OpCodes.Add: {
+ double s = Evaluate();
+ for (int i = 1; i < currentInstr.nArguments; i++) {
+ s += Evaluate();
+ }
+ return s;
+ }
+ case OpCodes.Sub: {
+ double s = Evaluate();
+ for (int i = 1; i < currentInstr.nArguments; i++) {
+ s -= Evaluate();
+ }
+ if (currentInstr.nArguments == 1) s = -s;
+ return s;
+ }
+ case OpCodes.Mul: {
+ double p = Evaluate();
+ for (int i = 1; i < currentInstr.nArguments; i++) {
+ p *= Evaluate();
+ }
+ return p;
+ }
+ case OpCodes.Div: {
+ double p = Evaluate();
+ for (int i = 1; i < currentInstr.nArguments; i++) {
+ p /= Evaluate();
+ }
+ if (currentInstr.nArguments == 1) p = 1.0 / p;
+ return p;
+ }
+ case OpCodes.Average: {
+ double sum = Evaluate();
+ for (int i = 1; i < currentInstr.nArguments; i++) {
+ sum += Evaluate();
+ }
+ return sum / currentInstr.nArguments;
+ }
+ case OpCodes.Cos: {
+ return Math.Cos(Evaluate());
+ }
+ case OpCodes.Sin: {
+ return Math.Sin(Evaluate());
+ }
+ case OpCodes.Tan: {
+ return Math.Tan(Evaluate());
+ }
+ case OpCodes.Exp: {
+ return Math.Exp(Evaluate());
+ }
+ case OpCodes.Log: {
+ return Math.Log(Evaluate());
+ }
+ case OpCodes.IfThenElse: {
+ double condition = Evaluate();
+ double result;
+ if (condition > 0.0) {
+ result = Evaluate(); SkipBakedCode();
+ } else {
+ SkipBakedCode(); result = Evaluate();
+ }
+ return result;
+ }
+ case OpCodes.AND: {
+ double result = Evaluate();
+ for (int i = 1; i < currentInstr.nArguments; i++) {
+ if (result <= 0.0) SkipBakedCode();
+ else {
+ result = Evaluate();
+ }
+ }
+ return result <= 0.0 ? -1.0 : 1.0;
+ }
+ case OpCodes.OR: {
+ double result = Evaluate();
+ for (int i = 1; i < currentInstr.nArguments; i++) {
+ if (result > 0.0) SkipBakedCode();
+ else {
+ result = Evaluate();
+ }
+ }
+ return result > 0.0 ? 1.0 : -1.0;
+ }
+ case OpCodes.NOT: {
+ return -Evaluate();
+ }
+ case OpCodes.GT: {
+ double x = Evaluate();
+ double y = Evaluate();
+ if (x > y) return 1.0;
+ else return -1.0;
+ }
+ case OpCodes.LT: {
+ double x = Evaluate();
+ double y = Evaluate();
+ if (x < y) return 1.0;
+ else return -1.0;
+ }
+ case OpCodes.Call: {
+ // evaluate sub-trees
+ // push on argStack in reverse order
+ for (int i = 0; i < currentInstr.nArguments; i++) {
+ argumentStack[argStackPointer + currentInstr.nArguments - i] = Evaluate();
+ }
+ argStackPointer += currentInstr.nArguments;
+
+ // save the pc
+ int nextPc = pc;
+ // set pc to start of function
+ pc = currentInstr.iArg0;
+ // evaluate the function
+ double v = Evaluate();
+
+ // decrease the argument stack pointer by the number of arguments pushed
+ // to set the argStackPointer back to the original location
+ argStackPointer -= currentInstr.nArguments;
+
+ // restore the pc => evaluation will continue at point after my subtrees
+ pc = nextPc;
+ return v;
+ }
+ case OpCodes.Arg: {
+ return argumentStack[argStackPointer - currentInstr.iArg0];
+ }
+ case OpCodes.Variable: {
+ var variableTreeNode = currentInstr.dynamicNode as VariableTreeNode;
+ return dataset[row, currentInstr.iArg0] * variableTreeNode.Weight;
+ }
+ case OpCodes.LagVariable: {
+ var lagVariableTreeNode = currentInstr.dynamicNode as LaggedVariableTreeNode;
+ int actualRow = row + lagVariableTreeNode.Lag;
+ if (actualRow < 0 || actualRow >= dataset.Rows)
+ return double.NaN;
+ return GetVariableValue(currentInstr.iArg0, lagVariableTreeNode.Lag) * lagVariableTreeNode.Weight;
+ }
+ case OpCodes.MovingAverage: {
+ var movingAvgTreeNode = currentInstr.dynamicNode as MovingAverageTreeNode;
+ if (row + movingAvgTreeNode.MinTimeOffset < 0 || row + movingAvgTreeNode.MaxTimeOffset >= dataset.Rows)
+ return double.NaN;
+ double sum = 0.0;
+ for (int relativeRow = movingAvgTreeNode.MinTimeOffset; relativeRow < movingAvgTreeNode.MaxTimeOffset; relativeRow++) {
+ sum += GetVariableValue(currentInstr.iArg0, relativeRow) * movingAvgTreeNode.Weight;
+ }
+ return sum / (movingAvgTreeNode.MaxTimeOffset - movingAvgTreeNode.MinTimeOffset);
+ }
+ case OpCodes.Differential: {
+ var diffTreeNode = currentInstr.dynamicNode as DerivativeVariableTreeNode;
+ if (row + diffTreeNode.Lag - 2 < 0 || row + diffTreeNode.Lag >= dataset.Rows)
+ return double.NaN;
+ double y_0 = GetVariableValue(currentInstr.iArg0, diffTreeNode.Lag) * diffTreeNode.Weight;
+ double y_1 = GetVariableValue(currentInstr.iArg0, diffTreeNode.Lag - 1) * diffTreeNode.Weight;
+ double y_2 = GetVariableValue(currentInstr.iArg0, diffTreeNode.Lag - 2) * diffTreeNode.Weight;
+ return (3 * y_0 - 4 * y_1 + 3 * y_2) / 2;
+ }
+ case OpCodes.Integral: {
+ var integralVarTreeNode = currentInstr.dynamicNode as IntegratedVariableTreeNode;
+ if (row + integralVarTreeNode.MinTimeOffset < 0 || row + integralVarTreeNode.MaxTimeOffset >= dataset.Rows)
+ return double.NaN;
+ double sum = 0;
+ for (int relativeRow = integralVarTreeNode.MinTimeOffset; relativeRow < integralVarTreeNode.MaxTimeOffset; relativeRow++) {
+ sum += GetVariableValue(currentInstr.iArg0, relativeRow) * integralVarTreeNode.Weight;
+ }
+ return sum;
+ }
+ case OpCodes.Constant: {
+ var constTreeNode = currentInstr.dynamicNode as ConstantTreeNode;
+ return constTreeNode.Value;
+ }
+ default: throw new NotSupportedException();
+ }
+ }
+
+ private double GetVariableValue(int variableIndex, int timeoffset) {
+ if (estimatedTargetVariableValues.ContainsKey(variableIndex) &&
+ currentPredictionHorizon + timeoffset >= 0) {
+ return estimatedTargetVariableValues[variableIndex][currentPredictionHorizon + timeoffset];
+ } else {
+ return dataset[row + timeoffset, variableIndex];
+ }
+ }
+
+ // skips a whole branch
+ protected void SkipBakedCode() {
+ int i = 1;
+ while (i > 0) {
+ i += code[pc++].nArguments;
+ i--;
+ }
+ }
+ }
+}
+
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesPrognosisGrammar.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesPrognosisGrammar.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesPrognosisGrammar.cs (revision 4235)
@@ -0,0 +1,145 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using System.Collections.Generic;
+using System;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+using HeuristicLab.Data;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic {
+ [StorableClass]
+ [Item("SymbolicTimeSeriesPrognosisGrammar", "Represents a grammar for time series prognosis model using all available functions.")]
+ public class SymbolicTimeSeriesPrognosisGrammar : DefaultSymbolicExpressionGrammar {
+ [Storable]
+ private int dimension;
+
+ // for persistence
+ private SymbolicTimeSeriesPrognosisGrammar() : this(1) { }
+
+ public SymbolicTimeSeriesPrognosisGrammar(int dimension)
+ : base() {
+ this.dimension = dimension;
+ Initialize();
+ }
+
+ protected SymbolicTimeSeriesPrognosisGrammar(SymbolicTimeSeriesPrognosisGrammar original)
+ : base(original) {
+ this.dimension = original.dimension;
+ }
+
+ private void Initialize() {
+ var add = new Addition();
+ var sub = new Subtraction();
+ var mul = new Multiplication();
+ var div = new Division();
+ var mean = new Average();
+ var sin = new Sine();
+ var cos = new Cosine();
+ var tan = new Tangent();
+ var log = new Logarithm();
+ var exp = new Exponential();
+ var @if = new IfThenElse();
+ var gt = new GreaterThan();
+ var lt = new LessThan();
+ var and = new And();
+ var or = new Or();
+ var not = new Not();
+ var constant = new Constant();
+ constant.MinValue = -20;
+ constant.MaxValue = 20;
+ var variableSymbol = new HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols.Variable();
+ var laggedVariableSymbol = new HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols.LaggedVariable();
+ var integralVariableSymbol = new IntegratedVariable();
+ var derivedVariableSymbol = new DerivativeVariable();
+ var movingAverageSymbol = new MovingAverage();
+
+ var allSymbols = new List() { add, sub, mul, div, mean, sin, cos, tan, log, exp,
+ @if, gt, lt, and, or, not,
+ constant, variableSymbol, laggedVariableSymbol, derivedVariableSymbol, integralVariableSymbol, movingAverageSymbol};
+ var unaryFunctionSymbols = new List() { sin, cos, tan, log, exp, not };
+ var binaryFunctionSymbols = new List() { gt, lt };
+ var functionSymbols = new List() { add, sub, mul, div, mean, and, or };
+ var terminalSymbols = new List() { constant, variableSymbol, laggedVariableSymbol, derivedVariableSymbol, integralVariableSymbol, movingAverageSymbol };
+ foreach (var symb in allSymbols)
+ AddSymbol(symb);
+
+ foreach (var funSymb in functionSymbols) {
+ SetMinSubtreeCount(funSymb, 1);
+ SetMaxSubtreeCount(funSymb, 3);
+ }
+ foreach (var funSymb in unaryFunctionSymbols) {
+ SetMinSubtreeCount(funSymb, 1);
+ SetMaxSubtreeCount(funSymb, 1);
+ }
+ foreach (var funSymb in binaryFunctionSymbols) {
+ SetMinSubtreeCount(funSymb, 2);
+ SetMaxSubtreeCount(funSymb, 2);
+ }
+
+ SetMinSubtreeCount(@if, 3);
+ SetMaxSubtreeCount(@if, 3);
+ foreach (var terminalSymbol in terminalSymbols) {
+ SetMinSubtreeCount(terminalSymbol, 0);
+ SetMaxSubtreeCount(terminalSymbol, 0);
+ }
+
+ SetMinSubtreeCount(StartSymbol, dimension);
+ SetMaxSubtreeCount(StartSymbol, dimension);
+
+ // allow each symbol as child of the start symbol
+ foreach (var symb in allSymbols) {
+ for (int i = 0; i < GetMaxSubtreeCount(StartSymbol); i++)
+ SetAllowedChild(StartSymbol, symb, i);
+ }
+
+ // allow each symbol as child of every other symbol (except for terminals that have maxSubtreeCount == 0)
+ foreach (var parent in allSymbols) {
+ for (int i = 0; i < GetMaxSubtreeCount(parent); i++)
+ foreach (var child in allSymbols) {
+ SetAllowedChild(parent, child, i);
+ }
+ }
+ }
+
+ public void SetResultProducingBranches(int n) {
+ SetMinSubtreeCount(StartSymbol, n);
+ SetMaxSubtreeCount(StartSymbol, n);
+
+ foreach (Symbol s in Symbols) {
+ if (s != StartSymbol)
+ for (int i = 0; i < n; i++) {
+ SetAllowedChild(StartSymbol, s, i);
+ }
+ }
+ }
+
+ public override IDeepCloneable Clone(Cloner cloner) {
+ return new SymbolicTimeSeriesPrognosisGrammar(this);
+ }
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesPrognosisProblem.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesPrognosisProblem.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesPrognosisProblem.cs (revision 4235)
@@ -0,0 +1,334 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Optimization;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.PluginInfrastructure;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ArchitectureManipulators;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Manipulators;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Crossovers;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Creators;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Interfaces;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Analyzers;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Interfaces;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic {
+ [Item("Symbolic Time Series Prognosis Problem", "Represents a symbolic time series prognosis problem.")]
+ [StorableClass]
+ public class SymbolicTimeSeriesPrognosisProblem : MultiVariateDataAnalysisProblem, IProblem {
+
+ #region Parameter Properties
+ public ValueParameter SolutionCreatorParameter {
+ get { return (ValueParameter)Parameters["SolutionCreator"]; }
+ }
+ IParameter IProblem.SolutionCreatorParameter {
+ get { return SolutionCreatorParameter; }
+ }
+ public ValueParameter SymbolicExpressionTreeInterpreterParameter {
+ get { return (ValueParameter)Parameters["SymbolicExpressionTreeInterpreter"]; }
+ }
+ public ValueParameter FunctionTreeGrammarParameter {
+ get { return (ValueParameter)Parameters["FunctionTreeGrammar"]; }
+ }
+ public ValueParameter MaxExpressionLengthParameter {
+ get { return (ValueParameter)Parameters["MaxExpressionLength"]; }
+ }
+ public ValueParameter MaxExpressionDepthParameter {
+ get { return (ValueParameter)Parameters["MaxExpressionDepth"]; }
+ }
+ public ValueParameter MaxFunctionDefiningBranchesParameter {
+ get { return (ValueParameter)Parameters["MaxFunctionDefiningBranches"]; }
+ }
+ public ValueParameter MaxFunctionArgumentsParameter {
+ get { return (ValueParameter)Parameters["MaxFunctionArguments"]; }
+ }
+ public ValueParameter PredictionHorizonParameter {
+ get { return (ValueParameter)Parameters["PredictionHorizon"]; }
+ }
+ public ValueParameter UpperEstimationLimitParameter {
+ get { return (ValueParameter)Parameters["UpperEstimationLimit"]; }
+ }
+ public ValueParameter LowerEstimationLimitParameter {
+ get { return (ValueParameter)Parameters["LowerEstimationLimit"]; }
+ }
+ #endregion
+
+ #region Properties
+ public IntValue MaxExpressionLength {
+ get { return MaxExpressionLengthParameter.Value; }
+ set { MaxExpressionLengthParameter.Value = value; }
+ }
+ public IntValue MaxExpressionDepth {
+ get { return MaxExpressionDepthParameter.Value; }
+ set { MaxExpressionDepthParameter.Value = value; }
+ }
+ public IntValue MaxFunctionDefiningBranches {
+ get { return MaxFunctionDefiningBranchesParameter.Value; }
+ set { MaxFunctionDefiningBranchesParameter.Value = value; }
+ }
+ public IntValue MaxFunctionArguments {
+ get { return MaxFunctionArgumentsParameter.Value; }
+ set { MaxFunctionArgumentsParameter.Value = value; }
+ }
+ public DoubleArray UpperEstimationLimit {
+ get { return UpperEstimationLimitParameter.Value; }
+ set { UpperEstimationLimitParameter.Value = value; }
+ }
+ public DoubleArray LowerEstimationLimit {
+ get { return LowerEstimationLimitParameter.Value; }
+ set { LowerEstimationLimitParameter.Value = value; }
+ }
+ public new SymbolicExpressionTreeCreator SolutionCreator {
+ get { return SolutionCreatorParameter.Value; }
+ set { SolutionCreatorParameter.Value = value; }
+ }
+ ISolutionCreator IProblem.SolutionCreator {
+ get { return SolutionCreatorParameter.Value; }
+ }
+ public ISymbolicTimeSeriesExpressionInterpreter SymbolicExpressionTreeInterpreter {
+ get { return SymbolicExpressionTreeInterpreterParameter.Value; }
+ set { SymbolicExpressionTreeInterpreterParameter.Value = value; }
+ }
+
+ public ISymbolicExpressionGrammar FunctionTreeGrammar {
+ get { return (ISymbolicExpressionGrammar)FunctionTreeGrammarParameter.Value; }
+ set { FunctionTreeGrammarParameter.Value = value; }
+ }
+ public override IEnumerable Operators {
+ get { return operators; }
+ }
+ public IEnumerable Analyzers {
+ get { return operators.OfType(); }
+ }
+ public IntValue TrainingSamplesStart {
+ get { return new IntValue(MultiVariateDataAnalysisProblemData.TrainingSamplesStart.Value); }
+ }
+ public IntValue TrainingSamplesEnd {
+ get {
+ return new IntValue((MultiVariateDataAnalysisProblemData.TrainingSamplesStart.Value +
+ MultiVariateDataAnalysisProblemData.TrainingSamplesEnd.Value) / 2);
+ }
+ }
+ public IntValue ValidationSamplesStart {
+ get { return TrainingSamplesEnd; }
+ }
+ public IntValue ValidationSamplesEnd {
+ get { return new IntValue(MultiVariateDataAnalysisProblemData.TrainingSamplesEnd.Value); }
+ }
+ public IntValue TestSamplesStart {
+ get { return MultiVariateDataAnalysisProblemData.TestSamplesStart; }
+ }
+ public IntValue TestSamplesEnd {
+ get { return MultiVariateDataAnalysisProblemData.TestSamplesEnd; }
+ }
+ public DoubleValue PunishmentFactor {
+ get { return new DoubleValue(10.0); }
+ }
+ #endregion
+
+ [Storable]
+ private SymbolicTimeSeriesPrognosisGrammar grammar;
+ [Storable]
+ private List operators;
+
+ [StorableConstructor]
+ protected SymbolicTimeSeriesPrognosisProblem(bool deserializing) : base(deserializing) { }
+ public SymbolicTimeSeriesPrognosisProblem()
+ : base() {
+ SymbolicExpressionTreeCreator creator = new ProbabilisticTreeCreator();
+ grammar = new SymbolicTimeSeriesPrognosisGrammar(1);
+ var globalGrammar = new GlobalSymbolicExpressionGrammar(grammar);
+ var interpreter = new SymbolicTimeSeriesExpressionInterpreter();
+ Parameters.Add(new ValueParameter("SolutionCreator", "The operator which should be used to create new symbolic time series prognosis solutions.", creator));
+ Parameters.Add(new ValueParameter("SymbolicExpressionTreeInterpreter", "The interpreter that should be used to evaluate the symbolic expression tree.", interpreter));
+ Parameters.Add(new ValueParameter("FunctionTreeGrammar", "The grammar that should be used for symbolic time series prognosis models.", globalGrammar));
+ Parameters.Add(new ValueParameter("MaxExpressionLength", "Maximal length of the symbolic expression.", new IntValue(100)));
+ Parameters.Add(new ValueParameter("MaxExpressionDepth", "Maximal depth of the symbolic expression.", new IntValue(10)));
+ Parameters.Add(new ValueParameter("MaxFunctionDefiningBranches", "Maximal number of automatically defined functions.", (IntValue)new IntValue(0).AsReadOnly()));
+ Parameters.Add(new ValueParameter("MaxFunctionArguments", "Maximal number of arguments of automatically defined functions.", (IntValue)new IntValue(0).AsReadOnly()));
+ Parameters.Add(new ValueParameter("PredictionHorizon", "The number of time steps for which to create a forecast.", new IntValue(1)));
+ Parameters.Add(new ValueParameter("UpperEstimationLimit", "The upper limit for the estimated values for each component."));
+ Parameters.Add(new ValueParameter("LowerEstimationLimit", "The lower limit for the estimated values for each component."));
+ creator.SymbolicExpressionTreeParameter.ActualName = "SymbolicTimeSeriesPrognosisModel";
+
+ ParameterizeSolutionCreator();
+
+ UpdateGrammar();
+ InitializeOperators();
+ RegisterParameterEvents();
+ RegisterParameterValueEvents();
+ }
+
+ [StorableHook(HookType.AfterDeserialization)]
+ private void AfterDeserializationHook() {
+ // BackwardsCompatibility3.3
+ #region Backwards compatible code (remove with 3.4)
+ if (operators == null) InitializeOperators();
+ #endregion
+ RegisterParameterEvents();
+ RegisterParameterValueEvents();
+ }
+
+ public override IDeepCloneable Clone(Cloner cloner) {
+ SymbolicTimeSeriesPrognosisProblem clone = (SymbolicTimeSeriesPrognosisProblem)base.Clone(cloner);
+ clone.operators = operators.Select(x => (IOperator)cloner.Clone(x)).ToList();
+ clone.grammar = (SymbolicTimeSeriesPrognosisGrammar)cloner.Clone(grammar);
+ clone.RegisterParameterEvents();
+ clone.RegisterParameterValueEvents();
+ return clone;
+ }
+
+ private void RegisterParameterValueEvents() {
+ MaxFunctionArgumentsParameter.ValueChanged += new EventHandler(ArchitectureParameter_ValueChanged);
+ MaxFunctionDefiningBranchesParameter.ValueChanged += new EventHandler(ArchitectureParameter_ValueChanged);
+ SolutionCreatorParameter.ValueChanged += new EventHandler(SolutionCreatorParameter_ValueChanged);
+ }
+
+ private void RegisterParameterEvents() {
+ MaxFunctionArgumentsParameter.Value.ValueChanged += new EventHandler(ArchitectureParameterValue_ValueChanged);
+ MaxFunctionDefiningBranchesParameter.Value.ValueChanged += new EventHandler(ArchitectureParameterValue_ValueChanged);
+ SolutionCreator.SymbolicExpressionTreeParameter.ActualNameChanged += new EventHandler(SolutionCreator_SymbolicExpressionTreeParameter_ActualNameChanged);
+ }
+
+ #region event handling
+ protected override void OnMultiVariateDataAnalysisProblemChanged(EventArgs e) {
+ base.OnMultiVariateDataAnalysisProblemChanged(e);
+ // input variables could have been changed
+ UpdateGrammar();
+ UpdateEstimationLimits();
+ }
+ protected virtual void OnArchitectureParameterChanged(EventArgs e) {
+ UpdateGrammar();
+ }
+ protected virtual void OnGrammarChanged(EventArgs e) { }
+ protected virtual void OnOperatorsChanged(EventArgs e) { RaiseOperatorsChanged(e); }
+ protected virtual void OnSolutionCreatorChanged(EventArgs e) {
+ SolutionCreator.SymbolicExpressionTreeParameter.ActualNameChanged += new EventHandler(SolutionCreator_SymbolicExpressionTreeParameter_ActualNameChanged);
+ ParameterizeSolutionCreator();
+ OnSolutionParameterNameChanged(e);
+ RaiseSolutionCreatorChanged(e);
+ }
+
+ protected virtual void OnSolutionParameterNameChanged(EventArgs e) {
+ ParameterizeOperators();
+ }
+ #endregion
+
+ #region event handlers
+ private void SolutionCreatorParameter_ValueChanged(object sender, EventArgs e) {
+ OnSolutionCreatorChanged(e);
+ }
+ private void SolutionCreator_SymbolicExpressionTreeParameter_ActualNameChanged(object sender, EventArgs e) {
+ OnSolutionParameterNameChanged(e);
+ }
+ private void ArchitectureParameter_ValueChanged(object sender, EventArgs e) {
+ MaxFunctionArgumentsParameter.Value.ValueChanged += new EventHandler(ArchitectureParameterValue_ValueChanged);
+ MaxFunctionDefiningBranchesParameter.Value.ValueChanged += new EventHandler(ArchitectureParameterValue_ValueChanged);
+ OnArchitectureParameterChanged(e);
+ }
+ private void ArchitectureParameterValue_ValueChanged(object sender, EventArgs e) {
+ OnArchitectureParameterChanged(e);
+ }
+ #endregion
+
+ #region Helpers
+ protected void AddOperator(IOperator op) {
+ operators.Add(op);
+ }
+
+ private void UpdateGrammar() {
+ var selectedTargetVariables = MultiVariateDataAnalysisProblemData.TargetVariables.CheckedItems;
+ grammar.SetResultProducingBranches(selectedTargetVariables.Count());
+
+ foreach (var varSymbol in grammar.Symbols.OfType()) {
+ varSymbol.VariableNames = MultiVariateDataAnalysisProblemData.InputVariables.CheckedItems.Select(x => x.Value.Value);
+ }
+
+ var globalGrammar = new GlobalSymbolicExpressionGrammar(grammar);
+ globalGrammar.MaxFunctionArguments = MaxFunctionArguments.Value;
+ globalGrammar.MaxFunctionDefinitions = MaxFunctionDefiningBranches.Value;
+ FunctionTreeGrammar = globalGrammar;
+ }
+ private void UpdateEstimationLimits() {
+ IEnumerable selectedTargetVariables = MultiVariateDataAnalysisProblemData.TargetVariables.CheckedItems.Select(x => x.Value.Value);
+ UpperEstimationLimit = new DoubleArray(selectedTargetVariables.Count());
+ LowerEstimationLimit = new DoubleArray(selectedTargetVariables.Count());
+ int i = 0;
+ foreach (string targetVariable in selectedTargetVariables) {
+ if (TrainingSamplesStart.Value < TrainingSamplesEnd.Value) {
+ var targetValues = MultiVariateDataAnalysisProblemData.Dataset.GetVariableValues(targetVariable, TrainingSamplesStart.Value, TrainingSamplesEnd.Value);
+ var mean = targetValues.Average();
+ var range = targetValues.Max() - targetValues.Min();
+ UpperEstimationLimit[i] = mean + PunishmentFactor.Value * range;
+ LowerEstimationLimit[i] = mean - PunishmentFactor.Value * range;
+ } else {
+ UpperEstimationLimit[i] = 0;
+ LowerEstimationLimit[i] = 0;
+ }
+ i++;
+ }
+ }
+
+ private void InitializeOperators() {
+ operators = new List();
+ operators.AddRange(ApplicationManager.Manager.GetInstances().OfType());
+ operators.Add(new MinAverageMaxSymbolicExpressionTreeSizeAnalyzer());
+ ParameterizeOperators();
+ }
+
+ private void ParameterizeSolutionCreator() {
+ SolutionCreator.SymbolicExpressionGrammarParameter.ActualName = FunctionTreeGrammarParameter.Name;
+ SolutionCreator.MaxTreeHeightParameter.ActualName = MaxExpressionDepthParameter.Name;
+ SolutionCreator.MaxTreeSizeParameter.ActualName = MaxExpressionLengthParameter.Name;
+ SolutionCreator.MaxFunctionArgumentsParameter.ActualName = MaxFunctionArgumentsParameter.Name;
+ SolutionCreator.MaxFunctionDefinitionsParameter.ActualName = MaxFunctionDefiningBranchesParameter.Name;
+ }
+
+ private void ParameterizeOperators() {
+ foreach (ISymbolicExpressionTreeOperator op in Operators.OfType()) {
+ op.MaxTreeHeightParameter.ActualName = MaxExpressionDepthParameter.Name;
+ op.MaxTreeSizeParameter.ActualName = MaxExpressionLengthParameter.Name;
+ op.SymbolicExpressionGrammarParameter.ActualName = FunctionTreeGrammarParameter.Name;
+ }
+ foreach (ISymbolicExpressionTreeCrossover op in Operators.OfType()) {
+ op.ParentsParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
+ op.ChildParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
+ }
+ foreach (ISymbolicExpressionTreeManipulator op in Operators.OfType()) {
+ op.SymbolicExpressionTreeParameter.ActualName = SolutionCreator.SymbolicExpressionTreeParameter.ActualName;
+ }
+ foreach (ISymbolicExpressionTreeArchitectureManipulator op in Operators.OfType()) {
+ op.MaxFunctionArgumentsParameter.ActualName = MaxFunctionArgumentsParameter.Name;
+ op.MaxFunctionDefinitionsParameter.ActualName = MaxFunctionDefiningBranchesParameter.Name;
+ }
+ }
+ #endregion
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/DerivativeVariable.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/DerivativeVariable.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/DerivativeVariable.cs (revision 4235)
@@ -0,0 +1,65 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Operators;
+using HeuristicLab.Random;
+using HeuristicLab.Data;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Parameters;
+using System.Collections.Generic;
+using System;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols {
+ [StorableClass]
+ [Item("DerivativeVariable", "Represents an differentiated variable value with a time offset.")]
+ public sealed class DerivativeVariable : HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols.Variable {
+ [Storable]
+ private int minLag;
+ public int MinLag {
+ get { return minLag; }
+ set { minLag = value; }
+ }
+ [Storable]
+ private int maxLag;
+ public int MaxLag {
+ get { return maxLag; }
+ set { maxLag = value; }
+ }
+ public DerivativeVariable()
+ : base("DerivativeVariable", "Represents an differentiated variable value with a time offset.") {
+ minLag = -1; maxLag = -1;
+ }
+
+ public override SymbolicExpressionTreeNode CreateTreeNode() {
+ return new DerivativeVariableTreeNode(this);
+ }
+
+ public override IDeepCloneable Clone(Cloner cloner) {
+ DerivativeVariable clone = (DerivativeVariable)base.Clone(cloner);
+ clone.minLag = minLag;
+ clone.maxLag = maxLag;
+ return clone;
+ }
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/DerivativeVariableTreeNode.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/DerivativeVariableTreeNode.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/DerivativeVariableTreeNode.cs (revision 4235)
@@ -0,0 +1,80 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using System;
+using System.Collections.Generic;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Random;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols {
+ [StorableClass]
+ public sealed class DerivativeVariableTreeNode : VariableTreeNode {
+ public new DerivativeVariable Symbol {
+ get { return (DerivativeVariable)base.Symbol; }
+ }
+ [Storable]
+ private int lag;
+ public int Lag {
+ get { return lag; }
+ set { lag = value; }
+ }
+
+ private DerivativeVariableTreeNode() { }
+
+ // copy constructor
+ private DerivativeVariableTreeNode(DerivativeVariableTreeNode original)
+ : base(original) {
+ lag = original.lag;
+ }
+
+ public DerivativeVariableTreeNode(DerivativeVariable derivedVariableSymbol) : base(derivedVariableSymbol) { }
+
+ public override bool HasLocalParameters {
+ get {
+ return true;
+ }
+ }
+
+ public override void ResetLocalParameters(IRandom random) {
+ base.ResetLocalParameters(random);
+ lag = random.Next(Symbol.MinLag, Symbol.MaxLag + 1);
+ }
+
+ public override void ShakeLocalParameters(IRandom random, double shakingFactor) {
+ base.ShakeLocalParameters(random, shakingFactor);
+ lag = Math.Min(Symbol.MaxLag, Math.Max(Symbol.MinLag, lag + random.Next(-1, 2)));
+ }
+
+
+ public override object Clone() {
+ return new DerivativeVariableTreeNode(this);
+ }
+
+ public override string ToString() {
+ return Weight.ToString("E4") + " d(" + VariableName +
+ ")(t" + (lag > 0 ? "+" : "") + lag + ")";
+ }
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/IntegratedVariable.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/IntegratedVariable.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/IntegratedVariable.cs (revision 4235)
@@ -0,0 +1,65 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Operators;
+using HeuristicLab.Random;
+using HeuristicLab.Data;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Parameters;
+using System.Collections.Generic;
+using System;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols {
+ [StorableClass]
+ [Item("IntegratedVariable", "Represents an integrated variable value with a time offset.")]
+ public sealed class IntegratedVariable : HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols.Variable {
+ [Storable]
+ private int minLag;
+ public int MinLag {
+ get { return minLag; }
+ set { minLag = value; }
+ }
+ [Storable]
+ private int maxLag;
+ public int MaxLag {
+ get { return maxLag; }
+ set { maxLag = value; }
+ }
+ public IntegratedVariable()
+ : base("IntegratedVariable", "Represents an integrated variable value with a time offset.") {
+ minLag = -1; maxLag = -1;
+ }
+
+ public override SymbolicExpressionTreeNode CreateTreeNode() {
+ return new IntegratedVariableTreeNode(this);
+ }
+
+ public override IDeepCloneable Clone(Cloner cloner) {
+ IntegratedVariable clone = (IntegratedVariable)base.Clone(cloner);
+ clone.minLag = minLag;
+ clone.maxLag = maxLag;
+ return clone;
+ }
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/IntegratedVariableTreeNode.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/IntegratedVariableTreeNode.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/IntegratedVariableTreeNode.cs (revision 4235)
@@ -0,0 +1,90 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using System;
+using System.Collections.Generic;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Random;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols {
+ [StorableClass]
+ public sealed class IntegratedVariableTreeNode : VariableTreeNode {
+ public new IntegratedVariable Symbol {
+ get { return (IntegratedVariable)base.Symbol; }
+ }
+ [Storable]
+ private int minTimeOffset;
+ public int MinTimeOffset {
+ get { return minTimeOffset; }
+ set { minTimeOffset = value; }
+ }
+
+ [Storable]
+ private int maxTimeOffset;
+ public int MaxTimeOffset {
+ get { return maxTimeOffset; }
+ set { maxTimeOffset = value; }
+ }
+
+ private IntegratedVariableTreeNode() { }
+
+ // copy constructor
+ private IntegratedVariableTreeNode(IntegratedVariableTreeNode original)
+ : base(original) {
+ minTimeOffset = original.minTimeOffset;
+ maxTimeOffset = original.maxTimeOffset;
+ }
+
+ public IntegratedVariableTreeNode(IntegratedVariable integralVarSymbol) : base(integralVarSymbol) { }
+
+ public override bool HasLocalParameters {
+ get {
+ return true;
+ }
+ }
+
+ public override void ResetLocalParameters(IRandom random) {
+ base.ResetLocalParameters(random);
+ minTimeOffset = random.Next(Symbol.MinLag, Symbol.MaxLag + 1);
+ maxTimeOffset = random.Next(minTimeOffset, Symbol.MaxLag + 1);
+ }
+
+ public override void ShakeLocalParameters(IRandom random, double shakingFactor) {
+ base.ShakeLocalParameters(random, shakingFactor);
+ minTimeOffset = Math.Min(Symbol.MaxLag, Math.Max(Symbol.MinLag, minTimeOffset + random.Next(-1, 2)));
+ maxTimeOffset = Math.Min(Symbol.MaxLag, Math.Max(minTimeOffset, maxTimeOffset + random.Next(-1, 2)));
+ }
+
+
+ public override object Clone() {
+ return new IntegratedVariableTreeNode(this);
+ }
+
+ public override string ToString() {
+ return Weight.ToString("E4") + " I(" + VariableName +
+ ", " + minTimeOffset + ", " + maxTimeOffset + ")";
+ }
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/MovingAverage.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/MovingAverage.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/MovingAverage.cs (revision 4235)
@@ -0,0 +1,65 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Operators;
+using HeuristicLab.Random;
+using HeuristicLab.Data;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Parameters;
+using System.Collections.Generic;
+using System;
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Symbols;
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols {
+ [StorableClass]
+ [Item("MovingAverage", "Represents a moving average of a variable value with a time offset.")]
+ public sealed class MovingAverage : HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols.Variable {
+ [Storable]
+ private int minLag;
+ public int MinLag {
+ get { return minLag; }
+ set { minLag = value; }
+ }
+ [Storable]
+ private int maxLag;
+ public int MaxLag {
+ get { return maxLag; }
+ set { maxLag = value; }
+ }
+ public MovingAverage()
+ : base("MovingAverage", "Represents a moving average of a variable value with a time offset.") {
+ minLag = -1; maxLag = -1;
+ }
+
+ public override SymbolicExpressionTreeNode CreateTreeNode() {
+ return new MovingAverageTreeNode(this);
+ }
+
+ public override IDeepCloneable Clone(Cloner cloner) {
+ MovingAverage clone = (MovingAverage)base.Clone(cloner);
+ clone.minLag = minLag;
+ clone.maxLag = maxLag;
+ return clone;
+ }
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/MovingAverageTreeNode.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/MovingAverageTreeNode.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/MovingAverageTreeNode.cs (revision 4235)
@@ -0,0 +1,90 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
+using System;
+using System.Collections.Generic;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Random;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis.Symbolic.Symbols {
+ [StorableClass]
+ public sealed class MovingAverageTreeNode : VariableTreeNode {
+ public new MovingAverage Symbol {
+ get { return (MovingAverage)base.Symbol; }
+ }
+ [Storable]
+ private int minTimeOffset;
+ public int MinTimeOffset {
+ get { return minTimeOffset; }
+ set { minTimeOffset = value; }
+ }
+
+ [Storable]
+ private int maxTimeOffset;
+ public int MaxTimeOffset {
+ get { return maxTimeOffset; }
+ set { maxTimeOffset = value; }
+ }
+
+ private MovingAverageTreeNode() { }
+
+ // copy constructor
+ private MovingAverageTreeNode(MovingAverageTreeNode original)
+ : base(original) {
+ minTimeOffset = original.minTimeOffset;
+ maxTimeOffset = original.maxTimeOffset;
+ }
+
+ public MovingAverageTreeNode(MovingAverage maSymbol) : base(maSymbol) { }
+
+ public override bool HasLocalParameters {
+ get {
+ return true;
+ }
+ }
+
+ public override void ResetLocalParameters(IRandom random) {
+ base.ResetLocalParameters(random);
+ minTimeOffset = random.Next(Symbol.MinLag, Symbol.MaxLag + 1);
+ maxTimeOffset = random.Next(minTimeOffset, Symbol.MaxLag + 1);
+ }
+
+ public override void ShakeLocalParameters(IRandom random, double shakingFactor) {
+ base.ShakeLocalParameters(random, shakingFactor);
+ minTimeOffset = Math.Min(Symbol.MaxLag, Math.Max(Symbol.MinLag, minTimeOffset + random.Next(-1, 2)));
+ maxTimeOffset = Math.Min(Symbol.MaxLag, Math.Max(minTimeOffset, maxTimeOffset + random.Next(-1, 2)));
+ }
+
+
+ public override object Clone() {
+ return new MovingAverageTreeNode(this);
+ }
+
+ public override string ToString() {
+ return Weight.ToString("E4") + " MA(" + VariableName +
+ ", " + minTimeOffset + ", " + maxTimeOffset + ")";
+ }
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views-3.3.csproj
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views-3.3.csproj (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views-3.3.csproj (revision 4235)
@@ -0,0 +1,194 @@
+
+
+
+ Debug
+ AnyCPU
+ 9.0.30729
+ 2.0
+ {9B6EA19A-F894-4E00-B5A3-970514284772}
+ Library
+ Properties
+ HeuristicLab.Problems.DataAnalysis.MultiVariate.Views
+ HeuristicLab.Problems.DataAnalysis.MultiVariate.Views-3.3
+ v3.5
+ 512
+ true
+ HeuristicLab.snk
+
+
+ 3.5
+
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ false
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ AllRules.ruleset
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ AllRules.ruleset
+
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE
+ full
+ x64
+ prompt
+ AllRules.ruleset
+
+
+ bin\x64\Release\
+ TRACE
+ true
+ pdbonly
+ x64
+ prompt
+ AllRules.ruleset
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE
+ full
+ x86
+ prompt
+ AllRules.ruleset
+
+
+ bin\x86\Release\
+ TRACE
+ true
+ pdbonly
+ x86
+ prompt
+ AllRules.ruleset
+
+
+
+
+ 3.5
+
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+
+
+
+ UserControl
+
+
+ MultiVariateDataAnalysisProblemDataView.cs
+
+
+
+
+
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}
+ HeuristicLab.Common-3.3
+
+
+ {E226881D-315F-423D-B419-A766FE0D8685}
+ HeuristicLab.Core.Views-3.3
+
+
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}
+ HeuristicLab.Core-3.3
+
+
+ {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}
+ HeuristicLab.Data.Views-3.3
+
+
+ {AB687BBE-1BFE-476B-906D-44237135431D}
+ HeuristicLab.MainForm.WindowsForms-3.3
+
+
+ {3BD61258-31DA-4B09-89C0-4F71FEF5F05A}
+ HeuristicLab.MainForm-3.3
+
+
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}
+ HeuristicLab.Persistence-3.3
+
+
+ {94186A6A-5176-4402-AE83-886557B53CCA}
+ HeuristicLab.PluginInfrastructure-3.3
+
+
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}
+ HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3
+
+
+
+
+ False
+ .NET Framework 3.5 SP1 Client Profile
+ false
+
+
+ False
+ .NET Framework 3.5 SP1
+ true
+
+
+ False
+ Windows Installer 3.1
+ true
+
+
+
+
+
+ set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd
+SubWCRev "%25ProjectDir%25\" "%25ProjectDir%25\HeuristicLabProblemsDataAnalysisMultiVariateViewsPlugin.cs.frame" "%25ProjectDir%25\HeuristicLabProblemsDataAnalysisMultiVariateViewsPlugin.cs"
+
+
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/HeuristicLabProblemsDataAnalysisMultiVariateViewsPlugin.cs.frame
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/HeuristicLabProblemsDataAnalysisMultiVariateViewsPlugin.cs.frame (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/HeuristicLabProblemsDataAnalysisMultiVariateViewsPlugin.cs.frame (revision 4235)
@@ -0,0 +1,40 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.Views {
+ [Plugin("HeuristicLab.Problems.DataAnalysis.MultiVariate.Views","3.3.0.$WCREV$")]
+ [PluginFile("HeuristicLab.Problems.DataAnalysis.MultiVariate.Views-3.3.dll", PluginFileType.Assembly)]
+ [PluginDependency("HeuristicLab.Common", "3.3")]
+ [PluginDependency("HeuristicLab.Core", "3.3")]
+ [PluginDependency("HeuristicLab.Core.Views", "3.3")]
+ [PluginDependency("HeuristicLab.Data.Views", "3.3")]
+ [PluginDependency("HeuristicLab.MainForm", "3.3")]
+ [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
+ [PluginDependency("HeuristicLab.Persistence", "3.3")]
+ [PluginDependency("HeuristicLab.Problems.DataAnalysis.MultiVariate", "3.3")]
+ public class HeuristicLabProblemsDataAnalysisMultiVariateViewsPlugin : PluginBase {
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/MultiVariateDataAnalysisProblemDataView.Designer.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/MultiVariateDataAnalysisProblemDataView.Designer.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/MultiVariateDataAnalysisProblemDataView.Designer.cs (revision 4235)
@@ -0,0 +1,100 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.Views {
+ partial class MultiVariateDataAnalysisProblemDataView {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing) {
+ if (disposing && (components != null)) {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent() {
+ this.importButton = new System.Windows.Forms.Button();
+ ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+ this.SuspendLayout();
+ //
+ // parameterCollectionView
+ //
+ this.parameterCollectionView.Size = new System.Drawing.Size(585, 366);
+ //
+ // nameTextBox
+ //
+ this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+ this.errorProvider.SetIconPadding(this.nameTextBox, 2);
+ this.nameTextBox.Size = new System.Drawing.Size(513, 20);
+ //
+ // descriptionTextBox
+ //
+ this.descriptionTextBox.Size = new System.Drawing.Size(513, 20);
+ //
+ // importButton
+ //
+ this.importButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.importButton.Location = new System.Drawing.Point(6, 424);
+ this.importButton.Name = "importButton";
+ this.importButton.Size = new System.Drawing.Size(579, 23);
+ this.importButton.TabIndex = 4;
+ this.importButton.Text = "Import from CSV file";
+ this.importButton.UseVisualStyleBackColor = true;
+ this.importButton.Click += new System.EventHandler(this.importButton_Click);
+ //
+ // DataAnalysisProblemDataView
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.importButton);
+ this.Name = "DataAnalysisProblemDataView";
+ this.Size = new System.Drawing.Size(588, 450);
+ this.Controls.SetChildIndex(this.parameterCollectionView, 0);
+ this.Controls.SetChildIndex(this.importButton, 0);
+ this.Controls.SetChildIndex(this.nameLabel, 0);
+ this.Controls.SetChildIndex(this.descriptionLabel, 0);
+ this.Controls.SetChildIndex(this.nameTextBox, 0);
+ this.Controls.SetChildIndex(this.descriptionTextBox, 0);
+ ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button importButton;
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/MultiVariateDataAnalysisProblemDataView.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/MultiVariateDataAnalysisProblemDataView.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/MultiVariateDataAnalysisProblemDataView.cs (revision 4235)
@@ -0,0 +1,57 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Windows.Forms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.PluginInfrastructure;
+using HeuristicLab.Problems.DataAnalysis.MultiVariate;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.Views {
+ [View("Multi-Variate Data-Analysis Problem View")]
+ [Content(typeof(MultiVariateDataAnalysisProblemData), true)]
+ public partial class MultiVariateDataAnalysisProblemDataView : ParameterizedNamedItemView {
+ private OpenFileDialog openFileDialog;
+ public new MultiVariateDataAnalysisProblemData Content {
+ get { return (MultiVariateDataAnalysisProblemData)base.Content; }
+ set { base.Content = value; }
+ }
+
+ public MultiVariateDataAnalysisProblemDataView() {
+ InitializeComponent();
+ }
+
+ private void importButton_Click(object sender, EventArgs e) {
+ if (openFileDialog == null) openFileDialog = new OpenFileDialog();
+
+ if (openFileDialog.ShowDialog(this) == DialogResult.OK) {
+ try {
+ Content.ImportFromFile(openFileDialog.FileName);
+ importButton.Enabled = false;
+ }
+ catch (Exception ex) {
+ ErrorHandling.ShowErrorDialog(this, ex);
+ }
+ }
+ }
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/Properties/AssemblyInfo.frame
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/Properties/AssemblyInfo.frame (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Views/3.3/Properties/AssemblyInfo.frame (revision 4235)
@@ -0,0 +1,55 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Problems.DataAnalysis.MultiVariate.Views")]
+[assembly: AssemblyDescription("Views for HeuristicLab multi variate data analysis problem classes ")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2010 HEAL")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("67B13CF0-EB85-4517-BF0A-7765B5EF54F7")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.0.$WCREV$")]
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3.csproj
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3.csproj (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3.csproj (revision 4235)
@@ -0,0 +1,209 @@
+
+
+
+ Debug
+ AnyCPU
+ 9.0.30729
+ 2.0
+ {2B88DCD0-EE28-4DCA-90A8-2F4ECACFC515}
+ Library
+ Properties
+ HeuristicLab.Problems.DataAnalysis.MultiVariate
+ HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3
+ v3.5
+ 512
+ true
+ HeuristicLab.snk
+
+
+ 3.5
+
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ false
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ AllRules.ruleset
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ AllRules.ruleset
+
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE
+ full
+ x64
+ prompt
+ AllRules.ruleset
+
+
+ bin\x64\Release\
+ TRACE
+ true
+ pdbonly
+ x64
+ prompt
+ AllRules.ruleset
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE
+ full
+ x86
+ prompt
+ AllRules.ruleset
+
+
+ bin\x86\Release\
+ TRACE
+ true
+ pdbonly
+ x86
+ prompt
+ AllRules.ruleset
+
+
+
+
+ 3.5
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}
+ HeuristicLab.Collections-3.3
+
+
+ {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}
+ HeuristicLab.Common.Resources-3.3
+
+
+ {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}
+ HeuristicLab.Common-3.3
+
+
+ {C36BD924-A541-4A00-AFA8-41701378DDC5}
+ HeuristicLab.Core-3.3
+
+
+ {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}
+ HeuristicLab.Data-3.3
+
+
+ {125D3006-67F5-48CB-913E-73C0548F17FA}
+ HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3
+
+
+ {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}
+ HeuristicLab.Operators-3.3
+
+
+ {14AB8D24-25BC-400C-A846-4627AA945192}
+ HeuristicLab.Optimization-3.3
+
+
+ {56F9106A-079F-4C61-92F6-86A84C2D84B7}
+ HeuristicLab.Parameters-3.3
+
+
+ {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}
+ HeuristicLab.Persistence-3.3
+
+
+ {94186A6A-5176-4402-AE83-886557B53CCA}
+ HeuristicLab.PluginInfrastructure-3.3
+
+
+ {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}
+ HeuristicLab.Problems.DataAnalysis-3.3
+
+
+ {F4539FB6-4708-40C9-BE64-0A1390AEA197}
+ HeuristicLab.Random-3.3
+
+
+
+
+ False
+ .NET Framework 3.5 SP1 Client Profile
+ false
+
+
+ False
+ .NET Framework 3.5 SP1
+ true
+
+
+ False
+ Windows Installer 3.1
+ true
+
+
+
+
+
+ set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd
+SubWCRev "%25ProjectDir%25\" "%25ProjectDir%25\HeuristicLabProblemsDataAnalysisMultiVariatePlugin.cs.frame" "%25ProjectDir%25\HeuristicLabProblemsDataAnalysisMultiVariatePlugin.cs"
+
+
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/HeuristicLabProblemsDataAnalysisMultiVariatePlugin.cs.frame
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/HeuristicLabProblemsDataAnalysisMultiVariatePlugin.cs.frame (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/HeuristicLabProblemsDataAnalysisMultiVariatePlugin.cs.frame (revision 4235)
@@ -0,0 +1,45 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate {
+ [Plugin("HeuristicLab.Problems.DataAnalysis.MultiVariate","3.3.0.$WCREV$")]
+ [PluginFile("HeuristicLab.Problems.DataAnalysis.MultiVariate-3.3.dll", PluginFileType.Assembly)]
+ [PluginDependency("HeuristicLab.Analysis","3.3")]
+ [PluginDependency("HeuristicLab.Collections","3.3")]
+ [PluginDependency("HeuristicLab.Common","3.3")]
+ [PluginDependency("HeuristicLab.Common.Resources","3.3")]
+ [PluginDependency("HeuristicLab.Core","3.3")]
+ [PluginDependency("HeuristicLab.Data","3.3")]
+ [PluginDependency("HeuristicLab.Encodings.SymbolicExpressionTreeEncoding","3.3")]
+ [PluginDependency("HeuristicLab.Operators","3.3")]
+ [PluginDependency("HeuristicLab.Optimization","3.3")]
+ [PluginDependency("HeuristicLab.Parameters","3.3")]
+ [PluginDependency("HeuristicLab.Persistence","3.3")]
+ [PluginDependency("HeuristicLab.Problems.DataAnalysis","3.3")]
+ [PluginDependency("HeuristicLab.Random","3.3")]
+ public class HeuristicLabProblemsDataAnalysisMultiVariatePlugin : PluginBase {
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisEvaluator.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisEvaluator.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisEvaluator.cs (revision 4235)
@@ -0,0 +1,29 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using HeuristicLab.Core;
+using HeuristicLab.Optimization;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate {
+ public interface IMultiVariateDataAnalysisEvaluator : IEvaluator {
+ ILookupParameter MultiVariateDataAnalysisProblemDataParameter { get; }
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisModel.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisModel.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisModel.cs (revision 4235)
@@ -0,0 +1,27 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using HeuristicLab.Core;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate {
+ public interface IMultiVariateDataAnalysisModel : INamedItem {
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisProblem.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisProblem.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisProblem.cs (revision 4235)
@@ -0,0 +1,27 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using HeuristicLab.Optimization;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate {
+ public interface IMultiVariateDataAnalysisProblem : IProblem {
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisSolution.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisSolution.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/Interfaces/IMultiVariateDataAnalysisSolution.cs (revision 4235)
@@ -0,0 +1,27 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using HeuristicLab.Core;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate {
+ public interface IMultiVariateDataAnalysisSolution : INamedItem {
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/MultiVariateDataAnalysisProblem.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/MultiVariateDataAnalysisProblem.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/MultiVariateDataAnalysisProblem.cs (revision 4235)
@@ -0,0 +1,147 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Optimization;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate {
+ [Item("Multi Variate Data Analysis Problem", "Represents a multi variate data analysis problem.")]
+ [Creatable("Problems")]
+ [StorableClass]
+ public class MultiVariateDataAnalysisProblem : ParameterizedNamedItem, IMultiVariateDataAnalysisProblem {
+ private const string MultiVariateDataAnalysisProblemDataParameterName = "MultiVariateDataAnalysisProblem";
+ public override Image ItemImage {
+ get { return HeuristicLab.Common.Resources.VS2008ImageLibrary.Type; }
+ }
+
+ #region Parameter Properties
+ public ValueParameter MultiVariateDataAnalysisProblemDataParameter {
+ get { return (ValueParameter)Parameters[MultiVariateDataAnalysisProblemDataParameterName]; }
+ }
+ #endregion
+ #region properties
+ public MultiVariateDataAnalysisProblemData MultiVariateDataAnalysisProblemData {
+ get { return MultiVariateDataAnalysisProblemDataParameter.Value; }
+ }
+ #endregion
+
+ [StorableConstructor]
+ protected MultiVariateDataAnalysisProblem(bool deserializing) : base(deserializing) { }
+ public MultiVariateDataAnalysisProblem()
+ : base() {
+ Parameters.Add(new ValueParameter(MultiVariateDataAnalysisProblemDataParameterName, "The data set, target variables and input variables of the multi-variate data analysis problem.", new MultiVariateDataAnalysisProblemData()));
+ RegisterParameterEvents();
+ RegisterParameterValueEvents();
+ }
+
+ [StorableHook(HookType.AfterDeserialization)]
+ private void AfterDeserializationHook() {
+ RegisterParameterEvents();
+ RegisterParameterValueEvents();
+ }
+
+ #region events
+ protected virtual void OnMultiVariateDataAnalysisProblemChanged(EventArgs e) {
+ RaiseReset(e);
+ }
+
+ private void RegisterParameterEvents() {
+ MultiVariateDataAnalysisProblemDataParameter.ValueChanged += new EventHandler(MultiVariateDataAnalysisProblemDataParameter_ValueChanged);
+ }
+
+ private void RegisterParameterValueEvents() {
+ MultiVariateDataAnalysisProblemData.ProblemDataChanged += new EventHandler(MultiVariateDataAnalysisProblemData_ProblemDataChanged);
+ }
+
+ private void MultiVariateDataAnalysisProblemDataParameter_ValueChanged(object sender, EventArgs e) {
+ OnMultiVariateDataAnalysisProblemChanged(e);
+ }
+
+ private void MultiVariateDataAnalysisProblemData_ProblemDataChanged(object sender, EventArgs e) {
+ OnMultiVariateDataAnalysisProblemChanged(e);
+ }
+ #endregion
+
+ public override IDeepCloneable Clone(Cloner cloner) {
+ MultiVariateDataAnalysisProblem clone = (MultiVariateDataAnalysisProblem)base.Clone(cloner);
+ clone.RegisterParameterEvents();
+ clone.RegisterParameterValueEvents();
+ return clone;
+ }
+
+ #region IProblem Members
+
+ public virtual IParameter SolutionCreatorParameter {
+ get { return null; }
+ }
+
+ public virtual ISolutionCreator SolutionCreator {
+ get { return null; }
+ }
+
+ public virtual IParameter EvaluatorParameter {
+ get { return null; }
+ }
+
+ public virtual IEvaluator Evaluator {
+ get { return null; }
+ }
+
+ public virtual IEnumerable Operators {
+ get { return new IOperator[0]; }
+ }
+
+ public event EventHandler SolutionCreatorChanged;
+ protected void RaiseSolutionCreatorChanged(EventArgs e) {
+ var changed = SolutionCreatorChanged;
+ if (changed != null)
+ changed(this, e);
+ }
+
+ public event EventHandler EvaluatorChanged;
+ protected void RaiseEvaluatorChanged(EventArgs e) {
+ var changed = EvaluatorChanged;
+ if (changed != null)
+ changed(this, e);
+ }
+
+ public event EventHandler OperatorsChanged;
+ protected void RaiseOperatorsChanged(EventArgs e) {
+ var changed = OperatorsChanged;
+ if (changed != null)
+ changed(this, e);
+ }
+
+ public event EventHandler Reset;
+ protected void RaiseReset(EventArgs e) {
+ var changed = Reset;
+ if (changed != null)
+ changed(this, e);
+ }
+ #endregion
+ }
+}
Index: /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/MultiVariateDataAnalysisProblemData.cs
===================================================================
--- /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/MultiVariateDataAnalysisProblemData.cs (revision 4235)
+++ /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate/3.3/MultiVariateDataAnalysisProblemData.cs (revision 4235)
@@ -0,0 +1,431 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see .
+ */
+#endregion
+
+using System;
+using System.IO;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.DataAnalysis.MultiVariate {
+ [Item("MultiVariateDataAnalysisProblemData", "Represents an item containing all data defining a multi-variate data analysis problem.")]
+ [StorableClass]
+ public class MultiVariateDataAnalysisProblemData : ParameterizedNamedItem {
+ private bool suppressEvents = false;
+ #region default data
+ // y0 = x^4 + x^3 + x^2 + x
+ // y1 = -(y0)
+ private static double[,] kozaF1 = new double[,] {
+{2.017885919, -2.017885919, -1.449165046},
+{1.30060506, -1.30060506, -1.344523885},
+{1.147134798, -1.147134798, -1.317989331},
+{0.877182504, -0.877182504, -1.266142284},
+{0.852562452, -0.852562452, -1.261020794},
+{0.431095788, -0.431095788, -1.158793317},
+{0.112586002, -0.112586002, -1.050908405},
+{0.04594507, -0.04594507, -1.021989402},
+{0.042572879, -0.042572879, -1.020438113},
+{-0.074027291, 0.074027291, -0.959859562},
+{-0.109178553, 0.109178553, -0.938094706},
+{-0.259721109, 0.259721109, -0.803635355},
+{-0.272991057, 0.272991057, -0.387519561},
+{-0.161978191, 0.161978191, -0.193611001},
+{-0.102489983, 0.102489983, -0.114215349},
+{-0.01469968, 0.01469968, -0.014918985},
+{-0.008863365, 0.008863365, -0.008942626},
+{0.026751057, -0.026751057, 0.026054094},
+{0.166922436, -0.166922436, 0.14309643},
+{0.176953808, -0.176953808, 0.1504144},
+{0.190233418, -0.190233418, 0.159916534},
+{0.199800708, -0.199800708, 0.166635331},
+{0.261502822, -0.261502822, 0.207600348},
+{0.30182879, -0.30182879, 0.232370249},
+{0.83763905, -0.83763905, 0.468046718}
+ };
+ #endregion
+ #region parameter properties
+ public IValueParameter DatasetParameter {
+ get { return (IValueParameter)Parameters["Dataset"]; }
+ }
+
+ public IValueParameter