Server : Apache/2.4.43 (Win64) OpenSSL/1.1.1g PHP/7.4.6
System : Windows NT USER-PC 6.1 build 7601 (Windows 7 Professional Edition Service Pack 1) AMD64
User : User ( 0)
PHP Version : 7.4.6
Disable Function : NONE
Directory :  C:/Program Files (x86)/Microsoft Office/Templates/1028/Behaviors11/ACTIONS/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : C:/Program Files (x86)/Microsoft Office/Templates/1028/Behaviors11/ACTIONS/STRINGS.JS
// SharedLib v1.0

/////////////////////////////////////////////////////////////////////
//
// escapeString
//
// Description:
//	Escapes necessary characters in string paramter.
//	E.g. "\" to "\\"
//
// Arguments:
//	strToEscape : string		String to escape
//
// Return Value:  
//	The escaped string.
//
/////////////////////////////////////////////////////////////////////

function escapeString( strToEscape )
{
	var astrUnEscaped	= new Array();
	var astrEscaped		= new Array();
	
	// these are regexp syntax:
	astrUnEscaped[0]	= "\\\\";
	astrUnEscaped[1]	= "'";
	astrUnEscaped[2]	= '"';
	
	// these are strings
	astrEscaped[0]		= "\\\\";
	astrEscaped[1]		= "\\'";
	astrEscaped[2]		= '\\"';
	
	return ReplaceSubStrings( strToEscape, astrUnEscaped, astrEscaped );
}

/////////////////////////////////////////////////////////////////////
//
// unescapeString
//
// Description:
//	Converts any escaped characters in string parameter to original, unescaped character.
//	E.g. "\\" to "\"
//
// Arguments:
//	strToUnEscape : string		String to unescape
//
// Return Value:  
//	The unescaped string.
//
/////////////////////////////////////////////////////////////////////

function unescapeString( strToUnEscape )
{
	var astrUnEscaped	= new Array();
	var astrEscaped		= new Array();
	
	// these are regexp syntax:
	astrEscaped[0]		= "\\\\\\\\";
	astrEscaped[1]		= "\\\\'";
	astrEscaped[2]		= '\\\\"';

	// these are strings
	astrUnEscaped[0]	= "\\";
	astrUnEscaped[1]	= "'";
	astrUnEscaped[2]	= '"';
		
	return ReplaceSubStrings( strToUnEscape, astrEscaped, astrUnEscaped );
}

function escapeRegExpExpString( strToEscape )
{
	var astrUnEscaped	= new Array();
	var astrEscaped		= new Array();

	// these are regexp syntax:
	astrUnEscaped[0]	= "\\\\";
	astrUnEscaped[1]	= "\\(";
	astrUnEscaped[2]	= '\\)';
	astrUnEscaped[3]	= '\\.';
	astrUnEscaped[4]	= '\\$';
	astrUnEscaped[5]	= '\\{';
	astrUnEscaped[6]	= '\\}';
	astrUnEscaped[7]	= '\\[';
	astrUnEscaped[8]	= '\\]';
	astrUnEscaped[9]	= '\\*';
	
	// these are strings
	astrEscaped[0]		= "\\\\";
	astrEscaped[1]		= "\\(";
	astrEscaped[2]		= "\\)";
	astrEscaped[3]		= '\\.';
	astrEscaped[4]		= '\\$';
	astrEscaped[5]		= '\\{';
	astrEscaped[6]		= '\\}';
	astrEscaped[7]		= '\\[';
	astrEscaped[8]		= '\\]';
	astrEscaped[9]		= '\\*';
	
	return ReplaceSubStrings( strToEscape, astrUnEscaped, astrEscaped );
}

function ReplaceSubStrings( strToReplace, astrFind, astrReplace )
{
	for( var nSubString = 0; nSubString < astrFind.length; nSubString++ )
	{
		var re = new RegExp( astrFind[nSubString], "g" );			

		strToReplace = strToReplace.replace( re, astrReplace[nSubString] );	
	}
	
	return strToReplace;
}

function stricmp( str1, str2 )
{
	str1 = String( str1 );
	str2 = String( str2 );

	if( str1.toLowerCase() == str2.toLowerCase() ) return true;	
	
	return false;
}

