[prev in list] [next in list] [prev in thread] [next in thread]
List: boost-users
Subject: Re: [Boost-users] [Log] [ASIO with ssl] windows service crash on windows server 2008
From: Václav Zeman <vhaisman () gmail ! com>
Date: 2014-09-27 22:55:34
Message-ID: 54274066.3000408 () gmail ! com
[Download RAW message or body]
[Attachment #2 (multipart/signed)]
[Attachment #4 (multipart/alternative)]
On 26.9.2014 09:26, Pritesh Acharya wrote:
> Details:
> OS: Windows Server 2008 SP2
> Boost 1.56.0 (shared library)
> OpenSSL: Win32OpenSSL-1_0_1i
>
> I have a windows service application written in C++. As a minimal test
> case, I have created a small demo code to show the problem. The
> service just log some information to a file and does nothing.
> The same code has no problem in my Development machine(windows7) and
> window Server 2003.
> Also on Windows Server 2008, when the service is run as LocalSystem
> privilege, it crashes, but when run as Administrator it works.
>
> Additionally, when I remove the asio ssl header from the code, it works.
> or when I remove the log header, it works. The problem seems to be
> related to when ASIO ssl and LOG are used together.
>
> Below I've included
> 1. Code
> 2. User Mode Crash dump
> 3. Call Stack obtained from running Crash Dump
>
> *1. Code:*
>
>
> /#include <boost/log/trivial.hpp>/
> /#include <boost/log/sources/severity_logger.hpp>/
> /#include <boost/asio/ssl.hpp>/
> /#include <windows.h>/
> /#include <stdio.h>/
> /
> /
> /#define SLEEP_TIME 5000/
> /#define LOGFILE "C:\\AASSLInstaller_D_56\\memstatus.txt"/
> /
> /
> /SERVICE_STATUS ServiceStatus; /
> /SERVICE_STATUS_HANDLE hStatus; /
> / /
> /void ServiceMain(int argc, char** argv); /
> /void ControlHandler(DWORD request); /
> /int InitService();/
> /
> /
> /int WriteToLog(char* str)/
> /{/
> / FILE* log;/
> / log = fopen(LOGFILE, "a+");/
> / if (log == NULL)/
> / return -1;/
> / fprintf(log, "%s\n", str);/
> / fclose(log);/
> / return 0;/
> /}/
> /
> /
> ///void ThreadFunction()/
> ///{/
> /// WriteToLog("at ThreadFunction");/
> /// //std::cout << "hello World " << std::endl;/
> /// //getchar();/
> ///}/
> /
> /
> /int main() /
> /{ /
> / using namespace boost::log::trivial; //for logging/
> / boost::log::sources::severity_logger_mt<
> boost::log::trivial::severity_level > lg;/
> / //WriteToLog("at main");/
> / //return 1;/
> / SERVICE_TABLE_ENTRY ServiceTable[2];/
> / ServiceTable[0].lpServiceName = "MemoryStatus";/
> / ServiceTable[0].lpServiceProc =
> (LPSERVICE_MAIN_FUNCTION)ServiceMain;/
> /
> /
> / ServiceTable[1].lpServiceName = NULL;/
> / ServiceTable[1].lpServiceProc = NULL;/
> / // Start the control dispatcher thread for our service/
> / StartServiceCtrlDispatcher(ServiceTable); /
> / return 0;/
> /}/
> /
> /
> /
> /
> /void ServiceMain(int argc, char** argv) /
> /{ /
> / int error; /
> / /
> / ServiceStatus.dwServiceType = SERVICE_WIN32; /
> / ServiceStatus.dwCurrentState = SERVICE_START_PENDING; /
> / ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP |
> SERVICE_ACCEPT_SHUTDOWN;/
> / ServiceStatus.dwWin32ExitCode = 0; /
> / ServiceStatus.dwServiceSpecificExitCode = 0; /
> / ServiceStatus.dwCheckPoint = 0; /
> / ServiceStatus.dwWaitHint = 0; /
> / /
> / hStatus = RegisterServiceCtrlHandler(/
> / "MemoryStatus", /
> / (LPHANDLER_FUNCTION)ControlHandler); /
> / if (hStatus == (SERVICE_STATUS_HANDLE)0) /
> / { /
> / // Registering Control Handler failed/
> / return; /
> / } /
> / // Initialize Service /
> / //error = InitService(); /
> / error = 0;/
> / if (error) /
> / {/
> / // Initialization failed/
> / ServiceStatus.dwCurrentState = SERVICE_STOPPED; /
> / ServiceStatus.dwWin32ExitCode = -1; /
> / SetServiceStatus(hStatus, &ServiceStatus); /
> / return; /
> / } /
> / // We report the running status to SCM. /
> / ServiceStatus.dwCurrentState = SERVICE_RUNNING; /
> / SetServiceStatus (hStatus, &ServiceStatus);/
> / /
> / MEMORYSTATUS memory;/
> / // The worker loop of a service/
> / //boost::thread t(&ThreadFunction);/
> / while (ServiceStatus.dwCurrentState == SERVICE_RUNNING)/
> / {/
> / char buffer[16];/
> / GlobalMemoryStatus(&memory);/
> / sprintf(buffer, "%d", memory.dwAvailPhys);/
> / int result = WriteToLog(buffer);/
> / if (result)/
> / {/
> / ServiceStatus.dwCurrentState = SERVICE_STOPPED; /
> / ServiceStatus.dwWin32ExitCode = -1; /
> / SetServiceStatus(hStatus, &ServiceStatus);/
> / return;/
> / }/
> /
> /
> / Sleep(SLEEP_TIME);/
> / }/
> / return; /
> /}/
> / /
> /// Service initialization/
> /int InitService() /
> /{ /
> / int result;/
> / result = WriteToLog("Monitoring started.");/
> / return(result); /
> /} /
> /
> /
> /// Control handler function/
> /void ControlHandler(DWORD request) /
> /{ /
> / switch(request) /
> / { /
> / case SERVICE_CONTROL_STOP: /
> / WriteToLog("Monitoring stopped.");/
> /
> /
> / ServiceStatus.dwWin32ExitCode = 0; /
> / ServiceStatus.dwCurrentState = SERVICE_STOPPED; /
> / SetServiceStatus (hStatus, &ServiceStatus);/
> / return; /
> / /
> / case SERVICE_CONTROL_SHUTDOWN: /
> / WriteToLog("Monitoring stopped.");/
> /
> /
> / ServiceStatus.dwWin32ExitCode = 0; /
> / ServiceStatus.dwCurrentState = SERVICE_STOPPED; /
> / SetServiceStatus (hStatus, &ServiceStatus);/
> / return; /
> / /
> / default:/
> / break;/
> / } /
> / /
> / // Report current status/
> / SetServiceStatus (hStatus, &ServiceStatus);/
> / /
> / return; /
> /} /
> /
> /
> *2. Dump*
>
>
> /Dump Summary/
> /------------/
> /Dump File:with_ssl_56.exe.4208.dmp : C:\Dumps\with_ssl_56.exe.4208.dmp/
> /Last Write Time:9/26/2014 11:59:38 AM/
> /Process Name:with_ssl_56.exe :
> C:\lpa_c\wix_for_service\build_win\src\with_ssl_56\Debug\with_ssl_56.exe/
> /Process Architecture:x86/
> /Exception Code:0xC0000005/
> /Exception Information:The thread tried to read from or write to a
> virtual address for which it does not have the appropriate access./
> /Heap Information:Not Present/
> /
> /
> /System Information/
> /------------------/
> /OS Version:6.0.6002/
> /CLR Version(s):/
> /
> /
> /Modules/
> /-------/
> /Module NameModule PathModule Version/
> /------------------------------------/
> /with_ssl_56.exeC:\lpa_c\wix_for_service\build_win\src\with_ssl_56\Debug\with_ssl_56.exe0.0.0.0/
> /ntdll.dllC:\Windows\System32\ntdll.dll6.0.6002.18881/
> /kernel32.dllC:\Windows\System32\kernel32.dll6.0.6002.19034/
> /advapi32.dllC:\Windows\System32\advapi32.dll6.0.6002.18005/
> /rpcrt4.dllC:\Windows\System32\rpcrt4.dll6.0.6002.18882/
> /boost_log-vc100-mt-gd-1_56.dllC:\boost_1_56_0_dyn\stage\lib\boost_log-vc100-mt-gd-1_56.dll0.0.0.0/
> /boost_date_time-vc100-mt-gd-1_56.dllC:\boost_1_56_0_dyn\stage\lib\boost_date_time-vc100-mt-gd-1_56.dll0.0.0.0/
> /MSVCP100D.dllC:\Windows\System32\MSVCP100D.dll10.0.30319.1/
> /MSVCR100D.dllC:\Windows\System32\MSVCR100D.dll10.0.30319.1/
> /boost_system-vc100-mt-gd-1_56.dllC:\boost_1_56_0_dyn\stage\lib\boost_system-vc100-mt-gd-1_56.dll0.0.0.0/
> /boost_filesystem-vc100-mt-gd-1_56.dllC:\boost_1_56_0_dyn\stage\lib\boost_filesystem-vc100-mt-gd-1_56.dll0.0.0.0/
> /boost_chrono-vc100-mt-gd-1_56.dllC:\boost_1_56_0_dyn\stage\lib\boost_chrono-vc100-mt-gd-1_56.dll0.0.0.0/
> /boost_thread-vc100-mt-gd-1_56.dllC:\boost_1_56_0_dyn\stage\lib\boost_thread-vc100-mt-gd-1_56.dll0.0.0.0/
> /psapi.dllC:\Windows\System32\psapi.dll6.0.6000.16386/
> /ws2_32.dllC:\Windows\System32\ws2_32.dll6.0.6001.18000/
> /msvcrt.dllC:\Windows\System32\msvcrt.dll7.0.6002.18551/
> /nsi.dllC:\Windows\System32\nsi.dll6.0.6001.18000/
> /user32.dllC:\Windows\System32\user32.dll6.0.6002.18005/
> /gdi32.dllC:\Windows\System32\gdi32.dll6.0.6002.19171/
>
> *3. Call Stack*
> / 00000000() /
> / user32.dll!76659ce4() /
> / [Frames below may be incorrect and/or missing, no symbols loaded
> for user32.dll] /
> / advapi32.dll!77b84158() /
> / advapi32.dll!77b840f6() /
> / advapi32.dll!77b8430d() /
> / ws2_32.dll!7670ab6d() /
> / ws2_32.dll!7670aa95() /
> / ws2_32.dll!7670a3b2() /
> / ws2_32.dll!7670ae3f() /
> / ws2_32.dll!7670ad7a() /
> / ws2_32.dll!7670acc3() /
> / ws2_32.dll!7670ac2b() /
> /
> boost_log-vc100-mt-gd-1_56.dll!boost::asio::detail::winsock_init_base::startup(boost::asio::detail::winsock_init_base::data
> & d, unsigned char major, unsigned char minor) Line 39 + 0x2d bytes C++/
> /
> boost_log-vc100-mt-gd-1_56.dll!boost::asio::detail::winsock_init<2,0>::winsock_init<2,0>(bool
> allow_throw) Line 57 + 0xe bytes C++/
> /> boost_log-vc100-mt-gd-1_56.dll!boost::asio::detail::`dynamic
> initializer for 'winsock_init_instance''() Line 116 + 0x1c bytes C++/
> / MSVCR100D.dll!_initterm(void (void)* * pfbegin, void (void)* *
> pfend) Line 873 C/
> / boost_log-vc100-mt-gd-1_56.dll!_CRT_INIT(void * hDllHandle,
> unsigned long dwReason, void * lpreserved) Line 284 + 0xf bytes C/
> / boost_log-vc100-mt-gd-1_56.dll!__DllMainCRTStartup(void *
> hDllHandle, unsigned long dwReason, void * lpreserved) Line 506 +
> 0x11 bytes C/
> / boost_log-vc100-mt-gd-1_56.dll!_DllMainCRTStartup(void *
> hDllHandle, unsigned long dwReason, void * lpreserved) Line 476 +
> 0x11 bytes C/
> / ntdll.dll!77a112f4() /
> / ntdll.dll!779f906b() /
> / ntdll.dll!77a016d2() /
> / ntdll.dll!779fbf5a() /
>
It seems wrong to initialize WinSock from |DllMain()| context. This is
WAG, but try using the manual initialization of ASIO/WinSock in
> ServiceMain()|. See the comment above |class manual|
<http://www.boost.org/doc/libs/1_56_0/boost/asio/detail/winsock_init.hpp>.
--
VZ
[Attachment #7 (text/html)]
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div markdown-here-wrapper-content-modified="true" style=""
class="markdown-here-wrapper" data-md-url="Thunderbird">
<p style="margin: 1.2em 0px ! important;">On 26.9.2014 09:26,
Pritesh Acharya wrote:</p>
<p style="margin: 1.2em 0px ! important;"></p>
<div class="markdown-here-exclude">
<p></p>
<blockquote
cite="mid:CACHJcDyU1y++SoLJtzvrHBURJaH33OKPaBtYPH54noRb5q_VJg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>Details:<br>
OS: Windows Server 2008 SP2<br>
Boost 1.56.0 (shared library)<br>
OpenSSL: Win32OpenSSL-1_0_1i<br>
<br>
</div>
I have a windows service application written in C++. As a
minimal test case, I have created a small demo code to show
the problem. The service just log some information to a file
and does nothing.
<div>
<div>The same code has no problem in my Development
machine(windows7) and window Server 2003. <br>
Also on Windows Server 2008, when the service is run as
LocalSystem privilege, it crashes, but when run as
Administrator it works.<br>
<br>
Additionally, when I remove the asio ssl header from the
code, it works. <br>
or when I remove the log header, it works. The problem
seems to be related to when ASIO ssl and LOG are used
together.</div>
</div>
<div><br>
Below I've included <br>
1. Code<br>
2. User Mode Crash dump <br>
3. Call Stack obtained from running Crash Dump<br>
<br>
</div>
<div><b>1. Code:</b><br>
<div><br>
</div>
<div>
<div><br>
</div>
<div><i>#include <boost/log/trivial.hpp></i></div>
<div><i>#include
<boost/log/sources/severity_logger.hpp></i></div>
<div><i>#include <boost/asio/ssl.hpp></i></div>
<div><i>#include <windows.h></i></div>
<div><i>#include <stdio.h></i></div>
<div><i><br>
</i></div>
<div><i>#define SLEEP_TIME 5000</i></div>
<div><i>#define LOGFILE
"C:\\AASSLInstaller_D_56\\memstatus.txt"</i></div>
<div><i><br>
</i></div>
<div><i>SERVICE_STATUS ServiceStatus; </i></div>
<div><i>SERVICE_STATUS_HANDLE hStatus; </i></div>
<div><i> </i></div>
<div><i>void ServiceMain(int argc, char** argv); </i></div>
<div><i>void ControlHandler(DWORD request); </i></div>
<div><i>int InitService();</i></div>
<div><i><br>
</i></div>
<div><i>int WriteToLog(char* str)</i></div>
<div><i>{</i></div>
<div><i> FILE* log;</i></div>
<div><i> log = fopen(LOGFILE, "a+");</i></div>
<div><i> if (log == NULL)</i></div>
<div><i> return -1;</i></div>
<div><i> fprintf(log, "%s\n", str);</i></div>
<div><i> fclose(log);</i></div>
<div><i> return 0;</i></div>
<div><i>}</i></div>
<div><i><br>
</i></div>
<div><i>//void ThreadFunction()</i></div>
<div><i>//{</i></div>
<div><i>// WriteToLog("at ThreadFunction");</i></div>
<div><i>// //std::cout << "hello World " <<
std::endl;</i></div>
<div><i>// //getchar();</i></div>
<div><i>//}</i></div>
<div><i><br>
</i></div>
<div><i>int main() </i></div>
<div><i>{ </i></div>
<div><i> using namespace boost::log::trivial; //for
logging</i></div>
<div><i> boost::log::sources::severity_logger_mt<
boost::log::trivial::severity_level > lg;</i></div>
<div><i> //WriteToLog("at main");</i></div>
<div><i> //return 1;</i></div>
<div><i> SERVICE_TABLE_ENTRY ServiceTable[2];</i></div>
<div><i> ServiceTable[0].lpServiceName =
"MemoryStatus";</i></div>
<div><i> ServiceTable[0].lpServiceProc =
(LPSERVICE_MAIN_FUNCTION)ServiceMain;</i></div>
<div><i><br>
</i></div>
<div><i> ServiceTable[1].lpServiceName = NULL;</i></div>
<div><i> ServiceTable[1].lpServiceProc = NULL;</i></div>
<div><i> // Start the control dispatcher thread for
our service</i></div>
<div><i> StartServiceCtrlDispatcher(ServiceTable); </i></div>
<div><i> return 0;</i></div>
<div><i>}</i></div>
<div><i><br>
</i></div>
<div><i><br>
</i></div>
<div><i>void ServiceMain(int argc, char** argv) </i></div>
<div><i>{ </i></div>
<div><i> int error; </i></div>
<div><i> </i></div>
<div><i> ServiceStatus.dwServiceType =
SERVICE_WIN32; </i></div>
<div><i> ServiceStatus.dwCurrentState =
SERVICE_START_PENDING; </i></div>
<div><i> ServiceStatus.dwControlsAccepted =
SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN;</i></div>
<div><i> ServiceStatus.dwWin32ExitCode = 0; </i></div>
<div><i> ServiceStatus.dwServiceSpecificExitCode =
0; </i></div>
<div><i> ServiceStatus.dwCheckPoint = 0; </i></div>
<div><i> ServiceStatus.dwWaitHint = 0; \
</i></div> <div><i> </i></div>
<div><i> hStatus = RegisterServiceCtrlHandler(</i></div>
<div><i> "MemoryStatus", </i></div>
<div><i> (LPHANDLER_FUNCTION)ControlHandler); </i></div>
<div><i> if (hStatus == (SERVICE_STATUS_HANDLE)0) </i></div>
<div><i> { </i></div>
<div><i> // Registering Control Handler failed</i></div>
<div><i> return; </i></div>
<div><i> } </i></div>
<div><i> // Initialize Service </i></div>
<div><i> //error = InitService(); </i></div>
<div><i> error = 0;</i></div>
<div><i> if (error) </i></div>
<div><i> {</i></div>
<div><i> // Initialization failed</i></div>
<div><i> ServiceStatus.dwCurrentState =
SERVICE_STOPPED; </i></div>
<div><i> ServiceStatus.dwWin32ExitCode =
-1; </i></div>
<div><i> SetServiceStatus(hStatus,
&ServiceStatus); </i></div>
<div><i> return; </i></div>
<div><i> } </i></div>
<div><i> // We report the running status to SCM. </i></div>
<div><i> ServiceStatus.dwCurrentState =
SERVICE_RUNNING; </i></div>
<div><i> SetServiceStatus (hStatus,
&ServiceStatus);</i></div>
<div><i> </i></div>
<div><i> MEMORYSTATUS memory;</i></div>
<div><i> // The worker loop of a service</i></div>
<div><i> //boost::thread t(&ThreadFunction);</i></div>
<div><i> while (ServiceStatus.dwCurrentState ==
SERVICE_RUNNING)</i></div>
<div><i> {</i></div>
<div><i> char buffer[16];</i></div>
<div><i> GlobalMemoryStatus(&memory);</i></div>
<div><i> sprintf(buffer, "%d", memory.dwAvailPhys);</i></div>
<div><i> int result = WriteToLog(buffer);</i></div>
<div><i> if (result)</i></div>
<div><i> {</i></div>
<div><i> ServiceStatus.dwCurrentState =
SERVICE_STOPPED; </i></div>
<div><i> ServiceStatus.dwWin32ExitCode = -1; </i></div>
<div><i> SetServiceStatus(hStatus,
&ServiceStatus);</i></div>
<div><i> return;</i></div>
<div><i> }</i></div>
<div><i><br>
</i></div>
<div><i> Sleep(SLEEP_TIME);</i></div>
<div><i> }</i></div>
<div><i> return; </i></div>
<div><i>}</i></div>
<div><i> </i></div>
<div><i>// Service initialization</i></div>
<div><i>int InitService() </i></div>
<div><i>{ </i></div>
<div><i> int result;</i></div>
<div><i> result = WriteToLog("Monitoring started.");</i></div>
<div><i> return(result); </i></div>
<div><i>} </i></div>
<div><i><br>
</i></div>
<div><i>// Control handler function</i></div>
<div><i>void ControlHandler(DWORD request) </i></div>
<div><i>{ </i></div>
<div><i> switch(request) </i></div>
<div><i> { </i></div>
<div><i> case SERVICE_CONTROL_STOP: </i></div>
<div><i> WriteToLog("Monitoring \
stopped.");</i></div> <div><i><br>
</i></div>
<div><i> ServiceStatus.dwWin32ExitCode = 0; \
</i></div> <div><i> ServiceStatus.dwCurrentState =
SERVICE_STOPPED; </i></div>
<div><i> SetServiceStatus (hStatus,
&ServiceStatus);</i></div>
<div><i> return; </i></div>
<div><i> </i></div>
<div><i> case SERVICE_CONTROL_SHUTDOWN: </i></div>
<div><i> WriteToLog("Monitoring \
stopped.");</i></div> <div><i><br>
</i></div>
<div><i> ServiceStatus.dwWin32ExitCode = 0; \
</i></div> <div><i> ServiceStatus.dwCurrentState =
SERVICE_STOPPED; </i></div>
<div><i> SetServiceStatus (hStatus,
&ServiceStatus);</i></div>
<div><i> return; </i></div>
<div><i> </i></div>
<div><i> default:</i></div>
<div><i> break;</i></div>
<div><i> } </i></div>
<div><i> </i></div>
<div><i> // Report current status</i></div>
<div><i> SetServiceStatus (hStatus,
&ServiceStatus);</i></div>
<div><i> </i></div>
<div><i> return; </i></div>
<div><i>} </i></div>
<div><i><br>
</i></div>
<div><b>2. Dump</b></div>
<div><br>
</div>
</div>
<div>
<div><br>
</div>
<div><i>Dump Summary</i></div>
<div><i>------------</i></div>
<div><i>Dump File:<span class="" style="white-space:pre">
</span>with_ssl_56.exe.4208.dmp :
C:\Dumps\with_ssl_56.exe.4208.dmp</i></div>
<div><i>Last Write Time:<span class=""
style="white-space:pre"> </span>9/26/2014
11:59:38 AM</i></div>
<div><i>Process Name:<span class=""
style="white-space:pre"> </span>with_ssl_56.exe :
C:\lpa_c\wix_for_service\build_win\src\with_ssl_56\Debug\with_ssl_56.exe</i></div>
<div><i>Process Architecture:<span class=""
style="white-space:pre"> </span>x86</i></div>
<div><i>Exception Code:<span class=""
style="white-space:pre"> </span>0xC0000005</i></div>
<div><i>Exception Information:<span class=""
style="white-space:pre"> </span>The thread tried
to read from or write to a virtual address for which
it does not have the appropriate access.</i></div>
<div><i>Heap Information:<span class=""
style="white-space:pre"> </span>Not Present</i></div>
<div><i><br>
</i></div>
<div><i>System Information</i></div>
<div><i>------------------</i></div>
<div><i>OS Version:<span class=""
style="white-space:pre"> </span>6.0.6002</i></div>
<div><i>CLR Version(s):<span class=""
style="white-space:pre"> </span></i></div>
<div><i><br>
</i></div>
<div><i>Modules</i></div>
<div><i>-------</i></div>
<div><i>Module Name<span class=""
style="white-space:pre"> </span>Module Path<span
class="" style="white-space:pre"> </span>Module
Version</i></div>
<div><i>-----------<span class=""
style="white-space:pre"> </span>-----------<span
class="" style="white-space:pre"> \
</span>--------------</i></div> <div><i>with_ssl_56.exe<span class=""
style="white-space:pre"> \
</span>C:\lpa_c\wix_for_service\build_win\src\with_ssl_56\Debug\with_ssl_56.exe<span
class="" style="white-space:pre"> </span>0.0.0.0</i></div>
<div><i>ntdll.dll<span class="" style="white-space:pre">
</span>C:\Windows\System32\ntdll.dll<span class=""
style="white-space:pre"> </span>6.0.6002.18881</i></div>
<div><i>kernel32.dll<span class=""
style="white-space:pre"> \
</span>C:\Windows\System32\kernel32.dll<span
class="" style="white-space:pre"> \
</span>6.0.6002.19034</i></div> <div><i>advapi32.dll<span class=""
style="white-space:pre"> \
</span>C:\Windows\System32\advapi32.dll<span
class="" style="white-space:pre"> \
</span>6.0.6002.18005</i></div> <div><i>rpcrt4.dll<span class="" \
style="white-space:pre"> </span>C:\Windows\System32\rpcrt4.dll<span class=""
style="white-space:pre"> </span>6.0.6002.18882</i></div>
<div><i>boost_log-vc100-mt-gd-1_56.dll<span class=""
style="white-space:pre"> \
</span>C:\boost_1_56_0_dyn\stage\lib\boost_log-vc100-mt-gd-1_56.dll<span
class="" style="white-space:pre"> </span>0.0.0.0</i></div>
<div><i>boost_date_time-vc100-mt-gd-1_56.dll<span
class="" style="white-space:pre"> \
</span>C:\boost_1_56_0_dyn\stage\lib\boost_date_time-vc100-mt-gd-1_56.dll<span
class="" style="white-space:pre"> </span>0.0.0.0</i></div>
<div><i>MSVCP100D.dll<span class=""
style="white-space:pre"> \
</span>C:\Windows\System32\MSVCP100D.dll<span
class="" style="white-space:pre"> </span>10.0.30319.1</i></div>
<div><i>MSVCR100D.dll<span class=""
style="white-space:pre"> \
</span>C:\Windows\System32\MSVCR100D.dll<span
class="" style="white-space:pre"> </span>10.0.30319.1</i></div>
<div><i>boost_system-vc100-mt-gd-1_56.dll<span class=""
style="white-space:pre"> \
</span>C:\boost_1_56_0_dyn\stage\lib\boost_system-vc100-mt-gd-1_56.dll<span
class="" style="white-space:pre"> </span>0.0.0.0</i></div>
<div><i>boost_filesystem-vc100-mt-gd-1_56.dll<span
class="" style="white-space:pre"> \
</span>C:\boost_1_56_0_dyn\stage\lib\boost_filesystem-vc100-mt-gd-1_56.dll<span
class="" style="white-space:pre"> </span>0.0.0.0</i></div>
<div><i>boost_chrono-vc100-mt-gd-1_56.dll<span class=""
style="white-space:pre"> \
</span>C:\boost_1_56_0_dyn\stage\lib\boost_chrono-vc100-mt-gd-1_56.dll<span
class="" style="white-space:pre"> </span>0.0.0.0</i></div>
<div><i>boost_thread-vc100-mt-gd-1_56.dll<span class=""
style="white-space:pre"> \
</span>C:\boost_1_56_0_dyn\stage\lib\boost_thread-vc100-mt-gd-1_56.dll<span
class="" style="white-space:pre"> </span>0.0.0.0</i></div>
<div><i>psapi.dll<span class="" style="white-space:pre">
</span>C:\Windows\System32\psapi.dll<span class=""
style="white-space:pre"> </span>6.0.6000.16386</i></div>
<div><i>ws2_32.dll<span class="" style="white-space:pre">
</span>C:\Windows\System32\ws2_32.dll<span class=""
style="white-space:pre"> </span>6.0.6001.18000</i></div>
<div><i>msvcrt.dll<span class="" style="white-space:pre">
</span>C:\Windows\System32\msvcrt.dll<span class=""
style="white-space:pre"> </span>7.0.6002.18551</i></div>
<div><i>nsi.dll<span class="" style="white-space:pre"> \
</span>C:\Windows\System32\nsi.dll<span
class="" style="white-space:pre"> \
</span>6.0.6001.18000</i></div> <div><i>user32.dll<span class="" \
style="white-space:pre"> </span>C:\Windows\System32\user32.dll<span class=""
style="white-space:pre"> </span>6.0.6002.18005</i></div>
<div><i>gdi32.dll<span class="" style="white-space:pre">
</span>C:\Windows\System32\gdi32.dll<span class=""
style="white-space:pre"> </span>6.0.6002.19171</i></div>
</div>
</div>
<div><br>
<b>3. Call Stack</b><br>
<div style=""><i> 00000000() </i></div>
<div style=""><i> user32.dll!76659ce4() </i></div>
<div style=""><i> [Frames below may be incorrect and/or
missing, no symbols loaded for user32.dll] </i></div>
<div style=""><i> advapi32.dll!77b84158() </i></div>
<div style=""><i> advapi32.dll!77b840f6() </i></div>
<div style=""><i> advapi32.dll!77b8430d() </i></div>
<div style=""><i> ws2_32.dll!7670ab6d() </i></div>
<div style=""><i> ws2_32.dll!7670aa95() </i></div>
<div style=""><i> ws2_32.dll!7670a3b2() </i></div>
<div style=""><i> ws2_32.dll!7670ae3f() </i></div>
<div style=""><i> ws2_32.dll!7670ad7a() </i></div>
<div style=""><i> ws2_32.dll!7670acc3() </i></div>
<div style=""><i> ws2_32.dll!7670ac2b() </i></div>
<div style=""><i>
boost_log-vc100-mt-gd-1_56.dll!boost::asio::detail::winsock_init_base::startup(boost::asio::detail::winsock_init_base::data
& d, unsigned char major, unsigned char minor)
Line 39 + 0x2d bytes C++</i></div>
<div style=""><i>
boost_log-vc100-mt-gd-1_56.dll!boost::asio::detail::winsock_init<2,0>::winsock_init<2,0>(bool
allow_throw) Line 57 + 0xe bytes C++</i></div>
<div style=""><i>>
boost_log-vc100-mt-gd-1_56.dll!boost::asio::detail::`dynamic
initializer for 'winsock_init_instance''() Line 116 +
0x1c bytes C++</i></div>
<div style=""><i> MSVCR100D.dll!_initterm(void (void)* *
pfbegin, void (void)* * pfend) Line 873 C</i></div>
<div style=""><i>
boost_log-vc100-mt-gd-1_56.dll!_CRT_INIT(void *
hDllHandle, unsigned long dwReason, void * lpreserved)
Line 284 + 0xf bytes C</i></div>
<div style=""><i>
boost_log-vc100-mt-gd-1_56.dll!__DllMainCRTStartup(void
* hDllHandle, unsigned long dwReason, void *
lpreserved) Line 506 + 0x11 bytes C</i></div>
<div style=""><i>
boost_log-vc100-mt-gd-1_56.dll!_DllMainCRTStartup(void
* hDllHandle, unsigned long dwReason, void *
lpreserved) Line 476 + 0x11 bytes C</i></div>
<div style=""><i> ntdll.dll!77a112f4() </i></div>
<div style=""><i> ntdll.dll!779f906b() </i></div>
<div style=""><i> ntdll.dll!77a016d2() </i></div>
<div style=""><i> ntdll.dll!779fbf5a() </i></div>
</div>
</div>
<br>
</blockquote>
<p></p>
</div>
<p style="margin: 1.2em 0px ! important;"></p>
<p style="margin: 1.2em 0px ! important;">It seems wrong to
initialize WinSock from <code style="font-size: 0.85em;
font-family: Consolas,Inconsolata,Courier,monospace;margin:
0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border:
1px solid rgb(234, 234, 234); background-color: rgb(248, 248,
248); border-radius: 3px; display: inline;">DllMain()</code>
context. This is WAG, but try using the manual initialization of
ASIO/WinSock in <code style="font-size: 0.85em; font-family:
Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em;
padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid
rgb(234, 234, 234); background-color: rgb(248, 248, 248);
border-radius: 3px; display: inline;">ServiceMain()</code>.
See the <a
href="http://www.boost.org/doc/libs/1_56_0/boost/asio/detail/winsock_init.hpp">comment
above <code style="font-size: 0.85em; font-family:
Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em;
padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid
rgb(234, 234, 234); background-color: rgb(248, 248, 248);
border-radius: 3px; display: inline;">class manual</code></a>.<br>
</p>
<p style="margin: 1.2em 0px ! important;">-- <br>
VZ<br>
<br>
</p>
<div
title="MDH:PGRpdiBjbGFzcz0ibW96LWNpdGUtcHJlZml4Ij5PbiAyNi45LjIwMTQgMDk6MjYsIFByaXRlc2ggQWNoYXJ5YSB3cm90ZTo8YnI+PC9kaXY+PGJsb2NrcXVvdGUgY2l0ZT0ibWlkOkNBQ0hKY0R5VTF5
KytTb0xKdHp2ckhCVVJKYUgzM09LUGFCdFlQSDU0bm9SYjVxX1ZKZ0BtYWlsLmdtYWlsLmNvbSIg
dHlwZT0iY2l0ZSI+PGRpdiBkaXI9Imx0ciI+PGRpdj5EZXRhaWxzOjxicj5PUzogV2luZG93cyBT
ZXJ2ZXIgMjAwOCBTUDI8YnI+Qm9vc3QgMS41Ni4wIChzaGFyZWQgbGlicmFyeSk8YnI+T3BlblNT
TDombmJzcDtXaW4zMk9wZW5TU0wtMV8wXzFpPGJyPjxicj48L2Rpdj5JIGhhdmUgYSB3aW5kb3dz
IHNlcnZpY2UgYXBwbGljYXRpb24gd3JpdHRlbiBpbiBDKysuIEFzIGEgbWluaW1hbCB0ZXN0IGNh
c2UsIEkgaGF2ZSBjcmVhdGVkIGEgc21hbGwgZGVtbyBjb2RlIHRvIHNob3cgdGhlIHByb2JsZW0u
IFRoZSBzZXJ2aWNlIGp1c3QgbG9nIHNvbWUgaW5mb3JtYXRpb24gdG8gYSBmaWxlIGFuZCBkb2Vz
IG5vdGhpbmcuPGRpdj48ZGl2PlRoZSBzYW1lIGNvZGUgaGFzIG5vIHByb2JsZW0gaW4gbXkgRGV2
ZWxvcG1lbnQgbWFjaGluZSh3aW5kb3dzNykgYW5kIHdpbmRvdyBTZXJ2ZXIgMjAwMy4gPGJyPkFs
c28gb24gV2luZG93cyBTZXJ2ZXIgMjAwOCwgd2hlbiB0aGUgc2VydmljZSBpcyBydW4gYXMgTG9j
YWxTeXN0ZW0gcHJpdmlsZWdlLCBpdCBjcmFzaGVzLCBidXQgd2hlbiBydW4gYXMgQWRtaW5pc3Ry
YXRvciBpdCB3b3Jrcy48YnI+PGJyPkFkZGl0aW9uYWxseSwgd2hlbiBJIHJlbW92ZSB0aGUgYXNp
byBzc2wgaGVhZGVyIGZyb20gdGhlIGNvZGUsIGl0IHdvcmtzLiZuYnNwOzxicj5vciB3aGVuIEkg
cmVtb3ZlIHRoZSBsb2cgaGVhZGVyLCBpdCB3b3Jrcy4gVGhlIHByb2JsZW0gc2VlbXMgdG8gYmUg
cmVsYXRlZCB0byB3aGVuIEFTSU8gc3NsIGFuZCBMT0cgYXJlIHVzZWQgdG9nZXRoZXIuPC9kaXY+
PC9kaXY+PGRpdj48YnI+QmVsb3cgSSd2ZSBpbmNsdWRlZCZuYnNwOzxicj4xLiBDb2RlPGJyPjIu
IFVzZXIgTW9kZSBDcmFzaCBkdW1wJm5ic3A7PGJyPjMuIENhbGwgU3RhY2sgb2J0YWluZWQgZnJv
bSBydW5uaW5nIENyYXNoIER1bXA8YnI+PGJyPjwvZGl2PjxkaXY+PGI+MS4gQ29kZTo8L2I+PGJy
PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGRpdj48YnI+PC9kaXY+PGRpdj48aT4jaW5jbHVkZSAmbHQ7
Ym9vc3QvbG9nL3RyaXZpYWwuaHBwJmd0OzwvaT48L2Rpdj48ZGl2PjxpPiNpbmNsdWRlICZsdDti
b29zdC9sb2cvc291cmNlcy9zZXZlcml0eV9sb2dnZXIuaHBwJmd0OzwvaT48L2Rpdj48ZGl2Pjxp
PiNpbmNsdWRlICZsdDtib29zdC9hc2lvL3NzbC5ocHAmZ3Q7PC9pPjwvZGl2PjxkaXY+PGk+I2lu
Y2x1ZGUgJmx0O3dpbmRvd3MuaCZndDs8L2k+PC9kaXY+PGRpdj48aT4jaW5jbHVkZSAmbHQ7c3Rk
aW8uaCZndDs8L2k+PC9kaXY+PGRpdj48aT48YnI+PC9pPjwvZGl2PjxkaXY+PGk+I2RlZmluZSBT
TEVFUF9USU1FIDUwMDA8L2k+PC9kaXY+PGRpdj48aT4jZGVmaW5lIExPR0ZJTEUgIkM6XFxBQVNT
TEluc3RhbGxlcl9EXzU2XFxtZW1zdGF0dXMudHh0IjwvaT48L2Rpdj48ZGl2PjxpPjxicj48L2k+
PC9kaXY+PGRpdj48aT5TRVJWSUNFX1NUQVRVUyBTZXJ2aWNlU3RhdHVzOyZuYnNwOzwvaT48L2Rp
dj48ZGl2PjxpPlNFUlZJQ0VfU1RBVFVTX0hBTkRMRSBoU3RhdHVzOyZuYnNwOzwvaT48L2Rpdj48
ZGl2PjxpPiZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPnZvaWQgJm5ic3A7U2VydmljZU1haW4oaW50
IGFyZ2MsIGNoYXIqKiBhcmd2KTsmbmJzcDs8L2k+PC9kaXY+PGRpdj48aT52b2lkICZuYnNwO0Nv
bnRyb2xIYW5kbGVyKERXT1JEIHJlcXVlc3QpOyZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPmludCBJ
bml0U2VydmljZSgpOzwvaT48L2Rpdj48ZGl2PjxpPjxicj48L2k+PC9kaXY+PGRpdj48aT5pbnQg
V3JpdGVUb0xvZyhjaGFyKiBzdHIpPC9pPjwvZGl2PjxkaXY+PGk+ezwvaT48L2Rpdj48ZGl2Pjxp
PiZuYnNwOyAmbmJzcDsgRklMRSogbG9nOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwO2xvZyA9IGZv
cGVuKExPR0ZJTEUsICJhKyIpOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwO2lmIChsb2cgPT0gTlVM
TCk8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgcmV0dXJuIC0xOzwvaT48L2Rpdj48ZGl2PjxpPiZu
YnNwO2ZwcmludGYobG9nLCAiJXNcbiIsIHN0cik7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ZmNs
b3NlKGxvZyk7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7cmV0dXJuIDA7PC9pPjwvZGl2PjxkaXY+
PGk+fTwvaT48L2Rpdj48ZGl2PjxpPjxicj48L2k+PC9kaXY+PGRpdj48aT4vL3ZvaWQgVGhyZWFk
RnVuY3Rpb24oKTwvaT48L2Rpdj48ZGl2PjxpPi8vezwvaT48L2Rpdj48ZGl2PjxpPi8vIFdyaXRl
VG9Mb2coImF0IFRocmVhZEZ1bmN0aW9uIik7PC9pPjwvZGl2PjxkaXY+PGk+Ly8gLy9zdGQ6OmNv
dXQgJmx0OyZsdDsgImhlbGxvIFdvcmxkICIgJmx0OyZsdDsgc3RkOjplbmRsOzwvaT48L2Rpdj48
ZGl2PjxpPi8vIC8vZ2V0Y2hhcigpOzwvaT48L2Rpdj48ZGl2PjxpPi8vfTwvaT48L2Rpdj48ZGl2
PjxpPjxicj48L2k+PC9kaXY+PGRpdj48aT5pbnQgbWFpbigpJm5ic3A7PC9pPjwvZGl2PjxkaXY+
PGk+eyZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwO3VzaW5nIG5hbWVzcGFjZSBib29zdDo6
bG9nOjp0cml2aWFsOyAvL2ZvciBsb2dnaW5nPC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7Ym9vc3Q6
OmxvZzo6c291cmNlczo6c2V2ZXJpdHlfbG9nZ2VyX210Jmx0OyBib29zdDo6bG9nOjp0cml2aWFs
OjpzZXZlcml0eV9sZXZlbCAmZ3Q7IGxnOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOy8vV3JpdGVU
b0xvZygiYXQgbWFpbiIpOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOy8vcmV0dXJuIDE7PC9pPjwv
ZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyBTRVJWSUNFX1RBQkxFX0VOVFJZIFNlcnZpY2VUYWJs
ZVsyXTs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7IFNlcnZpY2VUYWJsZVswXS5scFNl
cnZpY2VOYW1lID0gIk1lbW9yeVN0YXR1cyI7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNw
OyBTZXJ2aWNlVGFibGVbMF0ubHBTZXJ2aWNlUHJvYyA9IChMUFNFUlZJQ0VfTUFJTl9GVU5DVElP
TilTZXJ2aWNlTWFpbjs8L2k+PC9kaXY+PGRpdj48aT48YnI+PC9pPjwvZGl2PjxkaXY+PGk+Jm5i
c3A7ICZuYnNwOyBTZXJ2aWNlVGFibGVbMV0ubHBTZXJ2aWNlTmFtZSA9IE5VTEw7PC9pPjwvZGl2
PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyBTZXJ2aWNlVGFibGVbMV0ubHBTZXJ2aWNlUHJvYyA9IE5V
TEw7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyAvLyBTdGFydCB0aGUgY29udHJvbCBk
aXNwYXRjaGVyIHRocmVhZCBmb3Igb3VyIHNlcnZpY2U8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsg
Jm5ic3A7IFN0YXJ0U2VydmljZUN0cmxEaXNwYXRjaGVyKFNlcnZpY2VUYWJsZSk7ICZuYnNwOzwv
aT48L2Rpdj48ZGl2PjxpPiZuYnNwO3JldHVybiAwOzwvaT48L2Rpdj48ZGl2PjxpPn08L2k+PC9k
aXY+PGRpdj48aT48YnI+PC9pPjwvZGl2PjxkaXY+PGk+PGJyPjwvaT48L2Rpdj48ZGl2PjxpPnZv
aWQgU2VydmljZU1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSZuYnNwOzwvaT48L2Rpdj48ZGl2
PjxpPnsmbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7IGludCBlcnJvcjsmbmJz
cDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7
IFNlcnZpY2VTdGF0dXMuZHdTZXJ2aWNlVHlwZSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs9
IFNFUlZJQ0VfV0lOMzI7Jm5ic3A7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyBTZXJ2
aWNlU3RhdHVzLmR3Q3VycmVudFN0YXRlICZuYnNwOyAmbmJzcDsgJm5ic3A7ID0gU0VSVklDRV9T
VEFSVF9QRU5ESU5HOyZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgU2Vydmlj
ZVN0YXR1cy5kd0NvbnRyb2xzQWNjZXB0ZWQgJm5ic3A7ID0gU0VSVklDRV9BQ0NFUFRfU1RPUCB8
IFNFUlZJQ0VfQUNDRVBUX1NIVVRET1dOOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsg
U2VydmljZVN0YXR1cy5kd1dpbjMyRXhpdENvZGUgJm5ic3A7ICZuYnNwOyAmbmJzcDs9IDA7Jm5i
c3A7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyBTZXJ2aWNlU3RhdHVzLmR3U2Vydmlj
ZVNwZWNpZmljRXhpdENvZGUgPSAwOyZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJz
cDsgU2VydmljZVN0YXR1cy5kd0NoZWNrUG9pbnQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ID0gMDsmbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7IFNlcnZpY2VTdGF0dXMu
ZHdXYWl0SGludCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ID0gMDsmbmJzcDs8
L2k+PC9kaXY+PGRpdj48aT4mbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7IGhT
dGF0dXMgPSBSZWdpc3RlclNlcnZpY2VDdHJsSGFuZGxlcig8L2k+PC9kaXY+PGRpdj48aT4mbmJz
cDsgIk1lbW9yeVN0YXR1cyIsJm5ic3A7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7IChMUEhBTkRM
RVJfRlVOQ1RJT04pQ29udHJvbEhhbmRsZXIpOyZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNw
OyAmbmJzcDsgaWYgKGhTdGF0dXMgPT0gKFNFUlZJQ0VfU1RBVFVTX0hBTkRMRSkwKSZuYnNwOzwv
aT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgeyZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAvLyBSZWdpc3RlcmluZyBDb250cm9sIEhhbmRsZXIg
ZmFpbGVkPC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHJldHVy
bjsmbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7IH0gJm5ic3A7PC9pPjwvZGl2
PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyAvLyBJbml0aWFsaXplIFNlcnZpY2UmbmJzcDs8L2k+PC9k
aXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7IC8vZXJyb3IgPSBJbml0U2VydmljZSgpOyZuYnNwOzwv
aT48L2Rpdj48ZGl2PjxpPiZuYnNwO2Vycm9yID0gMDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsg
Jm5ic3A7IGlmIChlcnJvcikmbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7IHs8
L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgLy8gSW5pdGlhbGl6YXRpb24gZmFpbGVkPC9pPjwvZGl2
PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFNlcnZpY2VTdGF0dXMuZHdDdXJy
ZW50U3RhdGUgJm5ic3A7ICZuYnNwOyAmbmJzcDsgPSBTRVJWSUNFX1NUT1BQRUQ7Jm5ic3A7PC9p
PjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFNlcnZpY2VTdGF0dXMu
ZHdXaW4zMkV4aXRDb2RlICZuYnNwOyAmbmJzcDsgJm5ic3A7PSAtMTsmbmJzcDs8L2k+PC9kaXY+
PGRpdj48aT4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgU2V0U2VydmljZVN0YXR1cyhoU3Rh
dHVzLCAmYW1wO1NlcnZpY2VTdGF0dXMpOyZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyByZXR1cm47Jm5ic3A7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7
ICZuYnNwOyB9Jm5ic3A7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyAvLyBXZSByZXBv
cnQgdGhlIHJ1bm5pbmcgc3RhdHVzIHRvIFNDTS4mbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4mbmJz
cDsgJm5ic3A7IFNlcnZpY2VTdGF0dXMuZHdDdXJyZW50U3RhdGUgPSBTRVJWSUNFX1JVTk5JTkc7
Jm5ic3A7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyBTZXRTZXJ2aWNlU3RhdHVzICho
U3RhdHVzLCAmYW1wO1NlcnZpY2VTdGF0dXMpOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOzwvaT48
L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgTUVNT1JZU1RBVFVTIG1lbW9yeTs8L2k+PC9kaXY+
PGRpdj48aT4mbmJzcDsgJm5ic3A7IC8vIFRoZSB3b3JrZXIgbG9vcCBvZiBhIHNlcnZpY2U8L2k+
PC9kaXY+PGRpdj48aT4mbmJzcDsvL2Jvb3N0Ojp0aHJlYWQgdCgmYW1wO1RocmVhZEZ1bmN0aW9u
KTs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7IHdoaWxlIChTZXJ2aWNlU3RhdHVzLmR3
Q3VycmVudFN0YXRlID09IFNFUlZJQ0VfUlVOTklORyk8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDt7
PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7IGNoYXIgYnVmZmVyWzE2XTs8L2k+PC9kaXY+PGRpdj48
aT4mbmJzcDsgR2xvYmFsTWVtb3J5U3RhdHVzKCZhbXA7bWVtb3J5KTs8L2k+PC9kaXY+PGRpdj48
aT4mbmJzcDsgc3ByaW50ZihidWZmZXIsICIlZCIsIG1lbW9yeS5kd0F2YWlsUGh5cyk7PC9pPjwv
ZGl2PjxkaXY+PGk+Jm5ic3A7IGludCByZXN1bHQgPSBXcml0ZVRvTG9nKGJ1ZmZlcik7PC9pPjwv
ZGl2PjxkaXY+PGk+Jm5ic3A7IGlmIChyZXN1bHQpPC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7IHs8
L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7U2VydmljZVN0YXR1cy5kd0N1cnJlbnRTdGF0
ZSAmbmJzcDsgJm5ic3A7ICZuYnNwOyA9IFNFUlZJQ0VfU1RPUFBFRDsmbmJzcDs8L2k+PC9kaXY+
PGRpdj48aT4mbmJzcDsgJm5ic3A7U2VydmljZVN0YXR1cy5kd1dpbjMyRXhpdENvZGUgJm5ic3A7
ICZuYnNwOyAmbmJzcDs9IC0xOyZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDtT
ZXRTZXJ2aWNlU3RhdHVzKGhTdGF0dXMsICZhbXA7U2VydmljZVN0YXR1cyk7PC9pPjwvZGl2Pjxk
aXY+PGk+Jm5ic3A7ICZuYnNwO3JldHVybjs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgfTwvaT48
L2Rpdj48ZGl2PjxpPjxicj48L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgU2xlZXAoU0xFRVBfVElN
RSk7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7fTwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyByZXR1
cm47Jm5ic3A7PC9pPjwvZGl2PjxkaXY+PGk+fTwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOzwvaT48
L2Rpdj48ZGl2PjxpPi8vIFNlcnZpY2UgaW5pdGlhbGl6YXRpb248L2k+PC9kaXY+PGRpdj48aT5p
bnQgSW5pdFNlcnZpY2UoKSZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPnsmbmJzcDs8L2k+PC9kaXY+
PGRpdj48aT4mbmJzcDsgJm5ic3A7IGludCByZXN1bHQ7PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7
ICZuYnNwOyByZXN1bHQgPSBXcml0ZVRvTG9nKCJNb25pdG9yaW5nIHN0YXJ0ZWQuIik7PC9pPjwv
ZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyByZXR1cm4ocmVzdWx0KTsmbmJzcDs8L2k+PC9kaXY+
PGRpdj48aT59Jm5ic3A7PC9pPjwvZGl2PjxkaXY+PGk+PGJyPjwvaT48L2Rpdj48ZGl2PjxpPi8v
IENvbnRyb2wgaGFuZGxlciBmdW5jdGlvbjwvaT48L2Rpdj48ZGl2PjxpPnZvaWQgQ29udHJvbEhh
bmRsZXIoRFdPUkQgcmVxdWVzdCkmbmJzcDs8L2k+PC9kaXY+PGRpdj48aT57Jm5ic3A7PC9pPjwv
ZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyBzd2l0Y2gocmVxdWVzdCkmbmJzcDs8L2k+PC9kaXY+
PGRpdj48aT4mbmJzcDsgJm5ic3A7IHsmbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4mbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgY2FzZSBTRVJWSUNFX0NPTlRST0xfU1RPUDombmJzcDs8L2k+PC9k
aXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDtXcml0ZVRvTG9nKCJNb25pdG9yaW5nIHN0b3BwZWQuIik7PC9pPjwvZGl2PjxkaXY+PGk+PGJy
PjwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7IFNlcnZpY2VTdGF0dXMuZHdXaW4zMkV4aXRDb2RlID0gMDsmbmJzcDs8L2k+PC9kaXY+PGRp
dj48aT4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBTZXJ2aWNlU3Rh
dHVzLmR3Q3VycmVudFN0YXRlICZuYnNwOz0gU0VSVklDRV9TVE9QUEVEOyZuYnNwOzwvaT48L2Rp
dj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFNldFNl
cnZpY2VTdGF0dXMgKGhTdGF0dXMsICZhbXA7U2VydmljZVN0YXR1cyk7PC9pPjwvZGl2PjxkaXY+
PGk+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgcmV0dXJuOyZuYnNw
OzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyBjYXNlIFNFUlZJQ0VfQ09OVFJPTF9TSFVURE9XTjombmJzcDs8L2k+PC9k
aXY+PGRpdj48aT4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBXcml0
ZVRvTG9nKCJNb25pdG9yaW5nIHN0b3BwZWQuIik7PC9pPjwvZGl2PjxkaXY+PGk+PGJyPjwvaT48
L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFNl
cnZpY2VTdGF0dXMuZHdXaW4zMkV4aXRDb2RlID0gMDsmbmJzcDs8L2k+PC9kaXY+PGRpdj48aT4m
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBTZXJ2aWNlU3RhdHVzLmR3
Q3VycmVudFN0YXRlICZuYnNwOz0gU0VSVklDRV9TVE9QUEVEOyZuYnNwOzwvaT48L2Rpdj48ZGl2
PjxpPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFNldFNlcnZpY2VT
dGF0dXMgKGhTdGF0dXMsICZhbXA7U2VydmljZVN0YXR1cyk7PC9pPjwvZGl2PjxkaXY+PGk+Jm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgcmV0dXJuOyZuYnNwOzwvaT48
L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOzwvaT48L2Rpdj48
ZGl2PjxpPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBkZWZhdWx0OjwvaT48L2Rpdj48ZGl2
PjxpPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGJyZWFrOzwvaT48
L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgfSZuYnNwOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNw
OzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgLy8gUmVwb3J0IGN1cnJlbnQgc3RhdHVz
PC9pPjwvZGl2PjxkaXY+PGk+Jm5ic3A7ICZuYnNwOyBTZXRTZXJ2aWNlU3RhdHVzIChoU3RhdHVz
LCAmbmJzcDsmYW1wO1NlcnZpY2VTdGF0dXMpOzwvaT48L2Rpdj48ZGl2PjxpPiZuYnNwOzwvaT48
L2Rpdj48ZGl2PjxpPiZuYnNwOyAmbmJzcDsgcmV0dXJuOyZuYnNwOzwvaT48L2Rpdj48ZGl2Pjxp
Pn0mbmJzcDs8L2k+PC9kaXY+PGRpdj48aT48YnI+PC9pPjwvZGl2PjxkaXY+PGI+Mi4gRHVtcDwv
Yj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48L2Rpdj48ZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGk+
RHVtcCBTdW1tYXJ5PC9pPjwvZGl2PjxkaXY+PGk+LS0tLS0tLS0tLS0tPC9pPjwvZGl2PjxkaXY+
PGk+RHVtcCBGaWxlOjxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3Nw
YW4+d2l0aF9zc2xfNTYuZXhlLjQyMDguZG1wIDogQzpcRHVtcHNcd2l0aF9zc2xfNTYuZXhlLjQy
MDguZG1wPC9pPjwvZGl2PjxkaXY+PGk+TGFzdCBXcml0ZSBUaW1lOjxzcGFuIGNsYXNzPSIiIHN0
eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+OS8yNi8yMDE0IDExOjU5OjM4IEFNPC9pPjwv
ZGl2PjxkaXY+PGk+UHJvY2VzcyBOYW1lOjxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFj
ZTpwcmUiPgk8L3NwYW4+d2l0aF9zc2xfNTYuZXhlIDogQzpcbHBhX2Ncd2l4X2Zvcl9zZXJ2aWNl
XGJ1aWxkX3dpblxzcmNcd2l0aF9zc2xfNTZcRGVidWdcd2l0aF9zc2xfNTYuZXhlPC9pPjwvZGl2
PjxkaXY+PGk+UHJvY2VzcyBBcmNoaXRlY3R1cmU6PHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRl
LXNwYWNlOnByZSI+CTwvc3Bhbj54ODY8L2k+PC9kaXY+PGRpdj48aT5FeGNlcHRpb24gQ29kZTo8
c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPjB4QzAwMDAwMDU8
L2k+PC9kaXY+PGRpdj48aT5FeGNlcHRpb24gSW5mb3JtYXRpb246PHNwYW4gY2xhc3M9IiIgc3R5
bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5UaGUgdGhyZWFkIHRyaWVkIHRvIHJlYWQgZnJv
bSBvciB3cml0ZSB0byBhIHZpcnR1YWwgYWRkcmVzcyBmb3Igd2hpY2ggaXQgZG9lcyBub3QgaGF2
ZSB0aGUgYXBwcm9wcmlhdGUgYWNjZXNzLjwvaT48L2Rpdj48ZGl2PjxpPkhlYXAgSW5mb3JtYXRp
b246PHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5Ob3QgUHJl
c2VudDwvaT48L2Rpdj48ZGl2PjxpPjxicj48L2k+PC9kaXY+PGRpdj48aT5TeXN0ZW0gSW5mb3Jt
YXRpb248L2k+PC9kaXY+PGRpdj48aT4tLS0tLS0tLS0tLS0tLS0tLS08L2k+PC9kaXY+PGRpdj48
aT5PUyBWZXJzaW9uOjxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3Nw
YW4+Ni4wLjYwMDI8L2k+PC9kaXY+PGRpdj48aT5DTFIgVmVyc2lvbihzKTo8c3BhbiBjbGFzcz0i
IiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPjwvaT48L2Rpdj48ZGl2PjxpPjxicj48
L2k+PC9kaXY+PGRpdj48aT5Nb2R1bGVzPC9pPjwvZGl2PjxkaXY+PGk+LS0tLS0tLTwvaT48L2Rp
dj48ZGl2PjxpPk1vZHVsZSBOYW1lPHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnBy
ZSI+CTwvc3Bhbj5Nb2R1bGUgUGF0aDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw
cmUiPgk8L3NwYW4+TW9kdWxlIFZlcnNpb248L2k+PC9kaXY+PGRpdj48aT4tLS0tLS0tLS0tLTxz
cGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+LS0tLS0tLS0tLS08
c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPi0tLS0tLS0tLS0t
LS0tPC9pPjwvZGl2PjxkaXY+PGk+d2l0aF9zc2xfNTYuZXhlPHNwYW4gY2xhc3M9IiIgc3R5bGU9
IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5DOlxscGFfY1x3aXhfZm9yX3NlcnZpY2VcYnVpbGRf
d2luXHNyY1x3aXRoX3NzbF81NlxEZWJ1Z1x3aXRoX3NzbF81Ni5leGU8c3BhbiBjbGFzcz0iIiBz
dHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPjAuMC4wLjA8L2k+PC9kaXY+PGRpdj48aT5u
dGRsbC5kbGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPkM6
XFdpbmRvd3NcU3lzdGVtMzJcbnRkbGwuZGxsPHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNw
YWNlOnByZSI+CTwvc3Bhbj42LjAuNjAwMi4xODg4MTwvaT48L2Rpdj48ZGl2PjxpPmtlcm5lbDMy
LmRsbDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+QzpcV2lu
ZG93c1xTeXN0ZW0zMlxrZXJuZWwzMi5kbGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUtc3Bh
Y2U6cHJlIj4JPC9zcGFuPjYuMC42MDAyLjE5MDM0PC9pPjwvZGl2PjxkaXY+PGk+YWR2YXBpMzIu
ZGxsPHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5DOlxXaW5k
b3dzXFN5c3RlbTMyXGFkdmFwaTMyLmRsbDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFj
ZTpwcmUiPgk8L3NwYW4+Ni4wLjYwMDIuMTgwMDU8L2k+PC9kaXY+PGRpdj48aT5ycGNydDQuZGxs
PHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5DOlxXaW5kb3dz
XFN5c3RlbTMyXHJwY3J0NC5kbGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl
Ij4JPC9zcGFuPjYuMC42MDAyLjE4ODgyPC9pPjwvZGl2PjxkaXY+PGk+Ym9vc3RfbG9nLXZjMTAw
LW10LWdkLTFfNTYuZGxsPHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwv
c3Bhbj5DOlxib29zdF8xXzU2XzBfZHluXHN0YWdlXGxpYlxib29zdF9sb2ctdmMxMDAtbXQtZ2Qt
MV81Ni5kbGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPjAu
MC4wLjA8L2k+PC9kaXY+PGRpdj48aT5ib29zdF9kYXRlX3RpbWUtdmMxMDAtbXQtZ2QtMV81Ni5k
bGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPkM6XGJvb3N0
XzFfNTZfMF9keW5cc3RhZ2VcbGliXGJvb3N0X2RhdGVfdGltZS12YzEwMC1tdC1nZC0xXzU2LmRs
bDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+MC4wLjAuMDwv
aT48L2Rpdj48ZGl2PjxpPk1TVkNQMTAwRC5kbGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUt
c3BhY2U6cHJlIj4JPC9zcGFuPkM6XFdpbmRvd3NcU3lzdGVtMzJcTVNWQ1AxMDBELmRsbDxzcGFu
IGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+MTAuMC4zMDMxOS4xPC9p
PjwvZGl2PjxkaXY+PGk+TVNWQ1IxMDBELmRsbDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1z
cGFjZTpwcmUiPgk8L3NwYW4+QzpcV2luZG93c1xTeXN0ZW0zMlxNU1ZDUjEwMEQuZGxsPHNwYW4g
Y2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj4xMC4wLjMwMzE5LjE8L2k+
PC9kaXY+PGRpdj48aT5ib29zdF9zeXN0ZW0tdmMxMDAtbXQtZ2QtMV81Ni5kbGw8c3BhbiBjbGFz
cz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPkM6XGJvb3N0XzFfNTZfMF9keW5c
c3RhZ2VcbGliXGJvb3N0X3N5c3RlbS12YzEwMC1tdC1nZC0xXzU2LmRsbDxzcGFuIGNsYXNzPSIi
IHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+MC4wLjAuMDwvaT48L2Rpdj48ZGl2Pjxp
PmJvb3N0X2ZpbGVzeXN0ZW0tdmMxMDAtbXQtZ2QtMV81Ni5kbGw8c3BhbiBjbGFzcz0iIiBzdHls
ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPkM6XGJvb3N0XzFfNTZfMF9keW5cc3RhZ2VcbGli
XGJvb3N0X2ZpbGVzeXN0ZW0tdmMxMDAtbXQtZ2QtMV81Ni5kbGw8c3BhbiBjbGFzcz0iIiBzdHls
ZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPjAuMC4wLjA8L2k+PC9kaXY+PGRpdj48aT5ib29z
dF9jaHJvbm8tdmMxMDAtbXQtZ2QtMV81Ni5kbGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUt
c3BhY2U6cHJlIj4JPC9zcGFuPkM6XGJvb3N0XzFfNTZfMF9keW5cc3RhZ2VcbGliXGJvb3N0X2No
cm9uby12YzEwMC1tdC1nZC0xXzU2LmRsbDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFj
ZTpwcmUiPgk8L3NwYW4+MC4wLjAuMDwvaT48L2Rpdj48ZGl2PjxpPmJvb3N0X3RocmVhZC12YzEw
MC1tdC1nZC0xXzU2LmRsbDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8
L3NwYW4+QzpcYm9vc3RfMV81Nl8wX2R5blxzdGFnZVxsaWJcYm9vc3RfdGhyZWFkLXZjMTAwLW10
LWdkLTFfNTYuZGxsPHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bh
bj4wLjAuMC4wPC9pPjwvZGl2PjxkaXY+PGk+cHNhcGkuZGxsPHNwYW4gY2xhc3M9IiIgc3R5bGU9
IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5DOlxXaW5kb3dzXFN5c3RlbTMyXHBzYXBpLmRsbDxz
cGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Ni4wLjYwMDAuMTYz
ODY8L2k+PC9kaXY+PGRpdj48aT53czJfMzIuZGxsPHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRl
LXNwYWNlOnByZSI+CTwvc3Bhbj5DOlxXaW5kb3dzXFN5c3RlbTMyXHdzMl8zMi5kbGw8c3BhbiBj
bGFzcz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9zcGFuPjYuMC42MDAxLjE4MDAwPC9p
PjwvZGl2PjxkaXY+PGk+bXN2Y3J0LmRsbDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFj
ZTpwcmUiPgk8L3NwYW4+QzpcV2luZG93c1xTeXN0ZW0zMlxtc3ZjcnQuZGxsPHNwYW4gY2xhc3M9
IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj43LjAuNjAwMi4xODU1MTwvaT48L2Rp
dj48ZGl2PjxpPm5zaS5kbGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J
PC9zcGFuPkM6XFdpbmRvd3NcU3lzdGVtMzJcbnNpLmRsbDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3
aGl0ZS1zcGFjZTpwcmUiPgk8L3NwYW4+Ni4wLjYwMDEuMTgwMDA8L2k+PC9kaXY+PGRpdj48aT51
c2VyMzIuZGxsPHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5D
OlxXaW5kb3dzXFN5c3RlbTMyXHVzZXIzMi5kbGw8c3BhbiBjbGFzcz0iIiBzdHlsZT0id2hpdGUt
c3BhY2U6cHJlIj4JPC9zcGFuPjYuMC42MDAyLjE4MDA1PC9pPjwvZGl2PjxkaXY+PGk+Z2RpMzIu
ZGxsPHNwYW4gY2xhc3M9IiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvc3Bhbj5DOlxXaW5k
b3dzXFN5c3RlbTMyXGdkaTMyLmRsbDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw
cmUiPgk8L3NwYW4+Ni4wLjYwMDIuMTkxNzE8L2k+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdj48YnI+
PGI+My4gQ2FsbCBTdGFjazwvYj48YnI+PGRpdiBzdHlsZT0iIj48aT4mbmJzcDsgMDAwMDAwMDAo
KSZuYnNwOzwvaT48L2Rpdj48ZGl2IHN0eWxlPSIiPjxpPiZuYnNwOyB1c2VyMzIuZGxsITc2NjU5
Y2U0KCkgJm5ic3A7PC9pPjwvZGl2PjxkaXYgc3R5bGU9IiI+PGk+Jm5ic3A7IFtGcmFtZXMgYmVs
b3cgbWF5IGJlIGluY29ycmVjdCBhbmQvb3IgbWlzc2luZywgbm8gc3ltYm9scyBsb2FkZWQgZm9y
IHVzZXIzMi5kbGxdJm5ic3A7PC9pPjwvZGl2PjxkaXYgc3R5bGU9IiI+PGk+Jm5ic3A7IGFkdmFw
aTMyLmRsbCE3N2I4NDE1OCgpICZuYnNwOzwvaT48L2Rpdj48ZGl2IHN0eWxlPSIiPjxpPiZuYnNw
OyBhZHZhcGkzMi5kbGwhNzdiODQwZjYoKSAmbmJzcDs8L2k+PC9kaXY+PGRpdiBzdHlsZT0iIj48
aT4mbmJzcDsgYWR2YXBpMzIuZGxsITc3Yjg0MzBkKCkgJm5ic3A7PC9pPjwvZGl2PjxkaXYgc3R5
bGU9IiI+PGk+Jm5ic3A7IHdzMl8zMi5kbGwhNzY3MGFiNmQoKSAmbmJzcDs8L2k+PC9kaXY+PGRp
diBzdHlsZT0iIj48aT4mbmJzcDsgd3MyXzMyLmRsbCE3NjcwYWE5NSgpICZuYnNwOzwvaT48L2Rp
dj48ZGl2IHN0eWxlPSIiPjxpPiZuYnNwOyB3czJfMzIuZGxsITc2NzBhM2IyKCkgJm5ic3A7PC9p
PjwvZGl2PjxkaXYgc3R5bGU9IiI+PGk+Jm5ic3A7IHdzMl8zMi5kbGwhNzY3MGFlM2YoKSAmbmJz
cDs8L2k+PC9kaXY+PGRpdiBzdHlsZT0iIj48aT4mbmJzcDsgd3MyXzMyLmRsbCE3NjcwYWQ3YSgp
ICZuYnNwOzwvaT48L2Rpdj48ZGl2IHN0eWxlPSIiPjxpPiZuYnNwOyB3czJfMzIuZGxsITc2NzBh
Y2MzKCkgJm5ic3A7PC9pPjwvZGl2PjxkaXYgc3R5bGU9IiI+PGk+Jm5ic3A7IHdzMl8zMi5kbGwh
NzY3MGFjMmIoKSAmbmJzcDs8L2k+PC9kaXY+PGRpdiBzdHlsZT0iIj48aT4mbmJzcDsgYm9vc3Rf
bG9nLXZjMTAwLW10LWdkLTFfNTYuZGxsIWJvb3N0Ojphc2lvOjpkZXRhaWw6OndpbnNvY2tfaW5p
dF9iYXNlOjpzdGFydHVwKGJvb3N0Ojphc2lvOjpkZXRhaWw6OndpbnNvY2tfaW5pdF9iYXNlOjpk
YXRhICZhbXA7IGQsIHVuc2lnbmVkIGNoYXIgbWFqb3IsIHVuc2lnbmVkIGNoYXIgbWlub3IpICZu
YnNwO0xpbmUgMzkgKyAweDJkIGJ5dGVzIEMrKzwvaT48L2Rpdj48ZGl2IHN0eWxlPSIiPjxpPiZu
YnNwOyBib29zdF9sb2ctdmMxMDAtbXQtZ2QtMV81Ni5kbGwhYm9vc3Q6OmFzaW86OmRldGFpbDo6
d2luc29ja19pbml0Jmx0OzIsMCZndDs6OndpbnNvY2tfaW5pdCZsdDsyLDAmZ3Q7KGJvb2wgYWxs
b3dfdGhyb3cpICZuYnNwO0xpbmUgNTcgKyAweGUgYnl0ZXMgQysrPC9pPjwvZGl2PjxkaXYgc3R5
bGU9IiI+PGk+Jmd0OyBib29zdF9sb2ctdmMxMDAtbXQtZ2QtMV81Ni5kbGwhYm9vc3Q6OmFzaW86
OmRldGFpbDo6YGR5bmFtaWMgaW5pdGlhbGl6ZXIgZm9yICd3aW5zb2NrX2luaXRfaW5zdGFuY2Un
JygpICZuYnNwO0xpbmUgMTE2ICsgMHgxYyBieXRlcyBDKys8L2k+PC9kaXY+PGRpdiBzdHlsZT0i
Ij48aT4mbmJzcDsgTVNWQ1IxMDBELmRsbCFfaW5pdHRlcm0odm9pZCAodm9pZCkqICogcGZiZWdp
biwgdm9pZCAodm9pZCkqICogcGZlbmQpICZuYnNwO0xpbmUgODczIEM8L2k+PC9kaXY+PGRpdiBz
dHlsZT0iIj48aT4mbmJzcDsgYm9vc3RfbG9nLXZjMTAwLW10LWdkLTFfNTYuZGxsIV9DUlRfSU5J
VCh2b2lkICogaERsbEhhbmRsZSwgdW5zaWduZWQgbG9uZyBkd1JlYXNvbiwgdm9pZCAqIGxwcmVz
ZXJ2ZWQpICZuYnNwO0xpbmUgMjg0ICsgMHhmIGJ5dGVzIEM8L2k+PC9kaXY+PGRpdiBzdHlsZT0i
Ij48aT4mbmJzcDsgYm9vc3RfbG9nLXZjMTAwLW10LWdkLTFfNTYuZGxsIV9fRGxsTWFpbkNSVFN0
YXJ0dXAodm9pZCAqIGhEbGxIYW5kbGUsIHVuc2lnbmVkIGxvbmcgZHdSZWFzb24sIHZvaWQgKiBs
cHJlc2VydmVkKSAmbmJzcDtMaW5lIDUwNiArIDB4MTEgYnl0ZXMgQzwvaT48L2Rpdj48ZGl2IHN0
eWxlPSIiPjxpPiZuYnNwOyBib29zdF9sb2ctdmMxMDAtbXQtZ2QtMV81Ni5kbGwhX0RsbE1haW5D
UlRTdGFydHVwKHZvaWQgKiBoRGxsSGFuZGxlLCB1bnNpZ25lZCBsb25nIGR3UmVhc29uLCB2b2lk
ICogbHByZXNlcnZlZCkgJm5ic3A7TGluZSA0NzYgKyAweDExIGJ5dGVzIEM8L2k+PC9kaXY+PGRp
diBzdHlsZT0iIj48aT4mbmJzcDsgbnRkbGwuZGxsITc3YTExMmY0KCkgJm5ic3A7PC9pPjwvZGl2
PjxkaXYgc3R5bGU9IiI+PGk+Jm5ic3A7IG50ZGxsLmRsbCE3NzlmOTA2YigpICZuYnNwOzwvaT48
L2Rpdj48ZGl2IHN0eWxlPSIiPjxpPiZuYnNwOyBudGRsbC5kbGwhNzdhMDE2ZDIoKSAmbmJzcDs8
L2k+PC9kaXY+PGRpdiBzdHlsZT0iIj48aT4mbmJzcDsgbnRkbGwuZGxsITc3OWZiZjVhKCkgJm5i
c3A7PC9pPjwvZGl2PjwvZGl2PjwvZGl2Pjxicj48L2Jsb2NrcXVvdGU+SXQgc2VlbXMgd3Jvbmcg
dG8gaW5pdGlhbGl6ZSBXaW5Tb2NrIGZyb20gYERsbE1haW4oKWAgY29udGV4dC4gVGhpcyBpcyBX
QUcsIGJ1dCB0cnkgdXNpbmcgdGhlIG1hbnVhbCBpbml0aWFsaXphdGlvbiBvZiBBU0lPL1dpblNv
Y2sgaW4gYDxpPlNlcnZpY2VNYWluKClgLiBTZWUgdGhlIFtjb21tZW50IGFib3ZlIGBjbGFzcyBt
YW51YWxgPC9pPl0oaHR0cDovL3d3dy5ib29zdC5vcmcvZG9jL2xpYnMvMV81Nl8wL2Jvb3N0L2Fz
aW8vZGV0YWlsL3dpbnNvY2tfaW5pdC5ocHApLjxicj48YnI+"
style="height:0;font-size:0em;padding:0;margin:0;"></div>
</div>
</body>
</html>
["signature.asc" (application/pgp-signature)]
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic