blob: d250bd509e5ea513eee5ca8d960c0ad00d17f69a [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!-- saved from url=(0014)about:internet --><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" href="../../style.css" type="text/css" media="screen"><link rel="stylesheet" href="../../print.css" type="text/css" media="print"><link rel="stylesheet" href="../../override.css" type="text/css"><meta name="keywords" content="ILayoutManagerClient,mx.managers.ILayoutManagerClient,APPLICATION,COPY,HIGH,LINK,LOW,MEDIUM,MOVE,NONE,NO_CURSOR,PARENT,POPUP,allowDomainsInNewRSLs,allowDomainsInNewRSLs,allowInsecureDomainsInNewRSLs,allowInsecureDomainsInNewRSLs,application,base,childAllowsParent,childAllowsParent,currentCursorID,currentCursorXOffset,currentCursorYOffset,currentTarget,currentToolTip,cursorChildren,cursorChildren,cursorChildren,defaultButton,defaultButton,defaultButton,defaultButtonEnabled,defaultButtonEnabled,document,document,document,embeddedFontList,embeddedFontList,enabled,explicitHeight,explicitWidth,focusEnabled,focusManager,focusPane,focusPane,focusPane,focusPane,focusPane,fragment,groupName,hasFocusableChildren,hasFocusableContent,height,height,hideDelay,hideEffect,initialized,isDragging,isProxy,isProxy,isProxy,loaderInfo,measuredHeight,measuredWidth,mouseFocusEnabled,nestLevel,nextTabIndex,nextTabIndex,numChildren,numChildren,numModalWindows,numModalWindows,numModalWindows,parent,parentAllowsChild,parentAllowsChild,popUpChildren,popUpChildren,popUpChildren,preloadedRSLs,preloaderBackgroundAlpha,preloaderBackgroundColor,preloaderBackgroundImage,preloaderBackgroundSize,processedDescriptors,rawChildren,rawChildren,rawChildren,screen,screen,screen,scrubDelay,selected,showDelay,showEffect,showFocusIndicator,showFocusIndicator,stage,swfBridgeGroup,systemManager,tabFocusEnabled,tabIndex,title,toolTip,toolTipChildren,toolTipChildren,toolTipChildren,toolTipClass,topLevelSystemManager,topLevelSystemManager,topLevelSystemManager,updateCompletePendingFlag,url,usePhasedInstantiation,usePhasedInstantiation,width,width,acceptDragDrop,activate,activate,addChildBridge,addChildToSandboxRoot,addPopUp,addPreloadedRSL,allowDomain,allowInsecureDomain,assignFocus,attachListeners,bringToFront,callInContext,centerPopUp,contains,create,create,createPopUp,createToolTip,deactivate,deactivate,deployMouseShields,deployMouseShields,deployMouseShields,destroyToolTip,dispatchEventFromSWFBridges,doDrag,drawFocus,findFocusManagerComponent,findFocusManagerComponent,getDefinitionByName,getDefinitionByName,getDefinitionByName,getExplicitOrMeasuredHeight,getExplicitOrMeasuredWidth,getFeedback,getFocus,getFocus,getFocus,getInstance,getInstance,getInstance,getNextFocusManagerComponent,getNextFocusManagerComponent,getSWFRoot,getSandboxRoot,getSandboxRoot,getSandboxRoot,getTopLevelRoot,getTopLevelRoot,getTopLevelRoot,getVisibleApplicationRect,getVisibleApplicationRect,getVisibleApplicationRect,hideCursor,hideFocus,hideFocus,init,initForHistoryManager,initialize,invalidateDisplayList,invalidateDisplayList,invalidateParentSizeAndDisplayList,invalidateParentSizeAndDisplayList,invalidateParentSizeAndDisplayList,invalidateProperties,invalidateProperties,invalidateSize,invalidateSize,isDisplayObjectInABridgedApplication,isFontFaceEmbedded,isFontFaceEmbedded,isFontFaceEmbedded,isInvalid,isInvalid,isTopLevel,isTopLevel,isTopLevel,isTopLevelRoot,isTopLevelRoot,isTopLevelRoot,isTopLevelWindow,isTopLevelWindow,loadState,move,register,removeAllCursors,removeBusyCursor,removeChildBridge,removeChildFromSandboxRoot,removeCursor,removePopUp,save,saveState,setActualSize,setBusyCursor,setCursor,setFocus,setFocus,setFocus,setFragment,setTitle,showCursor,showFeedback,showFocus,showFocus,toString,toString,unregister,useSWFBridge,validateClient,validateClient,validateDisplayList,validateNow,validateNow,validateProperties,validateSize"><title>mx.managers.ILayoutManagerClient</title></head><body><script language="javascript" type="text/javascript" src="../../asdoc.js"></script><script language="javascript" type="text/javascript" src="../../help.js"></script><script language="javascript" type="text/javascript" src="../../cookies.js"></script><script language="javascript" type="text/javascript"><!--
asdocTitle = 'ILayoutManagerClient - ApacheFlex API Reference';
var baseRef = '../../';
window.onload = configPage;
--></script>
<script type="text/javascript">
scrollToNameAnchor();
</script><table class="titleTable" cellpadding="0" cellspacing="0" id="titleTable" style="display:none"><tr><td class="titleTableTitle" align="left">Apache Flex 4.16.1 API Reference </td><td class="titleTableTopNav" align="right"><a href="../../package-summary.html" onclick="loadClassListFrame('../../all-classes.html')">All Packages</a>&nbsp;|&nbsp;<a href="../../class-summary.html" onclick="loadClassListFrame('../../all-classes.html')">All Classes</a>&nbsp;|&nbsp;<a href="../../all-index-A.html" onclick="loadClassListFrame('../../index-list.html')">Index</a>&nbsp;|&nbsp;<a id="framesLink1" href="../../index.html?mx/managers/ILayoutManagerClient.html&amp;mx/managers/class-list.html">Frames</a><a id="noFramesLink1" style="display:none" href="" onclick="parent.location=document.location"> No Frames </a></td><td class="titleTableLogo" align="right" rowspan="3"><img src="../../images/logo.jpg" class="logoImage" alt="AdobeLogo" title="AdobeLogo"></td></tr><tr class="titleTableRow2"><td class="titleTableSubTitle" id="subTitle" align="left">ILayoutManagerClient</td><td class="titleTableSubNav" id="subNav" align="right"><a href="#propertySummary">Properties</a>&nbsp;| <a href="#methodSummary">Methods</a></td></tr><tr class="titleTableRow3"><td colspan="3">&nbsp;</td></tr></table><script language="javascript" type="text/javascript" xml:space="preserve">
<!--
if (!isEclipse() || window.name != ECLIPSE_FRAME_NAME) {titleBar_setSubTitle("ILayoutManagerClient"); titleBar_setSubNav(false,true,false,false,false,false,false,false,true,false,false ,false,false,false,false,false);}
-->
</script><div xmlns:fn="http://www.w3.org/2005/xpath-functions" class="MainContent"><table class="classHeaderTable" cellpadding="0" cellspacing="0"><tr><td class="classHeaderTableLabel">Package</td><td><a href="package-detail.html" onclick="javascript:loadClassListFrame('class-list.html')">mx.managers</a></td></tr><tr><td class="classHeaderTableLabel">Interface</td><td class="classSignature">public interface ILayoutManagerClient extends flash.events.IEventDispatcher</td></tr><tr><td class="classHeaderTableLabel">Implementors</td><td> <a href="../../mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.html">AdvancedDataGridItemRenderer</a>, <a href="../../mx/controls/dataGridClasses/DataGridItemRenderer.html">DataGridItemRenderer</a>, <a href="../../mx/controls/advancedDataGridClasses/FTEAdvancedDataGridItemRenderer.html">FTEAdvancedDataGridItemRenderer</a>, <a href="../../mx/controls/dataGridClasses/FTEDataGridItemRenderer.html">FTEDataGridItemRenderer</a>, <a href="../../mx/controls/FlexNativeMenu.html">FlexNativeMenu</a>, <a href="../../mx/skins/ProgrammaticSkin.html">ProgrammaticSkin</a>, <a href="../../mx/core/UIComponent.html">UIComponent</a></td></tr></table><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Language Version :&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Product Version :&nbsp;</b></td><td>Flex 3</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Runtime Versions :&nbsp;</b></td><td>Flash Player 9, AIR 1.1</td></tr></table><p></p><p></p><p></p><p></p>
The ILayoutManagerClient interface defines the interface
that a component must implement to participate in the
LayoutManager's commit/measurement/layout sequence.
<p>Objects that implement this interface can be passed to the
LayoutManager's <code>invalidateProperties()</code> method.
When the LayoutManager reaches the commit properties phase,
the LayoutManager invokes this object's <code>validateProperties()</code>
method.</p>
<p>Similarly, if an object is passed to the LayoutManager's
<code>invalidateSize()</code> method, then the LayoutManager
calls that object's <code>validateSize()</code> method
during its measurement phase, and if an object is passed
to LayoutManager's <code>invalidateDisplayList()</code> method,
then the LayoutManager calls its <code>validateDisplayList()</code> method
during the layout phase.</p>
<p>The ILayoutManagerClient interface is implemented by the UIComponent
and ProgrammaticSkin classes.</p>
<p></p><br/><hr></div><a name="propertySummary"></a><div class="summarySection"><div class="summaryTableTitle">Public Properties</div><table cellspacing="0" cellpadding="3" class="summaryTable " id="summaryTableProperty"><tr><th>&nbsp;</th><th colspan="2">Property</th><th class="summaryTableOwnerCol">Defined By</th></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a href="#initialized" class="signatureLink">initialized</a> : Boolean<div class="summaryTableDescription">
A flag that determines if an object has been through all three phases
of layout validation (provided that any were required)
This flag should only be modified by the LayoutManager.</div></td><td class="summaryTableOwnerCol">ILayoutManagerClient</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a href="#nestLevel" class="signatureLink">nestLevel</a> : int<div class="summaryTableDescription">
The top-level SystemManager has a nestLevel of 1.</div></td><td class="summaryTableOwnerCol">ILayoutManagerClient</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a href="#processedDescriptors" class="signatureLink">processedDescriptors</a> : Boolean<div class="summaryTableDescription">
Set to true after immediate or deferred child creation,
depending on which one happens.</div></td><td class="summaryTableOwnerCol">ILayoutManagerClient</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a href="#updateCompletePendingFlag" class="signatureLink">updateCompletePendingFlag</a> : Boolean<div class="summaryTableDescription">
A flag that determines if an object is waiting to have its
updateComplete event dispatched.</div></td><td class="summaryTableOwnerCol">ILayoutManagerClient</td></tr></table></div><a name="methodSummary"></a><div class="summarySection"><div class="summaryTableTitle">Public Methods </div><table cellspacing="0" cellpadding="3" class="summaryTable " id="summaryTableMethod"><tr><th>&nbsp;</th><th colspan="2">Method</th><th class="summaryTableOwnerCol">Defined By</th></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="#validateDisplayList()" class="signatureLink">validateDisplayList</a>():void</div><div class="summaryTableDescription">
Validates the position and size of children and draws other
visuals.</div></td><td class="summaryTableOwnerCol">ILayoutManagerClient</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="#validateProperties()" class="signatureLink">validateProperties</a>():void</div><div class="summaryTableDescription">
Validates the properties of a component.</div></td><td class="summaryTableOwnerCol">ILayoutManagerClient</td></tr><tr class=""><td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><div class="summarySignature"><a href="#validateSize()" class="signatureLink">validateSize</a>(recursive:Boolean = false):void</div><div class="summaryTableDescription">
Validates the measured size of the component
If the LayoutManager.invalidateSize() method is called with
this ILayoutManagerClient, then the validateSize() method
is called when it's time to do measurements.</div></td><td class="summaryTableOwnerCol">ILayoutManagerClient</td></tr></table></div><script language="javascript" type="text/javascript"><!--
showHideInherited();
--></script><div class="MainContent"><div class="detailSectionHeader">Property Detail</div><a name="propertyDetail"></a><a name="initialized"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName">initialized</td><td class="detailHeaderType">property</td></tr></table><div class="detailBody"><code>initialized:Boolean</code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Language Version :&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Product Version :&nbsp;</b></td><td>Flex 3</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Runtime Versions :&nbsp;</b></td><td>Flash Player 9, AIR 1.1</td></tr></table><p></p><p></p><p>
A flag that determines if an object has been through all three phases
of layout validation (provided that any were required)
This flag should only be modified by the LayoutManager.
</p><br/><span class="label"> Implementation </span><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function get initialized():Boolean</code><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function set initialized(value:Boolean):void</code><br/></div><a name="propertyDetail"></a><a name="nestLevel"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName">nestLevel</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>nestLevel:int</code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Language Version :&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Product Version :&nbsp;</b></td><td>Flex 3</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Runtime Versions :&nbsp;</b></td><td>Flash Player 9, AIR 1.1</td></tr></table><p></p><p></p><p>
The top-level SystemManager has a nestLevel of 1.
Its immediate children (the top-level Application and any pop-up
windows) have a <code>nestLevel</code> of 2.
Their children have a <code>nestLevel</code> of 3, and so on.
The <code>nestLevel</code> is used to sort ILayoutManagerClients
during the measurement and layout phases.
During the commit phase, the LayoutManager commits properties on clients
in order of increasing <code>nestLevel</code>, so that an object's
children have already had their properties committed before Flex
commits properties on the object itself.
During the measurement phase, the LayoutManager measures clients
in order of decreasing <code>nestLevel</code>, so that an object's
children have already been measured before Flex measures
the object itself.
During the layout phase, the LayoutManager lays out clients
in order of increasing <code>nestLevel</code>, so that an object
has a chance to set the sizes of its children before the child
objects are asked to position and size their children.
</p><br/><span class="label"> Implementation </span><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function get nestLevel():int</code><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function set nestLevel(value:int):void</code><br/></div><a name="propertyDetail"></a><a name="processedDescriptors"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName">processedDescriptors</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>processedDescriptors:Boolean</code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Language Version :&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Product Version :&nbsp;</b></td><td>Flex 3</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Runtime Versions :&nbsp;</b></td><td>Flash Player 9, AIR 1.1</td></tr></table><p></p><p></p><p>
Set to <code>true</code> after immediate or deferred child creation,
depending on which one happens. For a Container object, it is set
to <code>true</code> at the end of
the <code>createComponentsFromDescriptors()</code> method,
meaning after the Container object creates its children from its child descriptors.
<p>For example, if an Accordion container uses deferred instantiation,
the <code>processedDescriptors</code> property for the second pane of
the Accordion container does not become <code>true</code> until after
the user navigates to that pane and the pane creates its children.
But, if the Accordion had set the <code>creationPolicy</code> property
to <code>"all"</code>, the <code>processedDescriptors</code> property
for its second pane is set to <code>true</code> during application startup.</p>
<p>For classes that are not containers, which do not have descriptors,
it is set to <code>true</code> after the <code>createChildren()</code>
method creates any internal component children.</p>
</p><br/><span class="label"> Implementation </span><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function get processedDescriptors():Boolean</code><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function set processedDescriptors(value:Boolean):void</code><br/></div><a name="propertyDetail"></a><a name="updateCompletePendingFlag"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName">updateCompletePendingFlag</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code>updateCompletePendingFlag:Boolean</code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Language Version :&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Product Version :&nbsp;</b></td><td>Flex 3</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Runtime Versions :&nbsp;</b></td><td>Flash Player 9, AIR 1.1</td></tr></table><p></p><p></p><p>
A flag that determines if an object is waiting to have its
<code>updateComplete</code> event dispatched.
This flag should only be modified by the LayoutManager.
</p><br/><span class="label"> Implementation </span><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function get updateCompletePendingFlag():Boolean</code><br/><code>&nbsp;&nbsp;&nbsp;&nbsp;public function set updateCompletePendingFlag(value:Boolean):void</code><br/></div><a name="methodDetail"></a><div class="detailSectionHeader">Method Detail</div><a name="validateDisplayList()"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName">validateDisplayList</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td></tr></table><div class="detailBody"><code> public function validateDisplayList():void</code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Language Version :&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Product Version :&nbsp;</b></td><td>Flex 3</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Runtime Versions :&nbsp;</b></td><td>Flash Player 9, AIR 1.1</td></tr></table><p></p><p></p><p>
Validates the position and size of children and draws other
visuals.
If the <code>LayoutManager.invalidateDisplayList()</code> method is called with
this ILayoutManagerClient, then the <code>validateDisplayList()</code> method
is called when it's time to update the display list.
</p></div><a name="validateProperties()"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName">validateProperties</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code> public function validateProperties():void</code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Language Version :&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Product Version :&nbsp;</b></td><td>Flex 3</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Runtime Versions :&nbsp;</b></td><td>Flash Player 9, AIR 1.1</td></tr></table><p></p><p></p><p>
Validates the properties of a component.
If the <code>LayoutManager.invalidateProperties()</code> method is called with
this ILayoutManagerClient, then the <code>validateProperties()</code> method
is called when it's time to commit property values.
</p></div><a name="validateSize()"></a><a name="validateSize(Boolean)"></a><table class="detailHeader" cellpadding="0" cellspacing="0"><tr><td class="detailHeaderName">validateSize</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td></tr></table><div class="detailBody"><code> public function validateSize(recursive:Boolean = false):void</code><p></p><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Language Version :&nbsp;</b></td><td>ActionScript 3.0</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Product Version :&nbsp;</b></td><td>Flex 3</td></tr></table><table cellpadding="0" cellspacing="0" border="0"><tr><td style="white-space:nowrap" valign="top"><b> Runtime Versions :&nbsp;</b></td><td>Flash Player 9, AIR 1.1</td></tr></table><p></p><p></p><p>
Validates the measured size of the component
If the <code>LayoutManager.invalidateSize()</code> method is called with
this ILayoutManagerClient, then the <code>validateSize()</code> method
is called when it's time to do measurements.
</p><p><span class="label"> Parameters </span><table cellpadding="0" cellspacing="0" border="0"><tr><td width="20px"></td><td><code><span class="label">recursive</span>:Boolean</code> (default = <code>false</code>)<code></code> &mdash; If <code>true</code>, call this method
on the objects children.
</td></tr></table></p></div><br/><br/><hr><br/><p></p><center class="copyright"><footer>The Apache Software Foundation</footer><br/>Wed Nov 15 2017, 09:50 AM +01:00 </center></div></body></html><!--The Apache Software Foundation<br/>Wed Nov 15 2017, 09:50 AM +01:00 -->