function isLowerCase( ch )
{
	var str = String( ch );
	
	if( str.toLowerCase() == ch ) return true;	
	
	return false;
}

function isUpperCase( ch )
{
	var str = String( ch );
	
	if( str.toUpperCase() == ch ) return true;	
	
	return false;
}

/////////////////////////////////////////////////////////////////////
//
// isSpace
//
// Description:
//	Returns true if the given character is a particuliar representation
//	of a space character.
//
// Arguments:
//	ch : char				The character to test
//
// Return Value:  
//	True if ch is a white-space character, false otherwise.
//
/////////////////////////////////////////////////////////////////////

function isSpace( ch )
{
	switch( ch )
	{
	case ' ':
	case '\r':
	case '\t':
	case '\n':
		return true;
	}

	return false;
}

/////////////////////////////////////////////////////////////////////
//
// trimStringLeft
//
// Description:
//	Returns the passed in string with preceeding whitespace removed.
//
// Arguments:
//	strToTrim : string 			The string to be trimmed.
//
// Return Value:  
//	The trimmed string.
//
/////////////////////////////////////////////////////////////////////

function trimStringLeft( strToTrim )
{
	var nPos;

	for( nPos = 0; nPos < strToTrim.length; nPos++ )
	{
		if( !isSpace( strToTrim.charAt( nPos ) ) ) break;		
	}
	
	return strToTrim.substr( nPos, strToTrim.length - nPos );
}

/////////////////////////////////////////////////////////////////////
//
// trimStringRight
//
// Description:
//	Returns the passed in string with proceeding whitespace removed.
//
// Arguments:
//	strToTrim : string 			The string to be trimmed.
//
// Return Value:  
//	The trimmed string.
//
/////////////////////////////////////////////////////////////////////

function trimStringRight( strToTrim )
{
	var nPos;
	
	for( nPos = strToTrim.length - 1; nPos >= 0 ; nPos-- )
	{
		if( !isSpace( strToTrim.charAt( nPos ) ) ) break;		
	}
	
	return strToTrim.substr( 0, nPos + 1 );
}

/////////////////////////////////////////////////////////////////////
//
// trimQuotes
//
// Description:
//	Trims the preceeding and proceeding quotes around a given string.
//	This should be used when processing strings in a script call returned
//	from extractArgumentsFromScriptCall().
//
//	E.g. "'a string'" to "a string"
//
// Arguments:
//	strToTrim : string 			The string to be trimmed.
//
// Return Value:  
//	The trimmed string.
//
/////////////////////////////////////////////////////////////////////

function trimQuotes( strToTrim )
{	
	if( 0 < strToTrim.length )
	{
		if( ( '\'' == strToTrim.charAt( 0 ) ) ||
			( '\"' == strToTrim.charAt( 0 ) ) )
		{
			strToTrim = strToTrim.substr( 1, strToTrim.length - 1 );
		}
		
		if( ( '\'' == strToTrim.charAt( strToTrim.length - 1 ) ) ||
			( '\"' == strToTrim.charAt( strToTrim.length - 1 ) ) )
		{
			strToTrim = strToTrim.substr( 0, strToTrim.length - 1 );
		}
	}
	
	return strToTrim;
}

/*
function extractArguments( strScriptCall )
{	
	var		aRemoved = new Array();
	
	aRemoved['('] = new Array();
	aRemoved[')'] = new Array();
	aRemoved[','] = new Array();
	
	for( var nChar = 0; nChar < strScriptCall.length; nChar++ )
	{
		var	chQuote = null;
	
		if( '\'' == strScriptCall[nChar] || '\"' == strScriptCall[nChar] )
		{
			chQuote = strScriptCall[nChar];
		}
		
		if( chQuote )
		{
			var bLastWasEscape = false;
		
			for( nChar++ ; nChar < strScriptCall.length; nChar++ )
			{
				if( !bLastWasEscape )
				{
					if( chQuote == strScriptCall[nChar] )
					{
						break;
					}
				}
			
				var bRemove = false;
				
				if( '\\' == strScriptCall[nChar] )
				{
					bLastWasEscape = true;
				}
				else
				{
					bLastWasEscape = false;
				}
			
				if( '(' == strScriptCall[nChar] ) bRemove = true;
				else if( ')' == strScriptCall[nChar] ) bRemove = true;
				else if( ',' == strScriptCall[nChar] ) bRemove = true;
								
				if( bRemove )
				{
					aRemoved[strScriptCall[nChar]][aRemoved.length] = nChar;
					
					strScriptCall[nChar] = '_';
				}
			}
		}
	}

	var	aArguments = strArgumentList.split( "()," );
}
*/
/////////////////////////////////////////////////////////////////////
//
// extractArgumentsFromScriptCall
//
// Description:
//	Returns an array of objects containing information about 
//	the arguments of the original script call.
//
// Arguments:
//	strScriptCall : string 		The string returned by the extensions 
//									"getScriptCall" API function.
//
// Return Value:  
//	Array of "Return" objects, containing properties "strArgument" and
//	and "bIsURL".
//
/////////////////////////////////////////////////////////////////////

