Modified: ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/Handlers/IsPropertyAvailableTagHandler.cs URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/Handlers/IsPropertyAvailableTagHandler.cs?rev=705978&r1=705977&r2=705978&view=diff ============================================================================== --- ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/Handlers/IsPropertyAvailableTagHandler.cs (original) +++ ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/Handlers/IsPropertyAvailableTagHandler.cs Sun Oct 19 04:25:12 2008 @@ -24,12 +24,9 @@ ********************************************************************************/ #endregion -#region Imports -using System; using Apache.Ibatis.Common.Utilities.Objects.Members; using Apache.Ibatis.DataMapper.Model.Sql.Dynamic.Elements; using Apache.Ibatis.Common.Utilities.Objects; -#endregion namespace Apache.Ibatis.DataMapper.Model.Sql.Dynamic.Handlers { @@ -56,16 +53,13 @@ /// <param name="parameterObject"></param> /// <returns></returns> public override bool IsCondition(SqlTagContext ctx, SqlTag tag, object parameterObject) - { - if (parameterObject == null) + { + if (parameterObject == null) { return false; - } - else - { - return ObjectProbe.HasReadableProperty(parameterObject, ((BaseTag)tag).Property); - } - } + } + return ObjectProbe.HasReadableProperty(parameterObject, ((BaseTag)tag).Property); + } } }
Modified: ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/Handlers/IterateContext.cs URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/Handlers/IterateContext.cs?rev=705978&r1=705977&r2=705978&view=diff ============================================================================== --- ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/Handlers/IterateContext.cs (original) +++ ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/Handlers/IterateContext.cs Sun Oct 19 04:25:12 2008 @@ -42,8 +42,8 @@ public sealed class IterateContext : IEnumerator { #region Fields - private ICollection _collection; - private ArrayList _items = new ArrayList(); + private readonly ICollection _collection; + private readonly ArrayList _items = new ArrayList(); int _index = -1; #endregion @@ -67,7 +67,7 @@ { list.Add(array[i]); } - _collection = (ICollection)list; + _collection = list; } else { @@ -77,7 +77,7 @@ IEnumerable enumerable = (IEnumerable)collection; IEnumerator enumerator = enumerable.GetEnumerator(); - while (enumerator.MoveNext() != false) + while (enumerator.MoveNext()) { _items.Add(enumerator.Current); } @@ -165,11 +165,11 @@ { if (_collection is IList) { - ((IList)_collection).Remove(this.Current); + ((IList)_collection).Remove(Current); } else if (_collection is IDictionary) { - ((IDictionary)_collection).Remove(this.Current); + ((IDictionary)_collection).Remove(Current); } } @@ -181,14 +181,11 @@ { get { - if ( (_index >=-1) && (_index <(_items.Count-1))) + if ( (_index >=-1) && (_index <(_items.Count-1))) { return true; } - else - { - return false; - } + return false; } } Modified: ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/Handlers/IterateTagHandler.cs URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/Handlers/IterateTagHandler.cs?rev=705978&r1=705977&r2=705978&view=diff ============================================================================== --- ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/Handlers/IterateTagHandler.cs (original) +++ ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/Handlers/IterateTagHandler.cs Sun Oct 19 04:25:12 2008 @@ -64,9 +64,9 @@ { string propertyName = ((BaseTag)tag).Property; object collection; - if (propertyName != null && propertyName.Length>0) + if (!string.IsNullOrEmpty(propertyName)) { - collection = ObjectProbe.GetMemberValue(parameterObject, propertyName, this.AccessorFactory); + collection = ObjectProbe.GetMemberValue(parameterObject, propertyName, AccessorFactory); } else { @@ -75,14 +75,11 @@ iterate = new IterateContext(collection); ctx.AddAttribute(tag, iterate); } - if (iterate != null && iterate.HasNext) + if (iterate.HasNext) { - return BaseTagHandler.INCLUDE_BODY; - } - else - { - return BaseTagHandler.SKIP_BODY; + return INCLUDE_BODY; } + return SKIP_BODY; } @@ -154,12 +151,9 @@ } } - return BaseTagHandler.REPEAT_BODY; - } - else - { - return BaseTagHandler.INCLUDE_BODY; + return REPEAT_BODY; } + return INCLUDE_BODY; } /// <summary> Modified: ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/Handlers/SqlTagContext.cs URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/Handlers/SqlTagContext.cs?rev=705978&r1=705977&r2=705978&view=diff ============================================================================== --- ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/Handlers/SqlTagContext.cs (original) +++ ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/Handlers/SqlTagContext.cs Sun Oct 19 04:25:12 2008 @@ -24,16 +24,10 @@ ********************************************************************************/ #endregion -#region Imports - using System.Collections; using System.Text; using Apache.Ibatis.DataMapper.Model.ParameterMapping; using Apache.Ibatis.DataMapper.Model.Sql.Dynamic.Elements; -using System.Collections.Generic; - -#endregion - namespace Apache.Ibatis.DataMapper.Model.Sql.Dynamic.Handlers { @@ -42,18 +36,16 @@ /// </summary> public sealed class SqlTagContext { - private Hashtable attributes = new Hashtable(); - private bool _overridePrepend = false; - private SqlTag _firstNonDynamicTagWithPrepend = null; - private ArrayList _parameterMappings = new ArrayList(); - private StringBuilder buffer = new StringBuilder(); + private readonly Hashtable attributes = new Hashtable(); + private readonly ArrayList _parameterMappings = new ArrayList(); + private readonly StringBuilder buffer = new StringBuilder(); /// <summary> /// Initializes a new instance of the <see cref="SqlTagContext"/> class. /// </summary> public SqlTagContext() { - _overridePrepend = false; + IsOverridePrepend = false; } /// <summary> @@ -74,31 +66,23 @@ get { return buffer.ToString().Trim(); } } - /// <summary> - /// Gets or sets a value indicating whether this instance is override prepend. - /// </summary> - /// <value> - /// <c>true</c> if this instance is override prepend; otherwise, <c>false</c>. - /// </value> - public bool IsOverridePrepend - { - set { _overridePrepend = value; } - get { return _overridePrepend; } - } + /// <summary> + /// Gets or sets a value indicating whether this instance is override prepend. + /// </summary> + /// <value> + /// <c>true</c> if this instance is override prepend; otherwise, <c>false</c>. + /// </value> + public bool IsOverridePrepend { set; get; } + + + /// <summary> + /// Gets or sets the first non dynamic tag with prepend. + /// </summary> + /// <value>The first non dynamic tag with prepend.</value> + public SqlTag FirstNonDynamicTagWithPrepend { get; set; } - /// <summary> - /// Gets or sets the first non dynamic tag with prepend. - /// </summary> - /// <value>The first non dynamic tag with prepend.</value> - public SqlTag FirstNonDynamicTagWithPrepend - { - get { return _firstNonDynamicTagWithPrepend; } - set { _firstNonDynamicTagWithPrepend = value; } - } - - - /// <summary> + /// <summary> /// Adds the attribute. /// </summary> /// <param name="key">The key.</param> Modified: ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/SqlText.cs URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/SqlText.cs?rev=705978&r1=705977&r2=705978&view=diff ============================================================================== --- ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/SqlText.cs (original) +++ ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/Dynamic/SqlText.cs Sun Oct 19 04:25:12 2008 @@ -24,13 +24,7 @@ ********************************************************************************/ #endregion -#region Using -using System; - -using Apache.Ibatis.Common; -using Apache.Ibatis.DataMapper.Model.Statements; using Apache.Ibatis.DataMapper.Model.ParameterMapping; -#endregion namespace Apache.Ibatis.DataMapper.Model.Sql.Dynamic { @@ -44,9 +38,8 @@ private string _text = string.Empty; private bool _isWhiteSpace = false; - private ParameterProperty[] _parameters = null; - #endregion + #endregion #region Properties /// <summary> @@ -76,21 +69,12 @@ } } - /// <summary> - /// - /// </summary> - public ParameterProperty[] Parameters - { - get - { - return _parameters; - } - set - { - _parameters = value; - } - } - #endregion + /// <summary> + /// + /// </summary> + public ParameterProperty[] Parameters { get; set; } + + #endregion } } Modified: ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/SimpleDynamic/SimpleDynamicSql.cs URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/SimpleDynamic/SimpleDynamicSql.cs?rev=705978&r1=705977&r2=705978&view=diff ============================================================================== --- ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/SimpleDynamic/SimpleDynamicSql.cs (original) +++ ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Sql/SimpleDynamic/SimpleDynamicSql.cs Sun Oct 19 04:25:12 2008 @@ -29,7 +29,6 @@ using System.Collections; using System.Text; -using Apache.Ibatis.DataMapper.Model.Sql; using Apache.Ibatis.DataMapper.Model.Statements; using Apache.Ibatis.DataMapper.DataExchange; using Apache.Ibatis.DataMapper.MappedStatements; @@ -51,8 +50,6 @@ public sealed class SimpleDynamicSql : ISql { private const string ELEMENT_TOKEN = "$"; - private const string NEW_BEGIN_ELEMENT_TOKEN = "${"; - private const string NEW_END_ELEMENT_TOKEN = "}"; private readonly string sqlStatement = string.Empty; private readonly IStatement statement = null; @@ -195,23 +192,6 @@ return newSql.ToString(); } - /// <summary> - /// Processes the dynamic elements with new syntax ${property} - /// </summary> - /// <param name="parameterObject">The parameter object.</param> - /// <returns></returns> - private string ProcessDynamicElementsWithNewSyntax(object parameterObject) - { - // ***************** - // TO DO : ${property} (V3 syntax) support - // ********************* - // renommer cette classe en SubstitutionSql - //puis creer une classe ExternalSql.cs qui utilise un ISqlSource - - // Remarks, on utilise deja ${property} pour remplacer les properties non ??? voir test avec {schema} - return null; - } - #region ISql Members /// <summary> Modified: ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Statements/PreparedStatementFactory.cs URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Statements/PreparedStatementFactory.cs?rev=705978&r1=705977&r2=705978&view=diff ============================================================================== --- ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Statements/PreparedStatementFactory.cs (original) +++ ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/Model/Statements/PreparedStatementFactory.cs Sun Oct 19 04:25:12 2008 @@ -65,7 +65,7 @@ private readonly DBHelperParameterCache dbHelperParameterCache = null; private readonly string commandText = string.Empty; - private RequestScope request = null; + private readonly RequestScope request = null; // (property, DbParameter) private readonly HybridDictionary propertyDbParameterMap = new HybridDictionary(); @@ -130,26 +130,23 @@ { throw new DataMapperException("A procedure statement tag must have a parameterMap attribute, which is not the case for the procedure '"+statement.Id+"."); } - else // use the parameterMap - { - if (dbProvider.UseDeriveParameters) - { - if (isDynamic) - { - DiscoverParameter(request.ParameterMap); - } - else - { - DiscoverParameter(statement.ParameterMap); - } - } - else - { - CreateParametersForProcedureCommand(); - } - } + if (dbProvider.UseDeriveParameters) + { + if (isDynamic) + { + DiscoverParameter(request.ParameterMap); + } + else + { + DiscoverParameter(statement.ParameterMap); + } + } + else + { + CreateParametersForProcedureCommand(); + } - #region Fix for Odbc + #region Fix for Odbc // Although executing a parameterized stored procedure using the ODBC .NET Provider // is slightly different from executing the same procedure using the SQL or // the OLE DB Provider, there is one important difference @@ -160,7 +157,7 @@ // in the MSDN Library. //http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q309486 - if (dbProvider.IsObdc == true) + if (dbProvider.IsObdc) { StringBuilder commandTextBuilder = new StringBuilder("{ call "); commandTextBuilder.Append( commandText ); @@ -216,7 +213,12 @@ } } preparedStatement.DbParameters[i] = dataParameter; - } + if (dataParameter.Direction == ParameterDirection.Output || + dataParameter.Direction == ParameterDirection.InputOutput) + { + parameterMap.HasOutputParameter = true; + } + } // Re-sort DbParameters to match order used in the parameterMap IDbDataParameter[] sortedDbParameters = new IDbDataParameter[parameterMap.Properties.Count]; @@ -229,7 +231,7 @@ } private IDbDataParameter Search(IDbDataParameter[] parameters, ParameterProperty property, int index) - { + { if (property.ColumnName.Length>0) { for (int i = 0; i < parameters.Length; i++) @@ -250,15 +252,11 @@ } throw new IndexOutOfRangeException("The parameter '" + property.ColumnName + "' does not exist in the stored procedure '" +statement.Id+"'. Check your parameterMap."); } - else - { - return parameters[index]; - } + return parameters[index]; + } - } - - /// <summary> + /// <summary> /// Create IDataParameters for command text statement. /// </summary> private void CreateParametersForTextCommand() @@ -296,7 +294,7 @@ IDbDataParameter dataParameter = dbProvider.CreateDataParameter(); // Manage dbType attribute if any - if (property.DbType != null && property.DbType.Length >0) + if (!string.IsNullOrEmpty(property.DbType)) { // Exemple : Enum.parse(System.Data.SqlDbType, 'VarChar') object dbType = Enum.Parse( enumDbType, property.DbType, true ); @@ -384,7 +382,7 @@ IDbDataParameter dataParameter = dbProvider.CreateCommand().CreateParameter(); // Manage dbType attribute if any - if (property.DbType!=null && property.DbType.Length >0) + if (!string.IsNullOrEmpty(property.DbType)) { // Exemple : Enum.parse(System.Data.SqlDbType, 'VarChar') object dbType = Enum.Parse( enumDbType, property.DbType, true ); Modified: ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/TypeHandlers/BaseTypeHandler.cs URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/TypeHandlers/BaseTypeHandler.cs?rev=705978&r1=705977&r2=705978&view=diff ============================================================================== --- ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/TypeHandlers/BaseTypeHandler.cs (original) +++ ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/TypeHandlers/BaseTypeHandler.cs Sun Oct 19 04:25:12 2008 @@ -115,12 +115,9 @@ if (obj == null || str == null) { return (string)obj == str; - } - else - { - object castedObject = ValueOf(obj.GetType(), str); - return obj.Equals(castedObject); } + object castedObject = ValueOf(obj.GetType(), str); + return obj.Equals(castedObject); } } } Modified: ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/TypeHandlers/TypeHandlerFactory.cs URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/TypeHandlers/TypeHandlerFactory.cs?rev=705978&r1=705977&r2=705978&view=diff ============================================================================== --- ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/TypeHandlers/TypeHandlerFactory.cs (original) +++ ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/TypeHandlers/TypeHandlerFactory.cs Sun Oct 19 04:25:12 2008 @@ -55,6 +55,7 @@ private readonly ITypeHandler unknownTypeHandler = null; private const string NULL = "NULLTYPE"; private readonly IDictionary<string, TypeAlias> typeAliasMaps = new Dictionary<string, TypeAlias>(); + private readonly IDictionary<Type, bool> simpleTypes = new Dictionary<Type, bool>(); /// <summary> /// Initializes a new instance of the <see cref="TypeHandlerFactory"/> class. @@ -322,14 +323,20 @@ public bool IsSimpleType(Type type) { bool result = false; - if (type != null) - { - ITypeHandler handler = GetTypeHandler(type, null); - if (handler != null) - { - result = handler.IsSimpleType; - } - } + + if (!simpleTypes.TryGetValue(type, out result)) + { + if (type != null) + { + ITypeHandler handler = GetTypeHandler(type, null); + if (handler != null) + { + result = handler.IsSimpleType; + } + simpleTypes[type] = result; + } + } + return result; } Modified: ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/TypeHandlers/UnknownTypeHandler.cs URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/TypeHandlers/UnknownTypeHandler.cs?rev=705978&r1=705977&r2=705978&view=diff ============================================================================== --- ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/TypeHandlers/UnknownTypeHandler.cs (original) +++ ibatis/trunk/cs/V3/src/Apache.Ibatis.DataMapper/TypeHandlers/UnknownTypeHandler.cs Sun Oct 19 04:25:12 2008 @@ -129,7 +129,7 @@ /// </value> public override bool IsSimpleType { - get { return true; } + get { return false; } } //public override object NullValue Added: ibatis/trunk/cs/V3/src/Apache.Ibatis.sln URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/V3/src/Apache.Ibatis.sln?rev=705978&view=auto ============================================================================== --- ibatis/trunk/cs/V3/src/Apache.Ibatis.sln (added) +++ ibatis/trunk/cs/V3/src/Apache.Ibatis.sln Sun Oct 19 04:25:12 2008 @@ -0,0 +1,81 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F38165C3-C811-4D43-9AF2-5D3966746626}" + ProjectSection(SolutionItems) = preProject + Solution-Items\Apache.Ibatis.Common.Test.nunit = Solution-Items\Apache.Ibatis.Common.Test.nunit + Solution-Items\CommonAssemblyInfo.cs = Solution-Items\CommonAssemblyInfo.cs + Solution-Items\iBATIS.build = Solution-Items\iBATIS.build + Solution-Items\providers.config = Solution-Items\providers.config + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ibatis.Common", "Apache.Ibatis.Common\Apache.Ibatis.Common.csproj", "{BBC8DA4A-EA88-41D9-8B93-929B8F3ADADE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ibatis.Common.Test", "Apache.Ibatis.Common.Test\Apache.Ibatis.Common.Test.csproj", "{5961F3DE-CB5E-40FE-AE89-D00D6E453907}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ibatis.DataMapper", "Apache.Ibatis.DataMapper\Apache.Ibatis.DataMapper.csproj", "{F3E45F39-3224-4EAD-B138-EB5CC0E32824}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ibatis.DataMapper.MySql.Test", "Apache.Ibatis.DataMapper.MySql.Test\Apache.Ibatis.DataMapper.MySql.Test.csproj", "{2F90BECE-AB2A-45A4-95DB-83025E8C1BD5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ibatis.DataMapper.PostgreSQL.Test", "Apache.Ibatis.DataMapper.PostgreSQL.Test\Apache.Ibatis.DataMapper.PostgreSQL.Test.csproj", "{DA5A59F0-DF1E-4653-BC64-5AEE32F5308E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ibatis.DataMapper.OracleClient.Test", "Apache.Ibatis.DataMapper.OracleClient.Test\Apache.Ibatis.DataMapper.OracleClient.Test.csproj", "{72849281-1C73-4F05-96F5-05B0D859FFA6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ibatis.DataMapper.OracleODP.Test", "Apache.Ibatis.DataMapper.OracleODP.Test\Apache.Ibatis.DataMapper.OracleODP.Test.csproj", "{96F8E93D-2B4F-4223-8EFE-01731CCBC979}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ibatis.DataMapper.OleDb.Test", "Apache.Ibatis.DataMapper.OleDb.Test\Apache.Ibatis.DataMapper.OleDb.Test.csproj", "{11867E8F-6E81-4A8A-8CD7-9B0FA146F7EB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ibatis.DataMapper.Odbc.Test", "Apache.Ibatis.DataMapper.Odbc.Test\Apache.Ibatis.DataMapper.Odbc.Test.csproj", "{63B29CDE-E446-44F7-89FF-48C7D20A13D0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ibatis.DataMapper.SqlClient.Test", "Apache.Ibatis.DataMapper.SqlClient.Test\Apache.Ibatis.DataMapper.SqlClient.Test.csproj", "{8A1F6390-1D7C-47CA-AE8D-818408DD54E9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BBC8DA4A-EA88-41D9-8B93-929B8F3ADADE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BBC8DA4A-EA88-41D9-8B93-929B8F3ADADE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BBC8DA4A-EA88-41D9-8B93-929B8F3ADADE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BBC8DA4A-EA88-41D9-8B93-929B8F3ADADE}.Release|Any CPU.Build.0 = Release|Any CPU + {5961F3DE-CB5E-40FE-AE89-D00D6E453907}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5961F3DE-CB5E-40FE-AE89-D00D6E453907}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5961F3DE-CB5E-40FE-AE89-D00D6E453907}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5961F3DE-CB5E-40FE-AE89-D00D6E453907}.Release|Any CPU.Build.0 = Release|Any CPU + {F3E45F39-3224-4EAD-B138-EB5CC0E32824}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F3E45F39-3224-4EAD-B138-EB5CC0E32824}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F3E45F39-3224-4EAD-B138-EB5CC0E32824}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F3E45F39-3224-4EAD-B138-EB5CC0E32824}.Release|Any CPU.Build.0 = Release|Any CPU + {2F90BECE-AB2A-45A4-95DB-83025E8C1BD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2F90BECE-AB2A-45A4-95DB-83025E8C1BD5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2F90BECE-AB2A-45A4-95DB-83025E8C1BD5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2F90BECE-AB2A-45A4-95DB-83025E8C1BD5}.Release|Any CPU.Build.0 = Release|Any CPU + {DA5A59F0-DF1E-4653-BC64-5AEE32F5308E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA5A59F0-DF1E-4653-BC64-5AEE32F5308E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DA5A59F0-DF1E-4653-BC64-5AEE32F5308E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DA5A59F0-DF1E-4653-BC64-5AEE32F5308E}.Release|Any CPU.Build.0 = Release|Any CPU + {72849281-1C73-4F05-96F5-05B0D859FFA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {72849281-1C73-4F05-96F5-05B0D859FFA6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {72849281-1C73-4F05-96F5-05B0D859FFA6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {72849281-1C73-4F05-96F5-05B0D859FFA6}.Release|Any CPU.Build.0 = Release|Any CPU + {96F8E93D-2B4F-4223-8EFE-01731CCBC979}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96F8E93D-2B4F-4223-8EFE-01731CCBC979}.Debug|Any CPU.Build.0 = Debug|Any CPU + {96F8E93D-2B4F-4223-8EFE-01731CCBC979}.Release|Any CPU.ActiveCfg = Release|Any CPU + {96F8E93D-2B4F-4223-8EFE-01731CCBC979}.Release|Any CPU.Build.0 = Release|Any CPU + {11867E8F-6E81-4A8A-8CD7-9B0FA146F7EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {11867E8F-6E81-4A8A-8CD7-9B0FA146F7EB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {11867E8F-6E81-4A8A-8CD7-9B0FA146F7EB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {11867E8F-6E81-4A8A-8CD7-9B0FA146F7EB}.Release|Any CPU.Build.0 = Release|Any CPU + {63B29CDE-E446-44F7-89FF-48C7D20A13D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {63B29CDE-E446-44F7-89FF-48C7D20A13D0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {63B29CDE-E446-44F7-89FF-48C7D20A13D0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {63B29CDE-E446-44F7-89FF-48C7D20A13D0}.Release|Any CPU.Build.0 = Release|Any CPU + {8A1F6390-1D7C-47CA-AE8D-818408DD54E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A1F6390-1D7C-47CA-AE8D-818408DD54E9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A1F6390-1D7C-47CA-AE8D-818408DD54E9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A1F6390-1D7C-47CA-AE8D-818408DD54E9}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal
