<?xml version="1.0" encoding="utf-8"?>
<presentation xmlns:o="urn:schemas-microsoft-com:office:office"
              xmlns:x="urn:schemas-microsoft-com:office:excel"
              xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
              xmlns:xbrldt="http://xbrl.org/2005/xbrldt"
              xmlns:ref="http://www.xbrl.org/2004/ref"
              xmlns:xbrls="http://xbrls.org/2008/xbrls"
              xmlns:validation="http://xbrl.org/2008/validation"
              xmlns:xlink="http://www.w3.org/1999/xlink"
              xmlns:variable="http://xbrl.org/2008/variable"
              xmlns:ca="http://xbrl.org/2008/assertion/consistency"
              xmlns:gen="http://xbrl.org/2008/generic"
              xmlns:xl="http://www.xbrl.org/2003/XLink"
              xmlns:pattern="http://xbrls.org/2008/xbrls/metapattern/hierarchy"
              xmlns:xbrli="http://www.xbrl.org/2003/instance"
              xmlns:link="http://www.xbrl.org/2003/linkbase"
              xmlns:label="http://xbrl.org/2008/label">
   <extended-link uri="http://xbrls.org/2008/xbrls/metapattern/hierarchy/AccountingPolicies"
                  definition="20000 - Accounting Policies">
      <concept id="pattern_AccountingPoliciesSchedule"
               qname="pattern:AccountingPoliciesSchedule"
               label="Accounting Policies [Schedule]"
               substitution-group="xbrldt:hypercubeItem"
               data-type="xbrli:stringItemType"
               xbrl-data-type="xbrli:stringItemType"
               abstract="true"
               period-type="duration">
         <concept id="pattern_EntityAxis" qname="pattern:EntityAxis" label="Entity [Axis]"
                  substitution-group="xbrldt:dimensionItem"
                  data-type="xbrli:stringItemType"
                  xbrl-data-type="xbrli:stringItemType"
                  abstract="true"
                  period-type="duration">
            <concept id="pattern_EntitiesAllDomain" qname="pattern:EntitiesAllDomain"
                     label="Entities, All [Domain]"
                     substitution-group="xbrls:domainMemberGroup"
                     data-type="xbrli:stringItemType"
                     xbrl-data-type="xbrli:stringItemType"
                     abstract="true"
                     period-type="duration">
               <concept id="pattern_SampleCompanyMember" qname="pattern:SampleCompanyMember"
                        label="Sample Company [Member]"
                        substitution-group="xbrls:domainMemberGroup"
                        data-type="xbrli:stringItemType"
                        xbrl-data-type="xbrli:stringItemType"
                        abstract="true"
                        period-type="duration"/>
            </concept>
         </concept>
         <concept id="pattern_BusinessSegmentAxis" qname="pattern:BusinessSegmentAxis"
                  label="Business Segment [Axis]"
                  substitution-group="xbrldt:dimensionItem"
                  data-type="xbrli:stringItemType"
                  xbrl-data-type="xbrli:stringItemType"
                  abstract="true"
                  period-type="duration">
            <concept id="pattern_ConsolidatedGroupDomain" qname="pattern:ConsolidatedGroupDomain"
                     label="Consolidated Group [Domain]"
                     substitution-group="xbrls:domainMemberGroup"
                     data-type="xbrli:stringItemType"
                     xbrl-data-type="xbrli:stringItemType"
                     abstract="true"
                     period-type="duration"/>
         </concept>
         <concept id="pattern_AccountingPolicieslineItemsGroup"
                  qname="pattern:AccountingPolicieslineItemsGroup"
                  label="Accounting Policies [Line Items]"
                  substitution-group="xbrls:lineItemsGroup"
                  data-type="xbrli:stringItemType"
                  xbrl-data-type="xbrli:stringItemType"
                  abstract="true"
                  period-type="duration">
            <concept id="pattern_AccountingPoliciesHierarchy"
                     qname="pattern:AccountingPoliciesHierarchy"
                     label="Accounting Policies [Hierarchy]"
                     substitution-group="xbrls:hierarchyGroup"
                     data-type="xbrli:stringItemType"
                     xbrl-data-type="xbrli:stringItemType"
                     abstract="true"
                     period-type="duration">
               <concept id="pattern_BasisOfPresentationTextBlock"
                        qname="pattern:BasisOfPresentationTextBlock"
                        label="Basis of Presentation [Text Block]"
                        substitution-group="xbrli:item"
                        data-type="xbrls:textBlockItemType"
                        xbrl-data-type="xbrli:stringItemType"
                        abstract="false"
                        period-type="duration">
                  <concept id="pattern_BasisOfPresentation" qname="pattern:BasisOfPresentation"
                           label="Basis of Presentation"
                           substitution-group="xbrli:item"
                           data-type="xbrls:textItemType"
                           xbrl-data-type="xbrli:tokenItemType"
                           abstract="false"
                           period-type="duration"/>
               </concept>
               <concept id="pattern_InventoryPolicyTextBlock" qname="pattern:InventoryPolicyTextBlock"
                        label="Inventory Policy [Text Block]"
                        substitution-group="xbrli:item"
                        data-type="xbrls:textBlockItemType"
                        xbrl-data-type="xbrli:stringItemType"
                        abstract="false"
                        period-type="duration">
                  <concept id="pattern_InventoryValuationMethod" qname="pattern:InventoryValuationMethod"
                           label="Inventory Valuation Method"
                           substitution-group="xbrli:item"
                           data-type="xbrls:textItemType"
                           xbrl-data-type="xbrli:tokenItemType"
                           abstract="false"
                           period-type="duration"/>
                  <concept id="pattern_DescriptionOfInventoryComponents"
                           qname="pattern:DescriptionOfInventoryComponents"
                           label="Description of Inventory Components"
                           substitution-group="xbrli:item"
                           data-type="xbrls:textItemType"
                           xbrl-data-type="xbrli:tokenItemType"
                           abstract="false"
                           period-type="duration"/>
                  <concept id="pattern_InventoryCostMethod" qname="pattern:InventoryCostMethod"
                           label="Inventory Cost Method"
                           substitution-group="xbrli:item"
                           data-type="xbrls:textItemType"
                           xbrl-data-type="xbrli:tokenItemType"
                           abstract="false"
                           period-type="duration"/>
                  <concept id="pattern_DescriptionNetRealizableValue"
                           qname="pattern:DescriptionNetRealizableValue"
                           label="Description of Net Realizable Value"
                           substitution-group="xbrli:item"
                           data-type="xbrls:textItemType"
                           xbrl-data-type="xbrli:tokenItemType"
                           abstract="false"
                           period-type="duration"/>
               </concept>
               <concept id="pattern_FinancialInstrumentsPolicyTextBlock"
                        qname="pattern:FinancialInstrumentsPolicyTextBlock"
                        label="Financial Instruments Policy [Text Block]"
                        substitution-group="xbrli:item"
                        data-type="xbrls:textBlockItemType"
                        xbrl-data-type="xbrli:stringItemType"
                        abstract="false"
                        period-type="duration">
                  <concept id="pattern_TradeReceivablesPolicy" qname="pattern:TradeReceivablesPolicy"
                           label="Trade Receivables Policy"
                           substitution-group="xbrli:item"
                           data-type="xbrls:textItemType"
                           xbrl-data-type="xbrli:tokenItemType"
                           abstract="false"
                           period-type="duration"/>
                  <concept id="pattern_InvestmentsInSecuritiesPolicy"
                           qname="pattern:InvestmentsInSecuritiesPolicy"
                           label="Investments in Securities Policy"
                           substitution-group="xbrli:item"
                           data-type="xbrls:textItemType"
                           xbrl-data-type="xbrli:tokenItemType"
                           abstract="false"
                           period-type="duration"/>
                  <concept id="pattern_BankBorrowingsPolicy" qname="pattern:BankBorrowingsPolicy"
                           label="Bank Borrowings Policy"
                           substitution-group="xbrli:item"
                           data-type="xbrls:textItemType"
                           xbrl-data-type="xbrli:tokenItemType"
                           abstract="false"
                           period-type="duration"/>
               </concept>
               <concept id="pattern_ProvisionsPolicy" qname="pattern:ProvisionsPolicy"
                        label="Provisions Policy"
                        substitution-group="xbrli:item"
                        data-type="xbrls:textItemType"
                        xbrl-data-type="xbrli:tokenItemType"
                        abstract="false"
                        period-type="duration"/>
            </concept>
         </concept>
      </concept>
   </extended-link>
   <extended-link uri="http://www.xbrl.org/2003/role/link"
                  definition="http://www.xbrl.org/2003/role/link"/>
</presentation>