function extractArgumentsFromScriptCall( strScriptCall )
{	
	function Return( strArgument, bIsURL )
	{
		this.strArgument	= strArgument;
		this.bIsURL			= bIsURL;
	}

	var	aReturn				= new Array();
	var	nArgumentStartPos	= strScriptCall.indexOf( "(" ) + 1;
	var	nArgumentEndPos		= strScriptCall.lastIndexOf( ")" ) - 1;

	if( ( 0 <= nArgumentStartPos ) &&
		( nArgumentStartPos <= nArgumentEndPos ) )
	{
		var	strArgumentList 	= strScriptCall.substr( nArgumentStartPos, nArgumentEndPos - nArgumentStartPos + 1 );		
		var oArgs				= new VBArray( FrontPage.SplitArgs( strArgumentList, "," ) );
		var	aArguments			= oArgs.toArray();

		for( var nArg = 0; nArg < aArguments.length; nArg++ )
		{
			var	strArgument	= aArguments[nArg];
			var	nLength 	= strArgument.length;
			var	bIsURL		= false;

			for( var nPos = 0; nPos < nLength; nPos++ )
			{
				if( ( nPos + 1 < nLength ) &&
        			( '/' == strArgument.charAt( nPos ) ) &&
					( '*' == strArgument.charAt( nPos+1 ) ) )
				{
					var	nCommentStart 	= nPos + 2;
					var	nCommentEnd		= 0;
		
					for( nPos += 2; nPos < nLength; nPos++ )
					{
						if( ( nPos + 1 < nLength ) &&
							( '*' == strArgument.charAt( nPos ) ) &&
							( '/' == strArgument.charAt( nPos+1 ) ) )
						{
							nCommentEnd = nPos - 1;
		
							nPos += 2;

							break;
						}
					}

					if( nCommentStart <= nCommentEnd )
					{
						var strComment = strArgument.substr( nCommentStart, nCommentEnd - nCommentStart + 1 );

						strComment.toLowerCase();

						if( "url" == strComment )
						{
							bIsURL = true;
						}

						strArgument = strArgument.substr( nCommentEnd + 3, nLength - nCommentEnd - 2 );											
					}

					break;
				}
			}
			
			strArgument = trimStringLeft( trimStringRight( strArgument ) );
			
			aReturn[nArg] = new Return( strArgument, bIsURL );
		}	
	}

	return aReturn;
}

// HTML encode

