<CodeStyleSettings>
  <CSharp>
    <FormatSettings>
      <ALIGN_MULTILINE_ARGUMENT>False</ALIGN_MULTILINE_ARGUMENT>      
      <BLANK_LINES_AROUND_SINGLE_LINE_FIELD>1</BLANK_LINES_AROUND_SINGLE_LINE_FIELD>
      <BLANK_LINES_AROUND_SINGLE_LINE_INVOCABLE>1</BLANK_LINES_AROUND_SINGLE_LINE_INVOCABLE>
      <BLANK_LINES_BETWEEN_USING_GROUPS>1</BLANK_LINES_BETWEEN_USING_GROUPS>
      <FORCE_ATTRIBUTE_STYLE>SEPARATE</FORCE_ATTRIBUTE_STYLE>
      <FORCE_FOR_BRACES_STYLE>ALWAYS_ADD</FORCE_FOR_BRACES_STYLE>
      <FORCE_FOREACH_BRACES_STYLE>ALWAYS_ADD</FORCE_FOREACH_BRACES_STYLE>
      <FORCE_IFELSE_BRACES_STYLE>ALWAYS_ADD</FORCE_IFELSE_BRACES_STYLE>
      <FORCE_WHILE_BRACES_STYLE>ALWAYS_ADD</FORCE_WHILE_BRACES_STYLE>
      <INDENT_ANONYMOUS_METHOD_BLOCK>False</INDENT_ANONYMOUS_METHOD_BLOCK>
      <INDENT_EMBRACED_INITIALIZER_BLOCK>False</INDENT_EMBRACED_INITIALIZER_BLOCK>
      <INDENT_SIZE>4</INDENT_SIZE>
      <KEEP_BLANK_LINES_IN_CODE>1</KEEP_BLANK_LINES_IN_CODE>
      <KEEP_BLANK_LINES_IN_DECLARATIONS>1</KEEP_BLANK_LINES_IN_DECLARATIONS>
      <KEEP_USER_LINEBREAKS>False</KEEP_USER_LINEBREAKS>
      <MODIFIERS_ORDER IsNull="False">
        <Item>public</Item>
        <Item>protected</Item>
        <Item>internal</Item>
        <Item>private</Item>
        <Item>new</Item>
        <Item>abstract</Item>
        <Item>virtual</Item>
        <Item>override</Item>
        <Item>sealed</Item>
        <Item>static</Item>
        <Item>readonly</Item>
        <Item>extern</Item>
        <Item>unsafe</Item>
        <Item>volatile</Item>
      </MODIFIERS_ORDER>
      <PLACE_CONSTRUCTOR_INITIALIZER_ON_SAME_LINE>False</PLACE_CONSTRUCTOR_INITIALIZER_ON_SAME_LINE>
      <PLACE_FIELD_ATTRIBUTE_ON_SAME_LINE>False</PLACE_FIELD_ATTRIBUTE_ON_SAME_LINE>      
      <PLACE_SIMPLE_ACCESSOR_ON_SINGLE_LINE>False</PLACE_SIMPLE_ACCESSOR_ON_SINGLE_LINE>
      <PLACE_TYPE_CONSTRAINTS_ON_SAME_LINE>False</PLACE_TYPE_CONSTRAINTS_ON_SAME_LINE>
      <PLACE_WHILE_ON_NEW_LINE>True</PLACE_WHILE_ON_NEW_LINE>      
      <REDUNDANT_THIS_QUALIFIER_STYLE>ALWAYS_USE</REDUNDANT_THIS_QUALIFIER_STYLE>
      <SIMPLE_EMBEDDED_STATEMENT_STYLE>ON_SINGLE_LINE</SIMPLE_EMBEDDED_STATEMENT_STYLE>
      <SPACE_AFTER_TYPECAST_PARENTHESES>False</SPACE_AFTER_TYPECAST_PARENTHESES>
      <SPACE_AROUND_MULTIPLICATIVE_OP>True</SPACE_AROUND_MULTIPLICATIVE_OP>
      <SPACE_BEFORE_SIZEOF_PARENTHESES>False</SPACE_BEFORE_SIZEOF_PARENTHESES>      
      <SPACE_BEFORE_TYPEOF_PARENTHESES>False</SPACE_BEFORE_TYPEOF_PARENTHESES>
      <SPACE_WITHIN_SINGLE_LINE_ARRAY_INITIALIZER_BRACES>True</SPACE_WITHIN_SINGLE_LINE_ARRAY_INITIALIZER_BRACES>
      <STICK_COMMENT>False</STICK_COMMENT>
      <WRAP_AFTER_DECLARATION_LPAR>True</WRAP_AFTER_DECLARATION_LPAR>
      <WRAP_AFTER_INVOCATION_LPAR>True</WRAP_AFTER_INVOCATION_LPAR>
      <WRAP_ARGUMENTS_STYLE>CHOP_IF_LONG</WRAP_ARGUMENTS_STYLE>
      <WRAP_BEFORE_FIRST_TYPE_PARAMETER_CONSTRAINT>True</WRAP_BEFORE_FIRST_TYPE_PARAMETER_CONSTRAINT>
      <WRAP_EXTENDS_LIST_STYLE>CHOP_IF_LONG</WRAP_EXTENDS_LIST_STYLE>
      <WRAP_PARAMETERS_STYLE>CHOP_IF_LONG</WRAP_PARAMETERS_STYLE>
    </FormatSettings>
    <UsingsSettings>
      <AddImportsToDeepestScope>True</AddImportsToDeepestScope>     
    </UsingsSettings>
    <Naming2>
      <ExceptionName IsNull="False">
      </ExceptionName>
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="TypesAndNamespaces" />
      <PredefinedRule Inspect="True" Prefix="I" Suffix="" Style="AaBb" ElementKind="Interfaces" />
      <PredefinedRule Inspect="True" Prefix="T" Suffix="" Style="AaBb" ElementKind="TypeParameters" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="MethodPropertyEvent" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Locals" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="LocalConstants" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Parameters" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PublicFields" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="Constants" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="StaticReadonly" />
      <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="NotPublicStaticFields" />
      <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="NotPublicInstanceFields" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="EnumMember" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="Other" />
    </Naming2>
    <CustomMemberReorderingPatterns>
        <![CDATA[<?xml version="1.0" encoding="utf-8"?>
<Patterns xmlns="urn:shemas-jetbrains-com:member-reordering-patterns">

    <!-- Do not reorder COM interfaces -->
    <Pattern>
        <Match>
            <And Weight="2000">
                <Kind Is="interface"/>
                <HasAttribute CLRName="System.Runtime.InteropServices.InterfaceTypeAttribute"
                              Inherit="true"/>
            </And>
        </Match>
    </Pattern>

    <!-- Do not reorder P/Invoke structs -->
    <Pattern>
        <Match>
            <And Weight="2000">
                <Or>
                    <Kind Is="struct"/>
                    <Kind Is="class"/>
                </Or>
                <HasAttribute CLRName="System.Runtime.InteropServices.StructLayoutAttribute"
                              Inherit="true"/>
            </And>
        </Match>
    </Pattern>

    <!-- Do not reorder P/Invoke classes (called xxxNativeMethods) -->
    <Pattern>
        <Match>
            <And Weight="2000">
                <Kind Is="class"/>
                <Name Is=".*NativeMethods" />
            </And>
        </Match>
    </Pattern>

    <!-- StyleCop pattern -->
    <Pattern RemoveAllRegions="true">
        <Match>
            <Or Weight="1000" >
                <Kind Is="class" />
                <Kind Is="struct" />
                <Kind Is="interface"/>
            </Or>
        </Match>

        <!-- constants and fields -->
        <Entry>
            <Match>
                <Or>
                    <Kind Is="constant"/>
                    <Kind Is="field"/>
                </Or>
            </Match>
            <Sort>
                <Access Order="public internal protected-internal protected private"/>
                <Kind Order="constant field"/>
                <Readonly/>
                <Static/>
                <Name/>
            </Sort>
            <Group Region="Constants and Fields"/>
        </Entry>

        <!-- constructors -->
        <Entry>
            <Match>
                <Or Weight="200">
                    <Kind Is="constructor"/>
                    <Kind Is="destructor"/>
                </Or>
            </Match>
            <Sort>
                <Static/>
                <Kind Order="constructor destructor"/>
                <Access Order="public internal protected-internal protected private"/>
            </Sort>
            <Group Region="Constructors and Destructors"/>
        </Entry>

        <!-- delegates -->
        <Entry>
            <Match>
                <Kind Is="delegate"/>
            </Match>
            <Sort>
                <Access Order="public internal protected-internal protected private" />
                <Static />
                <Name/>
            </Sort>
            <Group Region="Delegates"/>
        </Entry>

        <!-- events -->
        <Entry>
            <Match>
                <Kind Is="event"/>
            </Match>
            <Sort>
                <Access Order="public internal protected-internal protected private" />
                <Static />
                <Name/>
            </Sort>
            <Group Region="Events"/>
        </Entry>

        <!-- enum -->
        <Entry>
            <Match>
                <Kind Is="enum"/>
            </Match>
            <Sort>
                <Access Order="public internal protected-internal protected private" />
                <Name/>
            </Sort>
            <Group Region="Enums"/>
        </Entry>

        <!-- interfaces -->
        <Entry>
            <Match>
                <Kind Is="interface" />
            </Match>
            <Sort>
                <Access Order="public internal protected-internal protected private" />
                <Name/>
            </Sort>
            <Group Region="Interfaces"/>
        </Entry>

        <!-- properties -->
        <Entry>
            <Match>
                <Kind Is="property"/>
            </Match>
            <Sort>
                <Access Order="public internal protected-internal protected private"/>
                <Static/>
                <Name/>
            </Sort>
            <Group Region="Properties"/>
        </Entry>

        <!-- indexers -->
        <Entry>
            <Match>
                <Kind Is="indexer"
                      Weight="300" />
            </Match>
            <Sort>
                <Access Order="public internal protected-internal protected private" />
                <Static/>
                <Name/>
            </Sort>
            <Group Region="Indexers"/>
        </Entry>

        <!-- operator -->
        <Entry>
            <Match>
                <Kind Is="operator"/>
            </Match>
            <Sort>
                <Access Order="public internal protected-internal protected private" />
                <Static/>
                <Name/>
            </Sort>
            <Group Region="Operators"/>
        </Entry>

        <!-- public methods -->
        <Entry>
            <Match>
                <And>
                    <Kind Is="method"/>
                    <Access Is="public"/>
                </And>
            </Match>
            <Sort>
                <Access Order="public"/>
                <Static/>
                <Name/>
            </Sort>
            <Group Region="Public Methods"/>
        </Entry>

        <!-- Implemented Interfaces -->
        <Entry>
            <Match>
                <And Weight="500">
                    <Kind Is="method"/>
                    <ImplementsInterface CLRName=".*"/>
                </And>
            </Match>
            <Sort>
                <ImplementsInterface />
                <Access Order="public internal protected-internal protected private"/>
                <Static/>
                <Name/>
            </Sort>
            <Group Region="Implemented Interfaces">
                <ImplementsInterface Region="${ImplementsInterface}" />
            </Group>
        </Entry>

        <!-- other methods -->
        <Entry>
            <Match>
                <Kind Is="method"/>
            </Match>
            <Sort>
                <Access Order="public internal protected-internal protected private"/>
                <Static/>
                <Name/>
            </Sort>
            <Group Region="Methods"/>
        </Entry>

        <!-- Nested structs -->
        <Entry>
            <Match>
                <Kind Is="struct"
                      Weight="600" />
            </Match>
            <Sort>
                <Static />
                <Access Order="public internal protected-internal protected private" />
                <Name/>
            </Sort>
        </Entry>

        <!-- Nested classes -->
        <Entry>
            <Match>
                <Kind Is="class"
                      Weight="700" />
            </Match>
            <Sort>
                <Static />
                <Access Order="public internal protected-internal protected private" />
                <Name/>
            </Sort>
        </Entry>

        <!-- all other members -->
        <Entry/>

    </Pattern>
</Patterns>
]]></CustomMemberReorderingPatterns>
  </CSharp>
  <VB>
    <FormatSettings>
      <INDENT_SIZE>4</INDENT_SIZE>
    </FormatSettings>
    <ImportsSettings />
    <Naming2 />
  </VB>
  <GenerateMemberBody />
  <Naming2>
    <ExceptionName IsNull="False">
    </ExceptionName>
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="aaBb" ElementKind="Locals" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="NotPublicInstanceFields" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="NotPublicStaticFields" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="aaBb" ElementKind="Parameters" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="TypesAndNamespaces" />
    <PredefinedRule Inspect="False" Prefix="I" Suffix="" Style="AaBb" ElementKind="Interfaces" />
    <PredefinedRule Inspect="False" Prefix="T" Suffix="" Style="AaBb" ElementKind="TypeParameters" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="MethodPropertyEvent" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="aaBb" ElementKind="LocalConstants" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="PublicFields" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="Constants" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="StaticReadonly" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="EnumMember" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="Other" />
  </Naming2>
</CodeStyleSettings>