function htmlEncode(sText) {
sText = ('' + sText).replace(/&/g,'&amp;');
sText = sText.replace(/</g,'&lt;');
sText = sText.replace(/>/g,'&gt;');
return sText.replace(/"/g,'&quot;');
}

// HTML decode

function htmlDecode(sText) {
sText = ('' + sText).replace(/&amp;/g,'&');
sText = sText.replace(/&lt;/g,'<');
sText = sText.replace(/&gt;/g,'>');
return sText.replace(/&quot;/g,'"');
}

// Use this function for localized strings.
//
// Usage:
//	strBuildParam( "%1 and then %2", "1st", "2nd" );
// Would return:
//	"1st and then 2nd"
//

function strBuildParam(stPattern)
{
	var re;

	var i;
	for (i = 1; i < strBuildParam.arguments.length; i++)
		{
		re = new RegExp("\\%" + i);
		stPattern = stPattern.replace(re, strBuildParam.arguments[i]);
		}
	return stPattern;
}

// SIG // Begin signature block
// SIG // MIIaKAYJKoZIhvcNAQcCoIIaGTCCGhUCAQExCzAJBgUr
// SIG // DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB
// SIG // gjcCAR4wJAIBAQQQEODJBs441BGiowAQS9NQkAIBAAIB
// SIG // AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFBcNWRk+BW0A
// SIG // UVgInwKKNapJv4azoIIUvDCCArwwggIlAhBKGdI4jIJZ
// SIG // HKVdc18VXdyjMA0GCSqGSIb3DQEBBAUAMIGeMR8wHQYD
// SIG // VQQKExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcwFQYD
// SIG // VQQLEw5WZXJpU2lnbiwgSW5jLjEsMCoGA1UECxMjVmVy
// SIG // aVNpZ24gVGltZSBTdGFtcGluZyBTZXJ2aWNlIFJvb3Qx
// SIG // NDAyBgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRFRCwg
// SIG // KGMpOTcgVmVyaVNpZ24sIEluYy4wHhcNOTcwNTEyMDAw
// SIG // MDAwWhcNMDQwMTA3MjM1OTU5WjCBnjEfMB0GA1UEChMW
// SIG // VmVyaVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMO
// SIG // VmVyaVNpZ24sIEluYy4xLDAqBgNVBAsTI1ZlcmlTaWdu
// SIG // IFRpbWUgU3RhbXBpbmcgU2VydmljZSBSb290MTQwMgYD
// SIG // VQQLEytOTyBMSUFCSUxJVFkgQUNDRVBURUQsIChjKTk3
// SIG // IFZlcmlTaWduLCBJbmMuMIGfMA0GCSqGSIb3DQEBAQUA
// SIG // A4GNADCBiQKBgQDTLiDwaHwsLS6BHLEGsqcLtxENV9pT
// SIG // 2HXjyTMqstT2CVs08+mQ/gkM0NsbWrnN5/aIsZ3AhyXr
// SIG // fVgQc2p4y3EV/cZY9imrWF6WBP0tYhFYgRzKcZTVIlgv
// SIG // 1cwUBYQ2upSqtE1K6e47Iq1WmX4hnGyGwEpHl2q0pjbV
// SIG // /Akt07Q5mwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAGFV
// SIG // Dj57x5ISfhEQjiLM1LMTK1voROQLeJ6kfvOnB3Ie4lnv
// SIG // zITjiZRM205h77Ok+0Y9UDQLn3BW9o4qfxfO5WO/eWkH
// SIG // cy6wlSiK9e2qqdJdzQrKEAmPzrOvKJbEeSmEktz/umdC
// SIG // SKaQEOS/YficU+WT0XM/+P2dT4SsVdH9EWNjMIIEAjCC
// SIG // A2ugAwIBAgIQCHptXG9ik0+6xP1D4RQYnTANBgkqhkiG
// SIG // 9w0BAQQFADCBnjEfMB0GA1UEChMWVmVyaVNpZ24gVHJ1
// SIG // c3QgTmV0d29yazEXMBUGA1UECxMOVmVyaVNpZ24sIElu
// SIG // Yy4xLDAqBgNVBAsTI1ZlcmlTaWduIFRpbWUgU3RhbXBp
// SIG // bmcgU2VydmljZSBSb290MTQwMgYDVQQLEytOTyBMSUFC
// SIG // SUxJVFkgQUNDRVBURUQsIChjKTk3IFZlcmlTaWduLCBJ
// SIG // bmMuMB4XDTAxMDIyODAwMDAwMFoXDTA0MDEwNjIzNTk1
// SIG // OVowgaAxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8w
// SIG // HQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTsw
// SIG // OQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQgaHR0cHM6Ly93
// SIG // d3cudmVyaXNpZ24uY29tL3JwYSAoYykwMTEnMCUGA1UE
// SIG // AxMeVmVyaVNpZ24gVGltZSBTdGFtcGluZyBTZXJ2aWNl
// SIG // MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
// SIG // wHphh+uypwNjGysaYd6AtxUdoIuQPbsnkoQUOeuFzimS
// SIG // BmZIpANPjehPp/CvXtEvGceR8bWee5Ehzun/407w/K+V
// SIG // WLhjLeaO9ikYzXCOUMPtlrtA274l6EJV1vaF8gbni5kc
// SIG // MfMDD9RMnCQq3Bsbj4LzsO+nTeMUp+CP1sdowmFYqXLU
// SIG // +DBIT9kvb2Mg2YnKgnvCS7woxYFo5+aCQKxGOqD5PzbN
// SIG // TLtUQlp6ZXv+hOTHR1SsuT3sgMca98QzgYHJKpX7f146
// SIG // h5AU28wudfLva+Y9qWC+QgGqT6pbqD8iMZ8SFflzoR6C
// SIG // iwQr6kYCTG2PH1AulUsqeAaEdD2RjyxHMQIDAQABo4G4
// SIG // MIG1MEAGCCsGAQUFBwEBBDQwMjAwBggrBgEFBQcwAYYk
// SIG // aHR0cDovL29jc3AudmVyaXNpZ24uY29tL29jc3Avc3Rh
// SIG // dHVzMAkGA1UdEwQCMAAwRAYDVR0gBD0wOzA5BgtghkgB
// SIG // hvhFAQcBATAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3
// SIG // dy52ZXJpc2lnbi5jb20vcnBhMBMGA1UdJQQMMAoGCCsG
// SIG // AQUFBwMIMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQQF
// SIG // AAOBgQAt809jYCwY2vUkD1KzDOuzvGeFwiPtj0YNzxpN
// SIG // vvN8eiAwMhhoi5K7Mpnwk7g7FQYnez4CBgCkIZKEEwrF
// SIG // mOVAV8UFJeivrxFqqeU7y+kj9pQpXUBV86VTncg2Ojll
// SIG // CHNzpDLSr6y/xwU8/0Xsw+jaJNHOY64Jp/viG+P9QQpq
// SIG // ljCCBBIwggL6oAMCAQICDwDBAIs8PIgR0T72Y+zfQDAN
// SIG // BgkqhkiG9w0BAQQFADBwMSswKQYDVQQLEyJDb3B5cmln
// SIG // aHQgKGMpIDE5OTcgTWljcm9zb2Z0IENvcnAuMR4wHAYD
// SIG // VQQLExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNV
// SIG // BAMTGE1pY3Jvc29mdCBSb290IEF1dGhvcml0eTAeFw05
// SIG // NzAxMTAwNzAwMDBaFw0yMDEyMzEwNzAwMDBaMHAxKzAp
// SIG // BgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBNaWNyb3Nv
// SIG // ZnQgQ29ycC4xHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jw
// SIG // b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFJvb3Qg
// SIG // QXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
// SIG // MIIBCgKCAQEAqQK9wXDmO/JOGyifl3heMOqiqY0lX/j+
// SIG // lUyjt/6doiA+fFGim6KPYDJr0UJkee6sdslU2vLrnIYc
// SIG // j5+EZrPFa3piI9YdPN4PAZLolsS/LWaammgmmdA6LL8M
// SIG // tVgmwUbnCj44liypKDmo7EmDQuOED7uabFVhrIJ8oWAt
// SIG // d0zpmbRkO5pQHDEIJBSfqeeRKxjmPZhjFGBYBWWfHTdS
// SIG // h/en75QCxhvTv1VFs4mAvzrsVJROrv2nem10Tq8YzJYJ
// SIG // KCEAV5BgaTe7SxIHPFb/W/ukZgoIptKBVlfvtjteFoF3
// SIG // BNr2vq6Alf6wzX/WpxpyXDzKvPAIoyIwswaFybMgdxOF
// SIG // 3wIDAQABo4GoMIGlMIGiBgNVHQEEgZowgZeAEFvQcO9p
// SIG // cp4jUX4Usk2O/8uhcjBwMSswKQYDVQQLEyJDb3B5cmln
// SIG // aHQgKGMpIDE5OTcgTWljcm9zb2Z0IENvcnAuMR4wHAYD
// SIG // VQQLExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNV
// SIG // BAMTGE1pY3Jvc29mdCBSb290IEF1dGhvcml0eYIPAMEA
// SIG // izw8iBHRPvZj7N9AMA0GCSqGSIb3DQEBBAUAA4IBAQCV
// SIG // 6AvAjfOXGDXtuAEk2HcR81xgMp+eC8s+BZGIj8k65iHy
// SIG // 8FeTLLWgR8hi7/zXzDs7Wqk2VGn+JG0/ycyq3gV83TGN
// SIG // PZ8QcGq7/hJPGGnA/NBD4xFaIE/qYnuvqhnIKzclLb5l
// SIG // oRKKJQ9jo/dUHPkhydYV81KsbkMyB/2CF/jlZ2wNUfa9
// SIG // 8VLHvefEMPwgMQmIHZUpGk3VHQKl8YDgA7Rb9LHdyFfu
// SIG // ZUnHUlS2tAMoEv+Q1vAIj364l8WrNyzkeuSod+N2oADQ
// SIG // aj/B0jaK4EESqDVqG2rbNeHUHATkqEUEyFozOG5NHA1i
// SIG // twqijNPVVD9GzRxVpnDbEjqHk3Wfp9KgMIIEyTCCA7Gg
// SIG // AwIBAgIQaguZT8AA3qoR1NhAmqi+5jANBgkqhkiG9w0B
// SIG // AQQFADBwMSswKQYDVQQLEyJDb3B5cmlnaHQgKGMpIDE5
// SIG // OTcgTWljcm9zb2Z0IENvcnAuMR4wHAYDVQQLExVNaWNy
// SIG // b3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jv
// SIG // c29mdCBSb290IEF1dGhvcml0eTAeFw0wMDEyMTAwODAw
// SIG // MDBaFw0wNTExMTIwODAwMDBaMIGmMQswCQYDVQQGEwJV
// SIG // UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
// SIG // UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
// SIG // cmF0aW9uMSswKQYDVQQLEyJDb3B5cmlnaHQgKGMpIDIw
// SIG // MDAgTWljcm9zb2Z0IENvcnAuMSMwIQYDVQQDExpNaWNy
// SIG // b3NvZnQgQ29kZSBTaWduaW5nIFBDQTCCASAwDQYJKoZI
// SIG // hvcNAQEBBQADggENADCCAQgCggEBAKKEFVPYCzAONJX/
// SIG // OhvC8y97bTcjTfPSjOX9r/3FAjQfJMflodxU7H4CdEer
// SIG // 2zJYFhRRKTjxfrK0jDpHtTlOblTCMQw6bfvNzctQnBuu
// SIG // p9jZSiY/tcXLj5biSfJt2OmWPt4Fz/CmVTetL2DNgGFC
// SIG // oUlUSg8Yt0vZk5kwWkd1ZLTTu922qwydT7hzOxg6qrSH
// SIG // jLCIsE1PH04RtTOA3w06ZG9ExzS9SpObvKYd+QUjTmAp
// SIG // j8wq8oSama2o2wpwe9Y0QZClt2bHXBsdozMOm1QDGj+Y
// SIG // kLjM5z0EdEMcj/c55rOsSHprKg5iAWE5dm79PpgHSxTx
// SIG // AUb9FQDgR9pP5AXkgCUCAQOjggEoMIIBJDATBgNVHSUE
// SIG // DDAKBggrBgEFBQcDAzCBogYDVR0BBIGaMIGXgBBb0HDv
// SIG // aXKeI1F+FLJNjv/LoXIwcDErMCkGA1UECxMiQ29weXJp
// SIG // Z2h0IChjKSAxOTk3IE1pY3Jvc29mdCBDb3JwLjEeMBwG
// SIG // A1UECxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYD
// SIG // VQQDExhNaWNyb3NvZnQgUm9vdCBBdXRob3JpdHmCDwDB
// SIG // AIs8PIgR0T72Y+zfQDAQBgkrBgEEAYI3FQEEAwIBADAd
// SIG // BgNVHQ4EFgQUKVy5G7bNM+67nll99+XKLsQNNCgwGQYJ
// SIG // KwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQD
// SIG // AgFGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEE
// SIG // BQADggEBAEVY4ppBf/ydv0h3d66M2eYZxVe0Gr20uV8C
// SIG // oUVqOVn5uSecLU2e/KLkOIo4ZCJC37kvKs+31gbK6yq/
// SIG // 4BqFfNtRCD30ItPUwG2IgRVEX2SDZMSplCyK25A3Sg+3
// SIG // 6NRhj3Z24dkl/ySElY0EVlSUoRw6PoK87qWHjByMS3lf
// SIG // tUn6XjJpOh9UrXVN32TnMDzbZElE+/vEHEJx5qA9Re5r
// SIG // AJ+sQr26EbNW5PvVoiqB2B9OolW+J49wpqJsG/9UioK8
// SIG // gUumobFmeqkXp8sGwEfrprPpMRVTPSoEv/9zSNyLJ0P8
// SIG // Y+juJIdbvjbR6DH1Mtle33l6ujCsaYZK+4wRvxuNVFkw
// SIG // ggUPMIID96ADAgECAgphBxFDAAAAAAA0MA0GCSqGSIb3
// SIG // DQEBBQUAMIGmMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
// SIG // V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
// SIG // A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSswKQYD
// SIG // VQQLEyJDb3B5cmlnaHQgKGMpIDIwMDAgTWljcm9zb2Z0
// SIG // IENvcnAuMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBT
// SIG // aWduaW5nIFBDQTAeFw0wMjA1MjUwMDU1NDhaFw0wMzEx
// SIG // MjUwMTA1NDhaMIGhMQswCQYDVQQGEwJVUzETMBEGA1UE
// SIG // CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe
// SIG // MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSsw
// SIG // KQYDVQQLEyJDb3B5cmlnaHQgKGMpIDIwMDIgTWljcm9z
// SIG // b2Z0IENvcnAuMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29y
// SIG // cG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
// SIG // ggEKAoIBAQCqmb05qBgn9Cs9C0w/fHcup8u10YwNwjp0
// SIG // 15O14KBLP1lezkVPmnkp8UnMGkfuVcIIPhIg+FXy7l/T
// SIG // 4MqWvDDe/ljIJzLQhVTo8JEQu/MrvhnlA5sLhh3zsDmM
// SIG // uP0LHTxzJqxXK8opohWQghXid6NAUgOLncJwuh/pNPbz
// SIG // NZJOVYP42jC2IN5XBrVaQgbeWcvy36a9FUdxGSUj0stv
// SIG // mxl532pb8XYFeSn8w1bKj0QIhVWKy8gPRktVy4yWd0qH
// SIG // 6KlBBsf/DeloV2Nyw2lXtEPPMjow3Bvp1UMmKnn+ldsi
// SIG // ZyTJL9A04+b7UUmGuDzQJV/W7J4DYYepaEDH+OID5s8F
// SIG // AgMBAAGjggFAMIIBPDAOBgNVHQ8BAf8EBAMCBsAwEwYD
// SIG // VR0lBAwwCgYIKwYBBQUHAwMwHQYDVR0OBBYEFGvIxlEg
// SIG // 8LQv06C2rn9eJrK4h1IpMIGpBgNVHSMEgaEwgZ6AFClc
// SIG // uRu2zTPuu55Zffflyi7EDTQooXSkcjBwMSswKQYDVQQL
// SIG // EyJDb3B5cmlnaHQgKGMpIDE5OTcgTWljcm9zb2Z0IENv
// SIG // cnAuMR4wHAYDVQQLExVNaWNyb3NvZnQgQ29ycG9yYXRp
// SIG // b24xITAfBgNVBAMTGE1pY3Jvc29mdCBSb290IEF1dGhv
// SIG // cml0eYIQaguZT8AA3qoR1NhAmqi+5jBKBgNVHR8EQzBB
// SIG // MD+gPaA7hjlodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v
// SIG // cGtpL2NybC9wcm9kdWN0cy9Db2RlU2lnblBDQS5jcmww
// SIG // DQYJKoZIhvcNAQEFBQADggEBADUj/RNU/Onc8N0MFHr6
// SIG // p7PO/ac6yLrl5/YD+1Pbp5mpoJs2nAPrgkccIb0Uy+dn
// SIG // QAnHFpECVc5DQrTNG12w8zIEPRLlHacHp4+jfkVVdhuW
// SIG // lZFp8N0480iJ73BAt9u1VYDAA8QutijcCoIOx0Pjekhd
// SIG // uAaJkkBsbsXc+JrvC74hCowvOrXtp85xh2gj4bPkGH24
// SIG // RwGlK8RYy7KJbF/90yzEb7gjsg3/PPIRRXTyCQaZGN1v
// SIG // wIYBGBIdKxavVu9lM6HqZ070S4Kr6Q/cAfrfYH9mR13L
// SIG // LHDMe07ZBrhujAz+Yh5C+ZN8oqsKntAjEK5NeyeRbya+
// SIG // aPqmP58j68idu4cxggTYMIIE1AIBATCBtTCBpjELMAkG
// SIG // A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
// SIG // BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m
// SIG // dCBDb3Jwb3JhdGlvbjErMCkGA1UECxMiQ29weXJpZ2h0
// SIG // IChjKSAyMDAwIE1pY3Jvc29mdCBDb3JwLjEjMCEGA1UE
// SIG // AxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0ECCmEH
// SIG // EUMAAAAAADQwCQYFKw4DAhoFAKCBqDAZBgkqhkiG9w0B
// SIG // CQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4w
// SIG // DAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQU01Wl
// SIG // 01Yknby1e9FT7tg5OuQ4XE8wSAYKKwYBBAGCNwIBDDE6
// SIG // MDigFoAUAHMAdAByAGkAbgBnAHMALgBqAHOhHoAcaHR0
// SIG // cDovL29mZmljZS5taWNyb3NvZnQuY29tIDANBgkqhkiG
// SIG // 9w0BAQEFAASCAQAdNkayTnWbY+aUNjkTEGcaT5rkcPO2
// SIG // uR3grjU+ZC2hVlv4v5C2pAkaop3qawOSJkFm04YB5ifo
// SIG // 6Eqo5FEMz5KgALAEm36ahuAS6KS0Kcn3gW5wMCwaTN1k
// SIG // f3V9+inmZP+ProDbVTXZsZJ1JAMdPTBMg5tlrV0P77ci
// SIG // RwC+IhgHbBxeJgOBaG6M26pOhzMikGwa62GcZtyygiAc
// SIG // OFzkM6N2szpBUtmjupLv9YNbfkoxOeO8J6VkGNqBY3+R
// SIG // +kfXmqTTDQtBupzBsn3+CPucN0z2Kg/1kGu+McuZo5kB
// SIG // mEa8EBpPZ8zH6JOYqwSCRW9+/1f0GLZdAwQsH/YuE4mn
// SIG // NSk5oYICTDCCAkgGCSqGSIb3DQEJBjGCAjkwggI1AgEB
// SIG // MIGzMIGeMR8wHQYDVQQKExZWZXJpU2lnbiBUcnVzdCBO
// SIG // ZXR3b3JrMRcwFQYDVQQLEw5WZXJpU2lnbiwgSW5jLjEs
// SIG // MCoGA1UECxMjVmVyaVNpZ24gVGltZSBTdGFtcGluZyBT
// SIG // ZXJ2aWNlIFJvb3QxNDAyBgNVBAsTK05PIExJQUJJTElU
// SIG // WSBBQ0NFUFRFRCwgKGMpOTcgVmVyaVNpZ24sIEluYy4C
// SIG // EAh6bVxvYpNPusT9Q+EUGJ0wDAYIKoZIhvcNAgUFAKBZ
// SIG // MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZI
// SIG // hvcNAQkFMQ8XDTAzMDcxNTA2MzAyMVowHwYJKoZIhvcN
// SIG // AQkEMRIEEGIN4aT/PGSSrESgBU70hswwDQYJKoZIhvcN
// SIG // AQEBBQAEggEAgMiKSZcemHADhjd92tzItS/ygNEXeVtJ
// SIG // rLwtjFcSWLyA0lKPQENhnoeJHC3sdlierkFKj9mHI3IC
// SIG // 64YeyPCKbzUQzt2aGq3m2QiZXuEIk2lLWJcwuOnv1H3b
// SIG // rdOoBxZbdoMH/CC+cfIu1IUnPM/J4wb7EnvOiF7W3Sx7
// SIG // 34xZIVAY+uc800OZI/P3V6tI228sTg7bMM/lMrFV1IkO
// SIG // fzVfjBJE2FQ1Tyn8Psthsvzo2eAvSmqAam0xmoANCH2e
// SIG // g+cd/eYbstlaOoghZqbBd8tj+AfRf0sy4tdksCh/rLhi
// SIG // eWWrvlbE/XC5a8d+VXSZYU+AMg0ZlYzOc+cyOAe24pwhEg==
// SIG // End signature block