ࡱ>  \Ya7 bjbjUU 7|7|l(lTP|Py؋،"$_ 3~4 ̋ ɾPx4I0y(PPComponent-based Operating System APIs: A Versioning and Distributed Resource Solution Robert J. Stets  FILLIN \* MERGEFORMAT Galen C. Hunt Michael L. Scott July 1999 Technical Report  FILLIN \* MERGEFORMAT MSR-TR-99-24 Microsoft Research Microsoft Corporation One Microsoft Way Redmond, WA 98052 Department of Computer Science University of Rochester Rochester, NY 14627 Component-based Operating System APIs: A Versioning and Distributed Resource Solution Robert J. Stets, Galen C. Hunt, and Michael L. Scott Microsoft Research Department of Computer Science One Microsoft Way University of Rochester Redmond, WA 98052 Rochester, NY 14627 galenh@microsoft.com {stets, scott}@cs.rochester.edu Abstract Component software techniques have been developed to facilitate software reuse. State and functionality are encapsulated inside components with the goal of limiting program errors due to implicit interactions between components. Late binding of components allows implementations to be chosen at run-time, thereby increasing opportunities for reuse. Current component infrastructures also provide version management capabilities to control the evolutionary development of components. In addition to the general goal of reuse, component software has also focused on enabling distributed computing. Current component infrastructures have strong support for distributed applications. By leveraging these strengths of component software, a component-based operating system (OS) application programmer interface (API) can remedy two weaknesses of current monolithic, procedural APIs. Current APIs are typically very rigid; they can not be modified without jeopardizing legacy applications. This rigidity results in bloat in both API complexity and support code. Also current APIs focus primarily on the single host machine. They lack the ability to name and manipulate OS resources on remote machines. An API constructed entirely of components can leverage version management and distributed computing facilities. Version management can be used to identify legacy APIs, which can then be dynamically loaded. OS resources modeled as components can be instantiated on remote machines and then manipulated with the natural access semantics. We have developed the COP system as prototype component-based API for Windows NT. The system provides an API with version management capabilities and with a method for naming and manipulating remote OS resources. The advantages are gained with a minimum of overhead and without sacrificing legacy compatibility. 1. Introduction Component software methodology has primary been motivated by the desire for software re-use. As described by Szyperski [1998], software components are binary units of independent production, acquisition, and deployment that interact to form a functioning system. The methodology itself focuses on independence by establishing a strict encapsulation of state and functionality inside each component. This encapsulation helps facilitate reuse. A significant obstacle to effective reuse is the natural evolution of software. Evolution creates multiple versions of the component, a number of which may be actively used by clients. The ability to manage multiple versions of code is generally called versioning and is addressed by most current component infrastructures. Also, as component software designers have always considered the distributed application domain important, infrastructures have extensive support for the operation of distributed components. These advantages of software components can be leveraged to eliminate shortcomings present in current operating system (OS) application programmer interface (API) designs. OS APIs are typically monolithic procedural interfaces addressing single-machine requirements. Their design limits options for evolutionary development and also complicates application development for distributed systems. During an operating system's lifetime, its functionality will change, and these changes must be reflected in the API. A set of API calls may become obsolete or their semantics may change. In an ideal world, obsolete calls would be deleted and calls with modified semantics (but unmodified parameters and return values) would remain the same. Unfortunately, calls can neither be deleted nor can their semantics change. Such API modifications would jeopardize the operation of legacy applications. Legacy applications are an important concern for today's operating systems. Installation of a new operating system version is already expensive (in time and money). If new application versions are also required, the expense is only compounded. (In some cases, new versions may not even be feasible.) Operating system evolution must be designed to support legacy applications. Since any changes to the API can break legacy applications, API calls typically become fixed once published. Obsolete calls can never be deleted, and new call semantics must always be introduced through new calls. Backward compatibility thus leads to bloat in both the API and the supporting code. For example, the UNIX 98 specification (endorsed by IBM, Sun, and NCR) lists 21 calls reserved for legacy support. Many of these calls have been superceded by new, more powerful calls (e.g. the signal management function, signal(), has been replaced with the more powerful sigaction()). Apples Carbon implementation of the Macintosh OS API deprecates over 2100 functions for the earlier MacOS 8.5 implementation. Win32, the primary API for Microsoft's family of 32-bit operating systems, contains over 1700 legacy API calls, including 146 calls providing support for its predecessor, Windows 3.1. Also the distributed computing paradigm is not well supported by typical operating systems APIs. Virtually all APIs do of course have support for inter-machine communication, but high-level support for accessing remote OS resources is lacking. The primary omission is a uniform method of naming remote resources, for example windows, files, and synchronization objects. This omission prevents an application from easily using resources scattered throughout a distributed system. A multi-user game serves as a good example. This class of applications needs to open windows, sound channels, and input devices (e.g. joysticks) on numerous machines throughout a distributed system. With typical OS APIs, these applications must rely almost entirely on ad-hoc mechanisms to access the necessary remote resources. The above two weaknesses in modern OS APIs can be eliminated by the application of component software methodology. A component-based API is constructed entirely of software components, with each component modeling an OS resource. As components encapsulate their state and functionality, all access and manipulation functions for a particular resource type are contained in its component. The factoring inherent in a component-based API allows for efficient versioning, and the state and access encapsulation allow OS resources to be instantiated on remote machines. To clarify, we only propose to componentize the API. The underlying OS can be monolithic, micro-kernel, or component-based. By componentizing the API, we are controlling the access to the OS. Control at this point is sufficient to provide API versioning and also to expose OS resources outside of the host machine. The process of making resources available remotely is called remoting. In this paper, we describe COP (Component-based Operating system Proxy), a prototype of a componentized API. The COP system acts a traffic cop that directs OS requests to the appropriate version or resource location. The system currently targets the Win32 API and is implemented on top of Windows NT 4.0. Our implementation currently covers approximately 350 Win32 calls, enough to provide needed development support for a separate project in distributed component applications. We have found that COP only introduces a minimum of overhead in the local case, while providing outstanding OS support for evolutionary development and distributed applications. 2. Component Software Overview In this section, we will provide a brief overview of the component software methodology and two popular infrastructures. Components have been an extremely rich area of ongoing work during the last ten years. Necessarily, we will only focus on aspects directly related to this paper. To begin, we will provide definitions for some important terms used in this paper. The term component was specifically defined in the previous section. Roughly speaking, a component provides functional building blocks for a complex application. An interface is a well-known contract specifying how a component's functionality is accessed. Interfaces take the form of a set of function or method calls, including parameter and return types. A component instance refers to a component that has been loaded into memory and is accessible by a client. All communication between component instances occurs through interfaces. Component software fundamentally maintains a strict separation between the interface and the implementation. This separation is a key requirement for enforcing components to encapsulate their functionality and for guaranteeing component independence. Independence allows components to be composed without introducing implicit interactions that may lead to subtle program errors. The ability to compose is also enhanced by allowing one component to be substituted for another, so long as the substitute provides the same, or an extension of, the functionality of the original. Through polymorphism components with differing implementations of the same interface may be interchanged transparently. A final issue in composition is the point in time at which component choices are bound. Late binding allows an application to choose components dynamically. Independence, polymorphism, and late binding are methodological concepts that facilitate reuse in component software. Component infrastructures also address related implementation issues, namely mixed development languages and execution platforms. All popular infrastructures provide mechanisms that allow development in multiple languages and execution across multiple hardware platforms. Two of the more popular component infrastructures are Microsoft's Component Object Model (COM) [Microsoft, 1995] and the Object Management Group's Common Object Request Broker Architecture (CORBA) [Object Management Group, 1996]. Although originally motivated by different goals, they have largely converged to promote software reuse independent of development language in both a single-machine and distributed computing environment. COP is built on top of COM, and so the next subsection will provide an overview of COM. The following subsection will then contrast the differences between COM and CORBA, focusing especially on the effects on a system such as COP. 2.1. Component Object Model (COM) COM was developed by Microsoft to address the need for cross-application interaction. As the work evolved, the Distributed COM (DCOM) extensions [Microsoft, 1998] were introduced to support distributed computing. COM provides language independence by employing a binary standard. Component interfaces are implemented as a table of function pointers, which are called vtables because they mimic the format of C++ virtual function tables. References to component instances are referred to as interface pointers. These are actually double-indirect pointers to the vtable. The extra level of indirection is provided as an implementation convenience. For example, an implementation can attach useful information to the interface pointer, information that will then be shared by all references to the interface. In keeping with component software methodology, COM maintains a strict separation between a component interface and implementation. COM in fact says nothing about the implementation, only about the interfaces. Interfaces can be defined through single inheritance. (Note only the interface is inherited; implementation is entirely separate.) The lack of multiple inheritance is not a limitation. COM components can implement multiple interfaces regardless of inheritance hierarchy. This provides much the same power as multiple interface inheritance. All COM interfaces must inherit from the IUnknown interface. IUnknown contains a QueryInterface() method and two methods for memory management. For our discussion, QueryInterface() is the most important. A client must use this method to obtain a specific interface pointer from a component instance. COM components are identified by a globally unique class ID (CLSID). Similarly, all interfaces are specified by a global unique interface ID (IID). A client instantiates a component instance by calling the COM CoCreateInstance() function and specifying the desired CLSID and IID. A pointer to the desired interface is returned. Given an interface pointer, the client can use QueryInterface() to determine if the component also supports other interfaces. By convention, COM holds that all published interfaces are immutable in terms of both syntax (interface method names and method parameters) and semantics. If a change is made to an interface, then a new interface, complete with a new IID, must be created. Immutable interfaces provide for a very effective versioning mechanism. A client can request a specific interface (through its published IID) and be assured of the desired syntax and semantics. Under COM, components can be instantiated in three different execution contexts. Components can be instantiated directly in the applications process (in-process), in another process on the same machine (local), or on another machine (remote). The ability to access instances regardless of execution context is called location transparency. COM provides location transparency by requiring that all instances are accessed through the vtable. EMBED Visio.Drawing.5 Figure  SEQ Figure \* ARABIC 1: For a call to a remote component instance, the proxy first marshals data arguments into a suitable transmission format. The request and data are then sent across the network by the transport mechanism. (The default mechanism is an object-oriented extension of DCE RPC.) At the server, the stub receives the request, unmarshals the data, and invokes the requested interface function. The process is reversed for the function return values. For in-process instances, the component implementation is usually held in a dynamically linked library (DLL) and is loaded directly into the process address space. The vtable then points directly to the component implementation. For local or remote components, the component implementation is loaded into another process and the application must engage in some type of inter-process communication (IPC). To handle these cases, COM instantiates a proxy and stub pair to perform the communication (see Figure 1). The vtable is set to point directly to the proxy. Before an IPC mechanism can be used, data must be packaged into a suitable transmission format. This step is called marshaling. The proxy is responsible for marshaling data and then sending the data and the request to the component instance. At the component instance, the stub receives the request, unmarshals the data, and invokes the appropriate method on the instance. The process is reversed for any return values. A system programmer can customize the IPC mechanism. Otherwise COM defaults to using shared memory for the Local case and an extension of the Open Groups Distributed Computing Environment remote procedure call facility (DCE RPC) [Hartman, 1992] for the Remote case. 2.2 COM, CORBA, and a Component-based API Both COM and CORBA share many fundamental similarities, especially in the area of distributed computing. For remote communication, CORBA uses an architecture that is very similar to COM. In essence, both architectures offer the same capabilities for remote component instances. The two systems however differ greatly in their versioning capabilities. Of current CORBA implementations, IBMs System Object Model (SOM) builds interface specifications at run-time [Forman, 1995], and so interface methods can be added or re-ordered, but not removed. SOMs strategy does not address semantic changes. To address semantic changes, CORBA repository IDs could be used to uniquely identify interfaces in much the same manner as COM IIDs. However, repository IDs are only checked when an instance is created and not when an instance reference is obtained directly from another component instance. A more fundamental problem is that CORBA's conventional object model merges all inherited interfaces into the same namespace, so it is impossible to simultaneously support multiple interface versions unless all method signatures are different. A component-based API built on top of CORBA would therefore not be able to offer very robust versioning capabilities. This work focuses on component software support for evolutionary development and distributed resources in operating systems. Component software infrastructures provide a plethora of other interesting application support, such as transactions, licensing, and persistence. These areas are beyond the scope of our current work. 3. COP Implementation In this section, we describe the COP implementation. The first subsection describes how the monolithic WIN32 API was factored into a set of interfaces. The second subsection then discusses the COP run-time system, including its support for versioning, distributed computing, and legacy applications. 3.1 Factoring a Monolithic API The first step in constructing a component-based API is to split, or factor, the monolithic API into a set of interfaces. After factoring, the entire API should be modeled by the set of interfaces, with individual and independent OS resources and services modeled by independent interfaces. A good factoring scheme produces interfaces that are appropriately independent and provides the benefits of clarity, effective versioning, and clean remoting of resources. Our discussion here applies our factoring strategy to the Win32 API. (Our factoring of a 1000+ subset of Win32 is listed in Appendix A.) However, our strategy and techniques should be generally applicable to monolithic, procedural APIs.  EMBED Visio.Drawing.5  Figure  SEQ Figure \* ARABIC 2: The factoring of a simple subset of the Win32 API. Proposed interfaces are listed in bold and prefixed with IWin32. IWin32WindowHandle aggregates the IWin32WindowState and IWin32WindowProperty interfaces. IWin32DialogHandle inherits from IWin32WindowHandle, since dialogs extend the functionality of plain windows. Our factoring strategy involves three steps. First, the monolithic API calls are factored into groups based on functionality. For example, all graphical window calls are placed in a IWin32Window group. Second, the calls in each group are factored into three sub-groups according to their effect on OS resources. The effect is easily identifiable through the call parameters and return value. A loaded OS resource is exported to the application as an opaque value called a kernel handle. Calls that create kernel handles (i.e. OS resources) are moved to a factory interface, and calls that then query or manipulate the these kernel handles are moved to a handle interface. Any other calls that do not directly involve kernel handles (but may instead manipulate OS settings or provide generic services) are moved to a utility interface. In the third step, we further refine the factorization. In many cases, a monolithic API may contain a set of calls that acts on a number of different OS resources. For example, Win32 has several calls that synchronization on a specified handle. The specified handle can represent a standard synchronization resource, such as a mutual exclusion lock, or less common synchronization resources such as processes or files. Our first two steps in factoring will not capture this relationship. Continuing the example, the synchronization calls will be placed in a IWin32SyncHandle interface, while the process and file calls will be placed in IWin32ProcessHandle and IWin32FileHandle interfaces, respectively. For correctness though, the process and file interfaces should also include the synchronization calls. Since the process and file handles can be thought of as logically extending the functionality of the synchronization handle, we can model this relationship through interface inheritance. Both IWin32ProcessHandle and IWin32FileHandle will inherit from the IWin32SyncHandle interface. Figure 2 is an example of our factoring of the Win32 window functions. The example necessarily focuses on a small, but representative, subset (six calls) of the 130+ window calls. The AdjustWindowRect() call determines the necessary size of a window given specific settings. The second call, CreateWindowEx(), creates a window, and the remaining calls create a window, execute a dialog box, flash the window's title bar, query various window properties, and return the current text in the window title bar. These calls all operate on windows and so are first factored to a windows group. Next the calls are further factored depending on the use of a kernel handles (denoted by HANDLE in Figure 2). In the third step, we have further factored the IWin32WindowHandle into IWin32WindowState and IWin32Property interfaces. The State and Property interfaces simply help to make the API easier to read. These interfaces do not extend the IWin32WindowHandle interface, but instead compose the interface. We model this relationship through interface aggregation. Also, we have factored the dialog calls into their own interface, since the dialogs are logically extensions of plain windows. Again this relationship is modeled through interface inheritance. Properly applied, this factorization strategy will produce a set of interfaces, each with a tightly defined set of calls to access the appropriate underlying OS resource. The factorization will improve API clarity by clearly defining the specific methods for accessing each OS resource and also the relationship between API calls. Versioning capabilities will also be improved since modifications can be isolated within the affected interfaces. Finally, a good factorization inherently encapsulates functionality (and the associated state), which facilitates the remoting of OS resources.  EMBED Visio.Drawing.5  Figure  SEQ Figure \* ARABIC 3: The COP Runtime system consists of a component layer that presents the OS API and an optional Legacy Translation layer available for Win32 applications. 3.2 Run-time System Overview At run-time, the application accesses the OS through the COP component layer (see Figure 3). These components implement the interfaces described in the previous subsection. As with the interfaces they implement, the components can also be roughly classified as factories, handles, or utilities. Most applications will instantiate factory components during initialization and then use the factories to create OS resources during execution. A basic implementation of a factory component first invokes the OS to create the desired resource. The OS will return a kernel handle to identify the resource. This handle however is only valid on the local machine. To enable remote access to the resource, the factory also creates an instance of the associated handle component and stores the kernel handle in the instances private state. Then rather than returning the kernel handle, the factory returns a pointer to the instance of the handle component. The application makes subsequent accesses to the resource through the instance pointer. Utility components do not directly manipulate loaded kernel resources, but instead provide generic services such as conversion between time formats or calculating the necessary window rectangle to contain a specified client rectangle and the general window elements. These components can instantiated whenever necessary, anywhere throughout the system. Again once instantiated, all accesses will occur through the instance pointer. On a simple level then, the instance pointer provides COP with one of its main advantages over typical modern OS APIs. The instance pointer uniquely names the loaded resource throughout the system and also acts as a gateway to the underlying remoting mechanism (COP/DCOM). With COP, applications can create resources throughout the system and subsequently use the instance pointer to access them in a location transparent manner. Versioning COPs other main advantage over modern OS APIs is its versioning capabilities. These capabilities follow directly from our factoring strategy and COMs robust versioning mechanism. As described above, published COM interfaces are immutable and are named by a globally unique ID. Clients can request specific interfaces and be assured of desired call syntax and semantics. To mark the specific interfaces, an application can store the appropriate IDs in its data segment. Alternatively, the OS binary format could be extended to support static binding to a dynamic interface in the same way that current operating systems support static binding to DLLs (or shared libraries). With such an extension, an application binary would declare a set of interfaces to which it should bind instead of a set of DLLs. Of course, COP-aware applications can query dynamically for special interfaces.  EMBED Visio.Drawing.5  Figure  SEQ Figure \* ARABIC 4: COP is able to instantiate OS resources in a number of locations: inside the client process (in-process), in another process on the same machine (local), or on another machine (remote). The client application can still access the resources in a location transparent manner by virtue of the proxy manager, proxy, and stub components. Location Transparency One of the main contributions of COP is the ability to instantiate OS resources anywhere throughout a distributed system (see Figure 4). COP components can be instantiated inside the applications process (in-process), in another process on the same machine (local), or on another machine (remote). As described in Section 2, in-process components only experience the added overhead of an indirect function call. In the local case, a COM proxy/stub pair is used to marshal data across the process boundaries. The local case is less efficient than the in-process case, however it provides better fault isolation. The remote case also uses the same general proxy/stub architecture. However, in the remote case, COP also includes an optional Proxy Manager that can be used to optimize remote communication. A common Proxy Manager task is to cache remote data in the hopes of avoiding unnecessary communication. For example, COP currently caches information to improve the re-drawing of remote windows. The Win32 call BeginPaint() signals the beginning of a re-draw operation by creating a new drawing context resource. In order to be available remotely, this resource must be wrapped by a COP component. Rather than creating a new component instance on each re-draw operation, COP currently caches a component instance (in the Proxy Manager) and re-uses the instance for the re-draw wrapper. Although hidden from the application, extra state is obviously required to maintain the location transparency. For instance, the system must keep track the location of component instances and data concerning the network connection. COM maintains this state automatically. COP components often have little extra state to maintain. As the only common example, handle components need to store the value of their associated kernel handle. Optional Proxy Manager implementations may also require extra state, for instance the cache of remote data mentioned above. In a less common case, some components need extra state to maintain location transparent results. The different execution context in-process, local, or remote may cause some calls to execute differently. (We of course try to maintain the same operation as the normal Win32 API.) For example, the call RegisterClass() registers a window class for use within a process. The call returns an error if the class is already registered within the process. A nave component implementation could report this error incorrectly in some cases. In COP, this call falls under the IWin32WindowUtility interface (since it does not target kernel handles). Consider the case where two applications try to register the same class on the same remote machine. To access RegisterClass(), both applications would create an instance of IWin32WindowUtility. Since these instance will both be remote and on the same machine, COM creates the instances inside the same process to optimize performance. Note that the instances are separate COM instances, but they do share the same process. The first application to register the class will succeed, but the second application will fail since the class has already been registered inside the COM process. In attempting to mimic standard Win32 operation, this error would be incorrect since the application processes are separate. In COP, the IWin32WindowUtility implementation maintains a list of classes each process has registered. The implementation can then determine if the caller has already registered the specified class and avoid any spurious errors. Obstacles to Remoting OS Resources Apart from state problems, there are other OS aspects that do pose remoting problems. OS callback functions are a significant obstacle to remote execution. Numerous API functions contain callback functions that the caller specifies and the OS invokes on certain events. For example, the Win32 call EnumWindows() calls a specified callback function for each top-level window on the screen. Callbacks are a problem when the caller (i.e. the location of the callback function) is on a different machine from the OS invoking the callback. COP solves this problem in the same way that it remotes OS resources. COP wraps all callback functions with components. Instead of passing the address of the callback function, COP passes a pointer to the component instance wrapping the callback. The OS can then simply use the instance pointer to invoke the callback function in a location transparent manner. Asynchronous events are the other main obstacle to remote execution. Some OS resources, such as windows, synchronization objects, and asynchronous I/O, must respond to asynchronous events. Windows must receive events such as mouse clicks, key strokes, and re-draw messages and send them to the user-specified window procedure for processing. The OS must ensure synchronization objects are given to requestors as semantics dictate. In asynchronous I/O, the OS must notify the caller when an I/O operation is complete. In all these cases, the OS assumes all involved parties reside on the same machine. COP therefore needs to provide extra support to remote these types of resources. COP remotes these resources by creating a special event agent on the remote machine. This agent is responsible for fielding asynchronous events and forwarding them to the client application. COP currently has support for remote windows. A window procedure is simply a special case of a callback routine. The OS calls the window procedure on every window event. At window creation time, COP creates a component instance to wrap the specified window procedure. COP then invokes the CreateWindowEx() method of the IWin32WindowFactory instance on the remote machine. The IWin32WindowFactory instance creates an IWin32WindowHandle instance, which will manage the actual window. The IWin32WindowHandle instance creates the window as part of initialization. Instead of specifying the applications window procedure though, IWin32WindowHandle specifies its own procedure. In addition stores the pointer to the instance of the applications window procedure, which was provided through a hook in CreateWindowEx(). COM actually delivers remote function call requests to COP components through a standard message queue. An idle component instance simply spins on the message queue, waiting for function call requests. Fortuitously, window events are also delivered through the same message queue. In the course of polling for incoming requests, the IWin32WindowHandle instance will also discover pending window events. The instance can then use the stored instance pointer to send the messages to the applications window procedure for processing. Synchronization and asynchronous I/O can be handled in the same manner an event agent can be instantiated on the remote machine. The agent will wait for the desired event and then forward notification to the application via a callback component. Legacy Translation Layer Our ultimate intention is for applications to write directly to the COP API. To ease the transition and to support legacy applications that can not be re-written, we have also built an optional COP Translation layer (see Figure 3). This layer is responsible for intercepting the procedural Win32 calls and translating them to COP. To help minimize translation overhead, we have purposely designed the COP interface methods to use the same parameters as their Win32 counterparts. Run-time interception is performed with the Detours package [Hunt, 1998]. One of this packages many features is the ability to instrument an applications binary file and add a specified DLL to the start of the list loaded at program initialization. This ensures that the specified DLL is the first loaded by the application. We use Detours place our COP startup DLL at the start of the list. The startup DLL then uses the Detours package to intercept and re-route Win32 calls to the Legacy Translation layer. Detours performs the interception by re-writing the first few instructions of a subroutine so that upon entrance, control is automatically transferred to a user-defined detour function. The replaced instructions are combined with a jump instruction to form a trampoline. The detour function can call the trampoline code to invoke the original subroutine, in our case the original Win32 call. The Legacy Translation layer is then responsible for creating the COP factory and utility instances as necessary. (The handle instances are created by the factory instances.) The layer of course caches pointers to interfaces to avoid unnecessary overhead. This approach works well for existing, single-machine Win32 applications, and also even allows the functionality of these applications to be transparently extended. The Translation Layer can be configured to automatically create resources on remote machines. For example, all window resources can be started on a remote machine, very similar to X-Window [Scheifler, 1986] remote displays. We have used this feature to remote the display of several existing Win32 applications. A remote display however only leverages a small amount of COPs most power feature the ability to trivially connect to resources scattered throughout a distributed system. The design of the Translation layer is relatively straightforward, but one significant problem did arise. Our translation layer intercepts all invocations of a specified call, even if the call is invoked from within another Win32 call. Re-entrancy problems can result. For example, COP allows applications to access the Win32 registry on remote machines, however COP must do so by instantiating a registry (IWin32Registry) component on the remote machine. The component is instantiated through the Win32 CoCreateInstanceEx() call, which itself accesses the registry. If COP intercepted and handled the registry call from CoCreateInstanceEx(), an infinite recursion would result. The Legacy Translation Layer tracks when an application is inside a Win32 call and avoids COP handling if an infinite recursion would start. This problem does not arise outside of legacy support, since all clients explicitly specify the execution context when attaching to the COP API. 4. Results The initial goal for COP is to support the development of the Millennium system. Millennium will be a thin software layer that monitors the execution of a distributed component-based application and intelligently distributes the component instances to maximize performance. As components are distributed throughout the system, they still must be able to access remote OS resources. COP provides that capability. To this end, we have currently remoted the registry, windows, graphic device interface (the low-level drawing routines), and file APIs. This subset consists of approximately 350 calls and is enough to support the development of Millennium. This also includes the appropriate support in the Legacy Translation Layer. The primary advantage of COP is enhanced functionality better versioning support and the ability to instantiate OS resources throughout a distributed system. To gauge the overhead introduced by COP, we have performed two benchmark tests. Our tests were performed on a Gateway 2000 machine with a Pentium II processor running at 266MHz. The machine has a 512Kbytes off-chip cache and 64Mbytes of RAM. Our benchmark timings were calculated based on the Win32 QueryPerformanceCounter()call, which has a resolution of approximately 1 microsecond on our machine. Our first benchmark focused on estimating the overhead of our Legacy Translation layer. Our test measured the amount of time to make a null Win32 call. (The call actually passes one integer parameter and returns an integer value.) Our benchmark application simply calls a generic Win32 function, which COP intercepts and routes to the Translation Layer. The Translation Layer then invokes the associated component instance. The component instance immediately returns a success value, which the Translation Layer returns to the application. As expected, an in-process component instance adds very little overhead in this case. The Win32 null call can be executed in 1.3 microseconds. If the component instance is instantiated as a Local server (in another process), the Win32 null call time jumps to 200 microseconds. This jump in time is due to the crossing of procedure boundaries. The second test we performed was to examine the full overhead on an existing Win32 application. We chose RegEdt32, a tool for editing the Win32 registry. At startup, the application reads the entire registry and displays the contents on screen for editing. We measured the time required to start the application and read all elements from the local registry. We feel this is an interesting benchmark because it includes not only the time to make COP calls, but also the time to instantiate COP components. Our COP implementation patched all the involved registry calls, and the startup phase involved a little over 9,500 registry calls, all handled by COP. We report the average of three runs. Our machine was rebooted in between each run in order to remove effects from the Window NT (file) cache. The plain application (with no COP overhead) starts up in 0.833 seconds. The application using COP in-process components starts in 1.118 seconds, a 34% increase. A large amount of this overhead is due to the cost of instantiating the components. In a normal situation, this overhead would be amortized. The application using COP Local components starts in 5.296 seconds, with the increase due to the frequent process boundary crossings. We did not benchmark COP with remote components, since the choice of network will have such a strong influence on the results. We feel that these results show that in-process COP components add only a minimal amount of overhead, while providing benefits in versioning management. When COP components are moved to remote machines, the overhead will be much higher, but network transmission time will still be the dominant concern. Regardless, the functionality of the system will be much greater an application can easily access scattered, remote OS resources. 5. Related Work in Operating Systems Kernel call interposition is the process of intercepting kernel calls and re-routing them to pieces of extension code. There has been a large amount of work, published and unpublished, in this area. Interposition Agents [Jones, 1993] in particular was highly influential to our work. This work demonstrated that a kernel call interface (Berkeley UNIX 4.3) could be factored into a small set of abstractions, which were then used as the basis for an object oriented interposition toolkit. Another recent system of note is SLIC [Ghormley, 1998]. This system allows multiple interposition extensions to be composed at run-time, but the system is not object or component-based. SLIC and Interposition Agents can be considered full-featured interposition systems. COP uses interposition techniques, but our goal is not a general interposition system. Our goal is a new style of API that provides versioning and distributing computing benefits. A general interposition system should be built on top of our component-based API. As we consider a component-based OS API here, other research efforts are considering building an entirely component-based OS. The OS could then be assembled dynamically in order to reflect the execution environment. Two such examples are MMLite [Helander, 1998] and Jbed [Oberon, 1998]. Both of these operating systems can drop unnecessary components, such as virtual memory or network communication, when running on a slim embedded processor platform. To our knowledge, none of this work addresses API versioning or the naming of remote OS resources. Also, importantly this work requires building a kernel from scratch, whereas our work can be easily applied to existing commercial operating systems. The work closest to our own is the Inferno distributed operating system [Dorward, 1997]. In this system, all OS resources are treated as files that is named and manipulated like files. This unique approach provides the advantage of a global, hierarchical namespace for all resources, but also the disadvantage of a rather limited access interface. In contrast, our approach in COP retains the natural semantics for manipulating remote resources. There have been numerous projects that have focused on remoting small subsets of OS functionality. X Windows [Scheifler, 1986] provides remote access to a system's graphical user interface. Microsoft's Terminal Server [Microsoft, 1997] does the same for Windows NT platforms. Distributed file systems like NFS [Lyon, 1985] provide remote access to files. Unlike these systems, a component-based API targets the remoting of all OS resources. 6. Conclusions Component software provides excellent support for the evolutionary development of software and for distributed computing. By basing an OS API on components, a system can gain considerable leverage in these two areas. The OS can export different versions of the API, allowing the API to be modified without jeopardizing legacy applications. Instead the support for legacy applications can be dynamically loaded. By modeling the OS resources as components in the API, a global namespace is created. An application can instantiate and manipulate any number of resources scattered throughout a distributed system. Natural access semantics for the remote resources is maintained by virtue of the encapsulation of functionality inherent in components. Applications will no longer have to rely on ad-hoc methods to access remote resources. Future work on COP will focus on increasing coverage of the Win32 API. (There are thousands of calls in the API.) Also we are interested in researching methods to provide consistent, global view and management of resources throughout a cluster and also for providing fault tolerance and security throughout the system. 7. Acknowledgements Our factoring strategy borrows heavily from previous work by Microsoft Researchs Component Applications group. The authors would like to thank Craig Wittenberg and Crispin Goswell for their advice on factoring. Also Rich Draves, Mike Jones, Johannes Helander, and Rick Rashid provided much useful feedback on factoring and design of the COP run-time. Bibliography Dorward S., Pike R., Presotto D., Ritchie D., Trickey H. and Winterbottom P. (1997). Bell Labs Technical Journal. Lucent Technologies, Inc. Forman I.R., Conner M.H., Danforth S.H. and Raper L.K. (1995) Release-to-Release Binary Compatibility in SOM. Proceedings of the Tenth Annual Conference on Object Oriented Programming Systems, Languages, and Applications. Austin, Texas. Ghormley D., Petrou D. Rodrigues S. and Anderson T. (1998) SLIC: An Extensibility System for Commodity Operating Systems. Proceedings of the USENIX Annual Technical Conference. New Orleans, Louisiana. Hartman D. (1992) Unclogging Distributed Computing. IEEE Spectrum, 29(5), pp. 36-39. Helander J. and Forin A. (1998) MMLite: A Highly Componentized System Architecture. Proceedings of the Eighth ACM SIGOPS European Workshop. Sintra, Portugal. Hunt G. (1998) Detours: Binary Interception of Win32 Functions. Technical Report MSR-TR-98-33. Microsoft Research, Redmond, Washington. Jones M. (1992) Interposition Agents: Transparently Interposing User Code at the System Interface. Proceedings of the Fourteenth Symposium on Operating Systems Principles. Asheville, North Carolina. Lyon B., Sager G., Chang A. J., Goldberg D., Kleinman S., Lyon A. T., Sandberg A. R., Walsh A. D. and Weiss A. P. (1985) Overview of the Sun Network File System, Sun Microsystems, Inc. Microsoft Corporation and Digital Equipment Corporation (1995) The Component Object model Specification. Redmond, Washington. Microsoft Corporation (1997) Windows-Based Terminal Server. Beta 1, Redmond, Washington. Microsoft Corporation (1998) Distributed Component Object Model Protocol, version 1.0. Redmond, Washington. Oberon Microsystems (1998) Jbed Whitepaper: Component Software and Real-time Computing. Technical Report. Zrich, Switzerland. Object Management Group (1996) The Common Object Request Broker: Architecture and Specification, Revision 2.0. Framingham, Massachusetts. Scheifler R. and Gettys J. (1986) The X Window System. ACM Transactions on Graphics. 5(2), 79-109. Szyperski C. (1998) Component Software: Beyond Object-Oriented Programming. ACM Press, New York, New York. Appendix A: Proposed Factoring of a 1000+ subset of Win32 This Appendix lists the interface hierarchy and factoring of a 1000+ subset of Win32. The subset contains the necessary Win32 calls to support three OS-intensive applications: Microsoft PictureIt!, the Microsoft Developers Network Corporate Benefits sample, and Microsoft Researchs Octarine. The first is a commercial image manipulation package, the second is a widely distributed sample three-tiered, client-server application, and the third is a prototype COM-based integrated productivity application. This subset does not cover DirectX or ODBC, but we feel it does cover many of the major areas of functionality in Win32. All obsolete Windows 3.1 (16-bit) calls have been placed in IWin16 interfaces. In implementation, the top-level call prototypes will mirror their WIN32 counterparts, with the appropriate parameters replaced by interface pointers. Note that these calls can wrap lower-level methods that implement different parameters. For example, the lower level methods could return descriptive HRESULTs directly and the WIN32 return types as OUT parameters. Also, we expect ANSI API calls to be implemented as wrappers of their UNICODE counterparts. The wrappers will simply perform argument translation and then invoke the counterpart. The next subsection lists the interface hierarchy. Inheritance relationships are clearly shown by the connecting lines, while aggregation is pictured by placing one interface block within another. The final subsection then lists the call factorization. In the factorization list, X : Y denotes that X inherits from Y, and Y ( X denotes that X is aggregated into Y. Interface Hierarchy  EMBED Visio.Drawing.5   EMBED Visio.Drawing.5   EMBED Visio.Drawing.5   EMBED Visio.Drawing.5  Call Factorization Generic Handles IWin32Handle closeHandle Atoms IWin32Atom GlobalDeleteAtom GlobalGetAtomNameA IWin32AtomFactory GlobalAddAtomA Clipboard IWin32Clipboard ChangeClipboardChain CloseClipboard GetClipboardData GetClipboardFormatNameA GetClipboardFormatNameW GetClipboardOwner GetClipboardViewer GetOpenClipboardWindow IsClipboardFormatAvailable SetClipboardData IWin32ClipboardFactory RegisterClipboardFormatA RegisterClipboardFormatW Console IWin32Console : IWin32SyncHandle GetConsoleMode GetNumberOfConsoleInputEvents PeekConsoleInputA ReadConsoleA ReadConsoleInputA SetConsoleMode SetStdHandle WriteConsoleA IWin32ConsoleFactory AllocConsole GetStdHandle Drawing IWin16DeviceContextFont : IWin16DeviceContext EnumFontFamiliesA EnumFontsW GetCharWidthA GetTextExtentPointA GetTextExtentPointW IWin16MetaFile : IWin16DeviceContext CloseMetaFile CopyMetaFileA DeleteMetaFile EnumMetaFile GetMetaFileA GetMetaFileBitsEx GetWinMetaFileBits PlayMetaFile PlayMetaFileRecord IWin16MetaFileFactory GetEnhMetaFileA SetEnhMetaFileBits SetMetaFileBitsEx IWin32Bitmap:IWin32GDIObject CreatePatternBrush GetBitmapDimensionEx GetDIBits SetBitmapDimensionEx SetDIBits SetDIBitsToDevice IWin32BitmapFactory CreateBitmap CreateBitmapIndirect CreateCompatibleBitmap CreateDIBSection CreateDIBitmap CreateDiscardableBitmap IWin32BrushFactory CreateBrushIndirect CreateDIBPatternBrushPt CreateHatchBrush CreateSolidBrush IWin32Colorspace DeleteColorSpace IWin32ColorspaceFactory CreateColorSpaceA IWin32Cursor DestroyCursor SetCursor IWin32CursorFactory GetCursor IWin32CursorUtility ClipCursor GetCursorPos SetCursorPos ShowCursor IWin32DeviceContext( IWin32DeviceContextFont, IWin32DeviceContextCoords, IWin32Path, IWin32DeviceContextProperties, IWin32ScreenClip AngleArc Arc ArcTo BitBlt Chord CreateCompatibleDC DeleteDC DrawEdge DrawEscape DrawFocusRect DrawFrameControl DrawIcon DrawIconEx DrawStateA DrawTextA DrawTextW Ellipse EnumObjects ExtFloodFill ExtTextOutA ExtTextOutW FillRect FillRgn FloodFill FrameRect FrameRgn GdiFlush GetCurrentObject GetCurrentPositionEx GetPixel GrayStringA GrayStringW InvertRect InvertRgn LineDDA LineTo MaskBlt MoveToEx PaintRgn PatBlt Pie PlgBlt PolyBezier PolyBezierTo PolyDraw PolyPolygon PolyPolyline Polygon Polyline PolylineTo Rectangle ReleaseDC ResetDCA RestoreDC RoundRect SaveDC ScrollDC SetPixel SetPixelV StretchBlt StretchDIBits TabbedTextOutA TextOutA TextOutW WindowFromDC IWin32DeviceContextCoordinates DPtoLP LPtoDP IWin32DeviceContextFactory CreateDCA CreateDCW CreateICA CreateICW CreateMetaFileA CreateMetaFileW IWin32DeviceContextFont EnumFontFamiliesExA GetAspectRatioFilterEx GetCharABCWidthsA GetCharABCWidthsFloatA GetCharABCWidthsW GetCharWidth32A GetCharWidth32W GetCharWidthFloatA GetFontData GetGlyphOutlineA GetGlyphOutlineW GetKerningPairsA GetOutlineTextMetricsA GetTabbedTextExtentA GetTextAlign GetTextCharacterExtra GetTextCharsetInfo GetTextColor GetTextExtentExPointA GetTextExtentExPointW GetTextExtentPoint32A GetTextExtentPoint32W GetTextFaceA GetTextMetricsA GetTextMetricsW SetMapperFlags SetTextAlign SetTextCharacterExtra SetTextColor SetTextJustification IWin32DeviceContextProperties GetArcDirection GetBkColor GetBkMode GetBoundsRect GetBrushOrgEx GetColorAdjustment GetColorSpace GetDeviceCaps GetMapMode GetNearestColor GetPolyFillMode GetROP2 GetStretchBltMode GetViewportExtEx GetViewportOrgEx GetWindowExtEx GetWindowOrgEx OffsetViewportOrgEx OffsetWindowOrgEx PtVisible RectVisible ScaleViewportExtEx ScaleWindowExtEx SetArcDirection SetBkColor SetBkMode SetBoundsRect SetBrushOrgEx SetColorAdjustment SetColorSpace SetDIBColorTable SetICMMode SetMapMode SetMiterLimit SetPolyFillMode SetROP2 SetStretchBltMode SetViewportExtEx SetViewportOrgEx SetWindowExtEx SetWindowOrgEx UpdateColors IWin32EnhMetaFile: IWin32DeviceContext CloseEnhMetaFile CopyEnhMetaFileA CreateEnhMetaFileA CreateEnhMetaFileW DeleteEnhMetaFile EnumEnhMetaFile GdiComment GetEnhMetaFileBits GetEnhMetaFileDescriptionA GetEnhMetaFileDescriptionW GetEnhMetaFileHeader GetEnhMetaFilePaletteEntries PlayEnhMetaFile PlayEnhMetaFileRecord IWin32EnhMetaFileFactory SetWinMetaFileBits IWin32FontFactory CreateFontA CreateFontIndirectA CreateFontIndirectW CreateFontW IWin32GDIObject DeleteObject GetObjectA GetObjectType GetObjectW SelectObject UnrealizeObject IWin32GDIObjectFactory GetStockObject IWin32Icon CopyIcon DestroyIcon GetIconInfo IWin32IconFactory CreateIcon CreateIconFromResource CreateIconFromResourceEx CreateIconIndirect CreateMenu IWin32Palette : IWin32GDIObject AnimatePalette GetNearestPaletteIndex GetPaletteEntries ResizePalette SelectPalette SetPaletteEntries IWin32PaletteFactory CreateHalftonePalette CreatePalette IWin32PaletteSystem GetSystemPaletteEntries GetSystemPaletteUse RealizePalette IWin32Path AbortPath BeginPath CloseFigure EndPath FillPath FlattenPath GetMiterLimit GetPath PathToRegion StrokeAndFillPath StrokePath WidenPath IWin32PenFactory CreatePen CreatePenIndirect ExtCreatePen IWin32Print : IWin32DeviceContext AbortDoc EndDoc EndPage Escape ExtEscape SetAbortProc StartDocA StartDocW StartPage IWin32Rect CopyRect EqualRect InflateRect IntersectRect IsRectEmpty OffsetRect PtInRect SetRect SetRectEmpty SubtractRect UnionRect IWin32Region : IWin32GDIObject CombineRgn EqualRgn GetRegionData GetRgnBox OffsetRgn PtInRegion RectInRegion SetRectRgn IWin32RegionFactory CreateEllipticRgn CreateEllipticRgnIndirect CreatePolyPolygonRgn CreatePolygonRgn CreateRectRgn CreateRectRgnIndirect CreateRoundRectRgn ExtCreateRegion IWin32ScreenClip : IWin32DeviceContext ExcludeClipRect ExcludeUpdateRgn ExtSelectClipRgn GetClipBox GetClipRgn IntersectClipRect OffsetClipRgn SelectClipPath SelectClipRgn Environment IWin32EnvironmentUtility FreeEnvironmentStringsA FreeEnvironmentStringsW GetEnvironmentStrings GetEnvironmentStringsW GetEnvironmentVariableW SetEnvironmentVariableA SetEnvironmentVariableW File IWin16File : IWin16Handle _hread _hwrite _lclose _llseek _lopen _lwrite IWin16FileFactory OpenFile _lcreat _lread IWin32File : IWin32AsyncIOHandle FlushFileBuffers GetFileInformationByHandle GetFileSize GetFileTime GetFileType LockFile LockFileEx ReadFile ReadFileEx SetEndOfFile SetFilePointer SetFileTime UnlockFile WriteFile WriteFileEx IWin32FileFactory CreateFileA CreateFileW OpenFileMappingA IWin32FileMapping: IWin32ASyncIOHandle MapViewOfFile UnmapViewOfFile IWin32FileMappingFactory CreateFileMappingA IWin32FileSystem CopyFileA CopyFileEx CopyFileW CreateDirectoryA CreateDirectoryExA CreateDirectoryExW CreateDirectoryW DeleteFileA DeleteFileW GetDiskFreeSpaceA GetDiskFreeSpaceEx GetDriveTypeA GetDriveTypeW GetFileAttributesA GetFileAttributesW GetFileVersionInfoA GetFileVersionInfoSizeA GetLogicalDriveStringsA GetLogicalDrives GetVolumeInformationA GetVolumeInformationW MoveFileA MoveFileEx MoveFileW RemoveDirectoryA RemoveDirectoryW SetFileAttributesA SetFileAttributesW UnlockFileEx VerQueryValueA IWin32FileUtility AreFileApisANSI CompareFileTime DosDateTimeToFileTime FileTimeToDosDateTime FileTimeToLocalFileTime FileTimeToSystemTime GetFullPathNameA GetFullPathNameW GetShortPathNameA GetShortPathNameW GetTempFileNameA GetTempFileNameW GetTempPathA GetTempPathW LocalFileTimeToFileTime SearchPathA SystemTimeToFileTime IWin32FindFile : IWin32ASyncIOHandle FindClose FindCloseChangeNotification FindFirstFileEx FindNextChangeNotification FindNextFileA FindNextFileW IWin32FindFileFactory FindFirstChangeNotificationA FindFirstChangeNotificationW FindFirstFileA FindFirstFileW Interprocess Communication IWin32DDE DdeAccessData DdeDisconnect DdeFreeDataHandle DdeFreeStringHandle DdeUnaccessData IWin32DDEFactory DdeClientTransaction DdeConnect DdeCreateStringHandleA IWin32DDEUtility DdeGetLastError DdeInitializeA ReuseDDElParam UnpackDDElParam IWin32Pipe : IWin32AsyncIOHandle PeekNamedPipe IWin32PipeFactory CreatePipe Keyboard IWin32Keyboard GetAsyncKeyState GetKeyState GetKeyboardState MapVirtualKeyA SetKeyboardState VkKeyScanA keybd_event IWin32KeyboardLayout ActivateKeyboardLayout IWin32KeyboardLayoutFactory GetKeyboardLayout Memory IWin16GlobalMemory : IWin16Memory GlobalFlags GlobalFree GlobalLock GlobalReAlloc GlobalSize GlobalUnlock IWin16GlobalMemoryFactory GlobalAlloc GlobalHandle IWin32Heap : IWin32Memory HeapAlloc HeapCompact HeapDestroy HeapFree HeapReAlloc HeapSize HeapValidate HeapWalk IWin32HeapFactory GetProcessHeap HeapCreate IWin16LocalMemory : IWin16Memory LocalFree LocalLock LocalReAlloc LocalUnlock IWin32LocalMemoryFactory LocalAlloc IWin16Memory IsBadCodePtr IsBadReadPtr IsBadStringPtrA IsBadStringPtrW IsBadWritePtr IWin32Memory IsBadCodePtr IsBadReadPtr IsBadStringPtrA IsBadStringPtrW IsBadWritePtr IWin32VirtualMemory : IWin32Memory VirtualFree VirtualLock VirtualProtect VirtualQuery VirtualUnlock IWin32VirtualMemoryFactory VirtualAlloc Module IWin32Module : IWin32Handle DisableThreadLibraryCalls EnumResourceNamesA FindResourceA FreeLibrary GetModuleFileNameA GetModuleFileNameW GetProcAddress LoadBitmapA LoadBitmapW LoadCursorA LoadCursorW LoadIconA LoadIconW LoadImageA LoadMenuA LoadMenuIndirectA LoadStringA SizeofResource IWin32ModuleFactory GetModuleHandleA GetModuleHandleW LoadLibraryA LoadLibraryExA LoadLibraryW Multiple Window Position IWin32MWP BeginDeferWindowPos DeferWindowPos EndDeferWindowPos Ole IWin32Ole CoDisconnectObject CoLockObjectExternal CoRegisterClassObject CoRevokeClassObject IWin32OleFactory BindMoniker CoCreateInstance CoGetClassObject CoGetInstanceFromFile CreateDataAdviseHolder CreateDataCache CreateILockBytesOnHGlobal CreateOleAdviseHolder CreateStreamOnHGlobal OleCreate OleCreateDefaultHandler OleCreateFromData OleCreateFromFile OleCreateLink OleCreateLinkFromData OleCreateLinkToFile OleGetClipboard OleLoad IWin32OleMarshalUtility CoMarshalInterface CoReleaseMarshalData CoUnmarshalInterface IWin32OleMoniker CreateGenericComposite CreateItemMoniker CreatePointerMoniker CreateURLMoniker MkParseDisplayName MonikerCommonPrefixWith MonikerRelativePathTo IWin32OleMonikerFactory CreateBindCtx CreateFileMoniker GetRunningObjectTable IWin32OleStg OleConvertIStorageToOLESTREAM OleSave ReadClassStg ReleaseStgMedium WriteClassStg WriteFmtUserTypeStg IWin32OleStgFactory StgCreateDocfile StgCreateDocfileOnILockBytes StgIsStorageFile StgOpenStorage IWin32OleStream GetHGlobalFromStream OleConvertOLESTREAMToIStorage OleLoadFromStream OleSaveToStream ReadClassStm WriteClassStm IWin32OleUtility CLSIDFromProgID CLSIDFromString CoCreateGuid CoFileTimeNow CoFreeUnusedLibraries CoGetMalloc CoInitialize CoRegisterMessageFilter CoTaskMemAlloc CoTaskMemFree CoTaskMemRealloc CoUninitialize GetClassFile GetHGlobalFromILockBytes IIDFromString OleGetIconOfClass OleInitialize OleIsRunning OleRegEnumVerbs OleRegGetMiscStatus OleRegGetUserType OleSetClipboard OleUninitialize ProgIDFromCLSID PropVariantClear RegisterDragDrop RevokeDragDrop StringFromCLSID StringFromGUID2 StringFromIID OpenGL IWin32GL glBegin glClear glClearColor glClearDepth glColor3d glEnable glEnd glFinish glMatrixMode glNormal3d glPolygonMode glPopMatrix glPushMatrix glRotated glScaled glTranslated glVertex3d glViewport wglCreateContext wglGetCurrentDC wglMakeCurrent IWin32GLU gluCylinder gluDeleteQuadric gluNewQuadric gluPerspective gluQuadricDrawStyle gluQuadricNormals Printer IWin32Printer ClosePrinter DocumentPropertiesA GetPrinterA IWin32PrinterFactory OpenPrinterA OpenPrinterW IWin32PrinterUtility DeviceCapabilitiesA EnumPrintersA Process IWin16ProcessFactory WinExec IWin32Process : IWin32SyncHandle ( IWin32ProcessContext DebugBreak ExitProcess FatalAppExitA FatalExit GetExitCodeProcess GetCurrentProcessId GetProcessVersion GetProcessWorkingSetSize OpenProcessToken SetProcessWorkingSetSize TerminateProcess UnhandledExceptionFilter IWin32ProcessContext GetCommandLineA GetCommandLineW GetCurrentDirectoryA GetCurrentDirectoryW GetStartupInfoA SetConsoleCtrlHandler SetCurrentDirectoryA SetCurrentDirectoryW SetHandleCount SetUnhandledExceptionFilter IWin32ProcessFactory CreateProcessA CreateProcessW OpenProcess Registry IWin16Profile GetPrivateProfileIntA GetPrivateProfileStringA GetPrivateProfileStringW GetProfileIntA GetProfileIntW GetProfileStringA GetProfileStringW WritePrivateProfileStringA WritePrivateProfileStringW WriteProfileStringA WriteProfileStringW IWin16Registry RegCreateKeyExA RegCreateKeyW RegEnumKeyA RegEnumKeyW RegOpenKeyA RegOpenKeyW RegQueryValueA RegQueryValueW RegSetValueA RegSetValueW IWin32Registry RegCloseKey RegCreateKeyA RegCreateKeyExW RegDeleteKeyA RegDeleteKeyW RegDeleteValueA RegDeleteValueW RegEnumKeyExA RegEnumKeyExW RegEnumValueA RegEnumValueW RegFlushKey RegNotifyChangeKeyValue RegOpenKeyExA RegOpenKeyExW RegQueryInfoKeyA RegQueryInfoKeyW RegQueryValueExA RegQueryValueExW RegSetValueExA RegSetValueExW Resource IWin32Resource LoadResource LockResource Security IWin32SecurityACL AddAccessAllowedAce AddAccessDeniedAce AddAce DeleteAce GetAce GetAclInformation IWin32SecurityACLUtility InitializeAcl IsValidAcl IWin32SecurityAccess CopySid EqualSid GetLengthSid IsValidSid LookupAccountNameA LookupAccountSid LookupPrivilegeValueA IWin32SecurityDescriptor GetSecurityDescriptorDacl GetSecurityDescriptorGroup GetSecurityDescriptorOwner GetSecurityDescriptorSacl IsValidSecurityDescriptor SetSecurityDescriptorDacl SetSecurityDescriptorGroup SetSecurityDescriptorOwner SetSecurityDescriptorSacl IWin32SecurityDescriptorFactory InitializeSecurityDescriptor IWin32SecurityToken : IWin32Handle AdjustTokenPrivileges GetTokenInformation IWin32SecurityToken : IWin32Handle OpenProcessToken OpenThreadToken Shell IWin32Drop DragFinish DragQueryFileW DragQueryPoint IWin32Shell SHGetDesktopFolder SHGetFileInfoA ShellExecuteA Synchronization IWin32AtomicUtility InterlockedDecrement InterlockedExchange InterlockedIncrement IWin32CriticalSection DeleteCriticalSection EnterCriticalSection LeaveCriticalSection IWin32CriticalSectionFactory InitializeCriticalSection IWin32Event : IWin32SyncHandle PulseEvent ResetEvent SetEvent IWin32EventFactory CreateEventA IWin32Mutex : IWin32SyncHandle ReleaseMutex IWin32MutexFactory CreateMutexA OpenMutexA IWin32Semaphore : IWin32SyncHandle ReleaseSemaphore IWin32SemaphoreFactory CreateSemaphoreA IWin32SyncHandle : IWin32Handle MsgWaitForMultipleObjects SignalObjectAndWait WaitForMultipleObjects WaitForSingleObject WaitForSingleObjectEx IWin32WaitableTimer : IWin32SyncHandle CancelWaitableTimer SetWaitableTimer IWin32WaitableTimerFactory CreateWaitableTimer OpenWaitableTimer System IWin32WindowsHook CallNextHookEx UnhookWindowsHookEx IWin32WindowsHookFactory SetWindowsHookExA SetWindowsHookExW IWin32WindowsHookUtility CallMsgFilterA CallMsgFilterW Thread IWin32Thread : IWin32SyncHandle ( IWin32ThreadContext, IWin32ThreadMessage DispatchMessageA DispatchMessageW ExitThread GetCurrentThreadId GetExitCodeThread GetThreadLocale GetThreadPriority OpenThreadToken ResumeThread SetThreadPriority SetThreadToken Sleep SuspendThread TerminateThread TlsAlloc TlsFree TlsGetValue TlsSetValue IWin32ThreadContext EnumThreadWindows GetActiveWindow IWin32ThreadFactory CreateThread IWin32ThreadMessage GetMessageA GetMessagePos GetMessageTime GetMessageW GetQueueStatus PostQuitMessage PostThreadMessageA TranslateMessage WaitMessage IWin32ThreadUtility Timer IWin32Timer KillTimer SetTimer Utilities IWin32Beep Beep MessageBeep IWin32StringUtility CharLowerA CharLowerBuffA CharLowerW CharNextA CharNextW CharPrevA CharToOemA CharUpperA CharUpperBuffA CharUpperBuffW CharUpperW CompareStringA CompareStringW FormatMessageA FormatMessageW GetStringTypeA GetStringTypeExA GetStringTypeW IsCharAlphaA IsCharAlphaNumericA IsCharAlphaNumericW IsCharAlphaW IsDBCSLeadByte IsDBCSLeadByteEx LCMapStringA LCMapStringW MultiByteToWideChar OutputDebugStringA OutputDebugStringW ToAscii WideCharToMultiByte lstrcatA lstrcmpA lstrcmpiA lstrcpyA lstrcpyW lstrcpynA lstrlenA lstrlenW wsprintfA wsprintfW wvsprintfA IWin32SystemUtility CountClipboardFormats EmptyClipboard EnumClipboardFormats EnumSystemLocalesA GetACP GetCPInfo GetComputerNameW GetCurrentProcess GetCurrentProcessId GetCurrentThread GetCurrentThreadId GetDateFormatA GetDateFormatW GetDialogBaseUnits GetDoubleClickTime GetLastError GetLocalTime GetLocaleInfoA GetLocaleInfoW GetOEMCP GetSysColor GetSysColorBrush GetSystemDefaultLCID GetSystemDefaultLangID GetSystemDirectoryA GetSystemInfo GetSystemMetrics GetSystemTime GetTickCount GetTimeFormatA GetTimeFormatW GetTimeZoneInformation GetUserDefaultLCID GetUserDefaultLangID GetUserNameA GetUserNameW GetVersion GetVersionExA GetWindowsDirectoryA GetWindowsDirectoryW GlobalMemoryStatus IsValidCodePage IsValidLocale OemToCharA QueryPerformanceCounter QueryPerformanceFrequency RaiseException RegisterWindowMessageA SetErrorMode SetLastError SetLocalTime SystemParametersInfoA IWin32Utility MulDiv Window IWin32Accel CopyAcceleratorTableA TranslateAcceleratorA IWin32AccelFactory LoadAcceleratorsA IWin32Dialog : IWin32Window ( IWin32DialogState ChooseColorA DialogBoxParamA DialogBoxParamW EndDialog MapDialogRect SendDlgItemMessageA IWin32DialogFactory CreateDialogIndirectParamA CreateDialogParamA DialogBoxIndirectParamA IWin32DialogState CheckDlgButton GetDlgCtrlID GetDlgItem GetDlgItemInt GetDlgItemTextA GetNextDlgGroupItem GetNextDlgTabItem IsDlgButtonChecked SetDlgItemInt SetDlgItemTextA IWin32Menu ( IWin32MenuState DeleteMenu DestroyMenu InsertMenuA InsertMenuW IsMenu ModifyMenuA RemoveMenu TrackPopupMenu IWin32MenuFactory CreatePopupMenu IWin32MenuState AppendMenuA AppendMenuW ArrangeIconicWindows BringWindowToTop CheckMenuItem CheckMenuRadioItem CheckRadioButton EnableMenuItem GetMenuItemCount GetMenuItemID GetMenuItemRect GetMenuState GetMenuStringA GetSubMenu HiliteMenuItem SetMenuDefaultItem SetMenuItemBitmaps IWin32Window( IWin32WindowProperties, IWin32WindowState BeginPaint CallWindowProcA CallWindowProcW ChildWindowFromPoint ChildWindowFromPointEx ClientToScreen CloseWindow CreateCaret DefFrameProcA DefMDIChildProcA DefWindowProcA DefWindowProcW DestroyWindow DlgDirListA DlgDirListComboBoxA DlgDirSelectComboBoxExA DlgDirSelectExA DrawAnimatedRects DrawMenuBar EndPaint EnumChildWindows EnumWindows FindWindow FlashWindow MapWindowPoints MessageBoxA MessageBoxW MoveWindow OpenClipboard OpenIcon PeekMessageA PeekMessageW PostMessageA PostMessageW RedrawWindow ScreenToClient ScrollWindow ScrollWindowEx SendMessageA SendMessageW SendNotifyMessageA TranslateMDISysAccel UpdateWindow IWin32WindowFactory CreateWindowExA CreateWindowExW IWin32WindowProperties DragAcceptFiles GetClassLongA GetClassNameA GetClassNameW GetPropA GetPropW RemovePropA RemovePropW SetClassLongA SetPropA SetPropW IWin32WindowState EnableScrollBar EnableWindow GetClientRect GetDC GetDCEx GetLastActivePopup GetMenu GetParent GetScrollInfo GetScrollPos GetScrollRange GetSystemMenu GetTopWindow GetUpdateRect GetUpdateRgn GetWindow GetWindowDC GetWindowLongA GetWindowLongW GetWindowPlacement GetWindowRect GetWindowRgn GetWindowTextA GetWindowTextLengthA GetWindowTextW GetWindowThreadProcessId HideCaret InvalidateRect InvalidateRgn IsWindowEnabled IsChild IsIconic IsWindow IsWindowUnicode IsWindowVisible IsZoomed LockWindowUpdate SetActiveWindow SetClipboardViewer SetFocus SetForegroundWindow SetMenu SetParent SetScrollInfo SetScrollPos SetScrollRange SetWindowLongA SetWindowLongW SetWindowPlacement SetWindowPos SetWindowRgn SetWindowTextA SetWindowTextW ShowCaret ShowOwnedPopups ShowScrollBar ShowWindow ValidateRect ValidateRgn IWin32WindowUtility AdjustWindowRect AdjustWindowRectEx EnumWindows FindWindowA GetActiveWindow GetCapture GetCaretPos GetClassInfoA GetClassInfoExA GetClassInfoW GetDesktopWindow GetFocus GetForegroundWindow InSendMessage IsDialogMessageA RegisterClassA RegisterClassExA RegisterClass  The IWin32 prefix denotes an interface to a Win32 API component.  A window class specifies various window settings, such as the default cursor and background. Windows are created based on registered window classes.  The Win32 registry is a database of application configuration information. PAGE  PAGE 1 Wfghi8:;./ $5(3 K!T!# $&(&&&(())** /,/001*1444444!51525|6 0JOJQJ0J 6OJQJ 5CJKH5KH jCJUH*CJjOJQJU H*OJQJOJQJNVWh%89:Zr$a$$a$$a$lO $56rsqrQR`U!V!## $ $y%z%((**p,q, /,/-/T2U2|4}455p7q73949:|66!7172799:::%:r::::;;;;;;;&;';(;);*;+;<>>>>??AAmD{DH4HaIIII?L@LXLYL&j': CJOJQJUVmHnHu CJOJQJCJ5CJOJQJmHnHuj5CJOJQJU5CJOJQJjCJOJQJU&j: CJOJQJUVmHnHujOJQJU 6OJQJ 0JOJQJOJQJ0J0::;<<??@@AAAA C CFFHH4H5HaIIIPKQK>L?L$$$YLZL[LcLdLzL{L|L}LLMMNNOOOOMPSPPPUVjVzVv\w\\\\\\\\\\\\\O]m]^|add\f`hahbhzh{h|h۳۟ j6#U&j: CJOJQJUVmHnHuCJ5mHnHujOJQJU&j\: CJOJQJUVmHnHu0J 6OJQJj0JOJQJUOJQJ5 mHnHu jUjOJQJUj OJQJU4?L\LMMOQQEUFUBWCW(Z)Zv\\O]P]d]m]n]^^|a}a-c.cd$$$a$$$$ddd\f]f_h`hah~hijjrosoqqwwwww}{~{(~)~]^$$$|h}hhhhhhhhiiiimnrrrrttww'y4y~{(~[~f~ []'@A !#-56/Cǖ̗ӗʡס a~ھ H*OJQJjH*OJQJU 6OJQJ 0JOJQJ6CJOJQJjCJH*U0JCJ565 mHnHu jUH./'@A !5623deez{<=GH PQu63Hе4Rѷҷ +,I8۹Rst%6789:;STUVXY jPU j: 56UVmHnHu j=Uj;: UVmHnHu jU jOJQJmHnHu OJQJh5CJ 6OJQJOJQJ 5OJQJCJ6CJ@GHеѵRSѷҷ+,st$%Z[Wu)3DZj| $1$ 1$Yqrstvw()23CDEYZ[ijk{|} CJOJQJCJ CJOJQJCJ5B*CJOJQJhph5B*OJQJhph jyU,j: 56CJOJQJUVmHnHu jU jdU,j: 56CJOJQJUVmHnHu: 3Mgo!7ES[ 1$ $1$ $1$ 23LMNfgno !678RSZ[ %&'56ͿͿ5B*CJOJQJhph5B*OJQJhphB*CJhphB*CJhphCJOJQJhCJCJ CJOJQJK&6DRey2=S^q $1$67CDEQRSdefxyz 123<=>RST]^_pq%&'>?@PQRbctuCJ CJOJQJCJB*CJhphB*CJhphCJOJQJhU&?Qcu*8D 1$ $1$uv)*+789CDXY "#$123CDEMNOYZ[efg jmHnHuB*CJhphB*CJhphCJOJQJhCJCJ CJOJQJR #2DNZfq| )6C 1$ $1$gpqr{|}  ()*567BCDNOPYZ[bcdjklstu}~CJOJQJhB*CJhphB*CJhph[COZckt~&19CMX 1$ $1$%&'01289:BCDLMNWXYcderstCJCJCJ CJOJQJB*CJhphCJOJQJhB*CJhphTXds.?Yn+ $1$-./?@XYZmno*+,<=>TUVjklxyz ,-.=>?MCJCJ CJOJQJB*CJhphB*CJhphCJOJQJhU+=Uky->N\s 1$ $1$MNO[\]rst -./9:;JKL[\]defwxy!"#23CJ CJOJQJCJB*CJhphCJOJQJhB*CJhphV.:K\ex"3?JYh| 1$ $1$34>?@IJKXYZghi{|}$%&456BCDjkl|}~CJCJ CJOJQJB*CJhphB*CJhphCJOJQJhU%5Ck}3Igx $1$234HIJfghwxy$%&234>?@MNOYZ[ghixy !"#567ACJCJ CJOJQJCJOJQJhB*CJhphB*CJhphV%3?NZhy"6Bcs 1$ $1$ABbcdrst  !89:MNO]^ijktuv,B*CJhphCJOJQJhCJ CJOJQJCJB*CJhphV 9N^ju-;^h 1$ $1$,-.:;]^_ghiopqxyz#$%123?@AJKjklvwxCJ CJOJQJCJB*CJhphCJOJQJhB*CJhphVhpy$2@Kkw 1$ $1$$%&678EFG\]^pqr ()*78CD]^_vwxͿ5B*CJOJQJhph5B*OJQJhphCJ CJOJQJCJCJOJQJhB*CJhphB*CJhphK%7F]q )8D^w $1$ )*+123:;<CDELMNTUV]^pqrz{| "#$./CJ5B*CJOJQJhph5B*OJQJhphCJ CJOJQJB*CJhphCJOJQJhB*CJhphK *2;DMU^q{ #/=M 1$ $1$ $1$/0<=>LMNYZ[efgpqr}~ %&'9:KLMVWXbcdmno ,-.@ACJ CJOJQJCJB*CJhphB*CJhphCJOJQJhUMZfq~ &:LWcn  1$ $1$-AVo"6DTgx 0 $1$ABUVWnop !"#567CDESTfghwxy /01ABCSTUaCJ CJOJQJCJB*CJhphB*CJhphCJOJQJhU0BTbp '6E\z$5 $1$ 1$ $1$abcopq &'(567DE[\]yz{#$%45FGH\]^hijͿ5B*CJOJQJhph5B*OJQJhphCJ CJOJQJCJB*CJhphCJOJQJhB*CJhphK5G]i%.>P]o $1$ 1$ $1$j$%-.=>?OPQ\]^nop~123>?@JKLVWXͿͿ5B*CJOJQJhph5B*OJQJhphCJOJQJhCJ CJOJQJCJB*CJhphB*CJhphK2?KWfr %/BR^ $1$ $1$Xefgqrs $%&./ABCQRS]^"#$2?CJ CJOJQJCJCJOJQJhB*CJhphB*CJhphV#2@N\m~")Fau $1$ $1$?@AMNO[\]lmn}~!"()*EFG`abtuvͿ5B*CJOJQJhph5B*OJQJhphB*CJhphB*CJhphCJOJQJhCJ CJOJQJCJKu*=JZo $1$ 1$ $1$  )*+<=>IJKZnop  *+,>?@TUVklmͿ5B*CJOJQJhph5B*OJQJhphCJ CJOJQJCJB*CJhphCJOJQJhB*CJhphK  +?Ul6MXq 1$ $1$ $1$ 567LMNWXYpqr./0DEVWXnopCJ CJOJQJCJB*CJhphB*CJhphCJOJQJhU/EWo)@Nmv $1$()*?@MNOlmnuvw !123GHIfghyz{*+, CJOJQJCJB*CJhphB*CJhphCJOJQJhCJV!2Hgz+DTcu $1$,CDESTUbcdtuv$%&567FGHWXYijk{|}CJ CJOJQJCJ5B*CJOJQJhph5B*OJQJhphCJOJQJhB*CJhphB*CJhphK%6GXj|#1=LYgr $1$ $1$ "#$012<=>KLMXYZfghqrs{|} 234EFCJ CJOJQJCJB*CJhphB*CJhphCJOJQJhPr|3FN]k $1$ $1$FMN\]^jkl ABCYZdefqrsǾǾǾǾǾǾǾǾǾǾǾǾ jmHnHu5\mHnHuB*CJhphB*CJhphCJOJQJhCJ CJOJQJCJ5B*CJOJQJhph5B*OJQJhphD Yer :Par5E 1$ $1$  !9:OPQ`abqrs456DEFTUVacklz{| Ϳ5B*CJOJQJhph5B*OJQJhphCJ CJOJQJCJCJOJQJhB*CJhphB*CJhphKEUbcl{ (DYn~ $1$ '()CDEXYZmn}~ *+,9:;JKLYZ[hijyz{CJ CJOJQJCJB*CJhphCJOJQJhB*CJhphV+:KZiz /AScs| $1$ 1$ $1$ ./0@ABRSTbcdrs{| 456CDEOPefgnopxyzCJ CJOJQJCJ5B*CJOJQJhph5B*OJQJhphB*CJhphB*CJhphCJOJQJhK5DPfoy!=Xs 1$ $1$ !"<=>WXYrst CDEZ[\p̾5B*CJOJQJhph5B*OJQJhphCJ CJOJQJCJB*CJhphB*CJhphCJOJQJhK D[p(7G\r $1$ $1$'()67FG[\]qrs/0OPQ[\]ghiqr%&=>Ϳ5B*CJOJQJhph5B*OJQJhphB*CJhphB*CJhphCJOJQJhCJ CJOJQJCJK0P\hr&>Pq "4 1$ $1$>?OPpqr !"#34OPQdefwx!"#1289Z[ͿͿ jmHnHu5B*CJOJQJhph5B*OJQJhphB*CJhphB*CJhphCJOJQJhCJCJ CJOJQJH4Pexy"292 1$ $1$ $1$ 123ABCHIJWXYijrst{|} #$%345@ABPQRabcuvwCJCJ CJOJQJB*CJhphCJOJQJhB*CJhphV2BIXis|$4AQbv $1$ 1$ $1$-./9:;DEFOPQZ[\fghrstB*CJhphCJ CJOJQJ5B*CJOJQJhph5B*OJQJhphB*CJhphCJOJQJhCJK.:EP[gs $1$ $1$ 345HIJVWXfghxyz"#$-./789ABCLMNWXYcdxyzCJ CJOJQJCJCJOJQJhB*CJhphB*CJhphV4IWgy#.8BMXdy 1$ $1$()*<=>LMN\]^pqr,-.;<=MNO\]^jklz{|CJOJQJhB*CJhphB*CJhph[)=M]q-<N]k{ $1${0DUdp $+8 $1$ $1$ 1$/01CDETUVcdeopq  #$*+789NOPefyzͿ5B*CJOJQJhph5B*OJQJhphCJ CJOJQJCJB*CJhphCJOJQJhB*CJhphK8Ofz2Nb{  & 7 U a  $1$z{ 123MNOabcz{      % & ' 6 7 C D T U V ` a b m n o z { |     B*CJhphB*CJhphCJOJQJhCJ jmHnHuCJ CJOJQJRa n {            1 @ T f v           1$ $1$                            0 1 2 ? @ A S T U e f g u v w                              B C D N O P _ ` a p q  jmHnHuCJ CJOJQJCJB*CJhphCJOJQJhB*CJhphR C O ` q           & ; T e x           $1$q r                               % & ' : ; < S T U d e f w x y                               $ % & 2 3 4 @ A B N O P \ ] B*CJhphB*CJhphCJOJQJhZ    % 3 A O ] m {        /CRapz 1$ $1$] ^ l m n z { |                     /3BCDQRS`abopqyz{   &'(/01OJQJCJ CJOJQJCJB*CJhphB*CJhphCJOJQJhS '0;JXhw  1$ $1$1:;<IJKWXYghivwx   012@ABZ[\uvwCJOJQJhB*CJhphB*CJhph[ 1A[fv 5>IXfv $1$ !456=>?HIJWXYefguvw*+,78LMN^_`rstCJ CJOJQJCJB*CJhphCJOJQJhB*CJhphV+8M_s&8HZ 1$ $1$%&'789GHIYZ[ijklmFG0JmHnHu0J j0JU j0JU5B*OJQJhphB*CJhphB*CJhphCJOJQJh/ZijklFh]h&`#$ 1$ $1$#0/R / =!"#$% P/ =!"#$%' 0P/ =!"#$% P' 0P/ =!"#$% P# 0P/ =!"#$% Dda#pB  S A? 2  Xf%Es] D{`! Xf%Es] ,@W xZoL\{0Ȑ6٦^lcdLd8{Fh>X$Ԡ*j%H*\~!i/V9[)H,H7o߻{ww5fw H Q6Sx{` .:+-Ur뵵1Z Uo> +gyȽ}QB?F뿭&@.^b첩Oj&4y~oE;nm)N'}T{L~^Yge9x1dY'Jl#f0d?hFƅw00?9-奊Q"*#r}US"X^pƸ8ymblƸp^c\pŸs,;?O}cN;aG{E/a5_¼E_yrEK1\e?:+dD}jy=^(q)ʏr ]ZorOѫ@9d3BҹcPsGjNTr* XTlCy^ T A߃q}߃y]rT6Tt ߖ=9rrJrJ; RԠP@ݦ6'0n@^U%N(hS" ~9Y^x99m2)[/>C1= !< Ns y_D]%[ș,/Wx]+ 25v8}t'nr467Nnqy07qUSԇz'4zuUjt7[| A (;gKJ?(E({Tj:͸mc e23rhPffl,o'J,| -f oXP#7<V)Qb)~sR\i8QaUds_l4,9U.Upxdp? s֗#CS#!j͈ :eUDZ6)kN =L_^{2W( >Oon];^~7=>e3Ol- s,ty|p[lej%VmV>k[A_;|: 1&`^[+-ߐD/yd^Y?˹Foͳ ]uwЏ,oxR^My߳ ; kMCS&@liQj%ڋxE٩p}:S"F܃fq7fF{CG?]UPs6ػ=hnĭUh:Q5Fe}콣oZ6w!G&'C6z1'IҠij&A8ڄ;zw {:sӡ'2Zm Dde"rB  S A? 2 /{:g^  {`!V /{:gD9YxPU05$ xZmT~̽36.0lvw*#n, nvh #LdȲKg h)MQm٤-ҏƴՐVkJ*yιw/X蝼s=sޏ==\?i#S|={ЀYd#6C jDmuLt6F;U6ⷹN PnS%n_+_8" >FzreiTq|k% 䱅*r4{굪|mY/A'l){eGÎ;73u")u]2Yh[Tz&(h%y|?VתQ2«إ+fh/D=A=ԋA7A[ 9? |>_}>1b2I 1@wC#ۡ^ƥ.J'+Ca @{|dEFG@ g!8$z֟#4gJ((^~룣id,-:~k%G}QT6y #zL': ׿!{J{KiM[D1~%~f?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~XZ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWY[^_`abcdefghijklmnopqrstuvwxyz{|}~Root EntryF F` ɾ&Data zWordDocumentEObjectPoolH aoɾ` ɾ_974030351FaoɾCtɾOle CompObjiObjInfo  !"%)*+,./012347;<=?@ABCDEFIMNOQRSTUVY]^_abcdefimnoqrstuvy}~ FVISIO 5 DrawingVISIO 5.0 ShapesVisio.Drawing.59qOh+'0@P\htstets(N:\u\stets\writing\cVisioDocument 9VisioInformation"SummaryInformation( DocumentSummaryInformation8 Visio (TM) Drawing 9R\|8YHd !fffMMM333,q0,T d Arial)-":-3Times New RoWman)-3Wingds5T?? Y@-1''J/T  hTJbOSS0{Gz?@CPjV]uVbUUO OS? T666 NP U    UvPaC G#G#G#G#G#G#G &H#O`$$!>'^M4!>7 i>}p'0U.2?E!-67gjP>603206&0B!4?6`2GT2k=\- 2 VT ?@96L^pu I5L2?Op??ZX0F6ȍ03P@?_?V6CG mON9:OOOOMjYgPJ?@_|Y oo2 q`?of.fT+Rjjg4G 0kD_ąO?oogO贁Nkro8wYo}rTih54?t51w1%f3_)kPc@7B ~p& 0' 1 2 3 6w E@ 0"#U$0% yfB o; uPo|4uT AoJяo| v 02u! -?JtTY>5$e%cb4u4 7JAi{{ Ěו\'uLih;hM_q  0 o3EW:{HG 3nThis connector automatically routes between the shapits.rl to glu -to-". method3Vb?7i68? H"thOT@?, =,4P u `u `A@qu `u z b|xub u` Q:u e *E@5?QV{{)>5kd "&"b* j! h.!j" a#B "B P2rq?o2Ix ?n$v%?b rL`-@br  u`.@# !   ( t u )b#>_0 A`9Copyright 1997 Visio Corporation. All |2s reserved.`shape.hlp!#26006(24_lUk0I E aC" @5+'Z&EJ+ #)L}~i 0;='2p"q?0N3%}%-ZU F9Y#B@Y_  ;9Y i @l9Y/ +;$9Y0c"H+oRc(47:,)\(@?  8)\(@?"#$% (*<)\(@?()*+,-./  ,)\(@?4 0)\o(@?789 ",)\(@?:  @B9Y &d:Y5;3:Y6;LC:Y7W';̯]:Y^W*;:Yg1($1($1($1($1($ EB<9Y 3:Y C:Y}G]:YG_n:Y)@_o:Y3,F hTA@* ?<I?NfxU) <Ewbbb b ҞN;e]H o D` Connector`bubE~ ~>RNetwork`rp u 3(33;73;303 󻻰'Fi&3_Use to indicate a communion link.less network, etc....H"}hT@- @@_|3o?@?>F?P-DT! @?u `u `b~qu `u zO!xu|@Gu` w?u @b]b kS r 7 G,4TU`?5K5^l - ) PI. >.#N .$?P(d ":  `}uL`u`.@ `Qps-8R?$@`@C+    # L@@#/0 r`Shape.hlp!#11020A`9Copyright 1997 Visio Corporation. All d2s reserved.o C110s"lkU%0a1b!'Zlp `}\  @@22Fj#}D A!17*??@K.3wAAO A wB3&C=@?> 1l! r@@ 3?65j#r6F)?@`f#Q0E<P@ AB3QP?1@AF1cP={P {PwPwPXqmrT!Pr";#$e@%QN0P& `ID"[1Enter inventory ID number0rQS_XaLoc}2`cequipm` led-jRVAoXD@` Manufacturer [1cmh name-j4!QonProduct N`PK`cp&tnRYoodel ]N(b#[19{Amr'oZ]a Descrip*hc$[1tmdw-hH %%e@$b?8i6@ t??O }p-D#F9Y#B:Yi ;d9YCIG@q9Y@H+t9YAc+;9?Y=F hTA@* ?<I?NXfx** <Ebb{b b NeG D 6ww߄DG wDwwxww/ Ȉ/w|/ <, t2s< 33M{/ iwȇȇ.| HRepresents a COM object. Control handles determine inface locations.mbؿ?m?]%?/k4 G hTA?* 222?QU)os <|EmkkW U    U# +(=IUam y  P_SU    U U B!"wS!"" " "W@:a #:+ += =I IU Ua am my y  "1"1 21c 021T21x21     @  " 2A "Aw2A3 B2A? f2 X gu`[9@u?Io` bA@jAoD o@F A .A! LAo dA9 |AE @" A (A! FAo ^A9 vAE j πL@dg@ bOaP[A~`9Copyright 1997 Visio Corporation. All ~Rs reserved.p`software.hlp!#5034[P78߄<eHTT T T T T TTTTTTb]`Z]`R]`J]`B]`:]`2]`*]`"]`]`]` ]` jSnp4T]R@Df2pr)'` COM Style 1i2uQSet aobject sa$P$Q`h@@A@AHd=` Prop.`br*aO~@`3}+Dt+P]PlGpuY`o@ ;`_HidePntrol Handles`_Sho-w~p|rcths.tr~ t`` NoCtlup@Hp><d*l$ș3?AOr?f@Do?$ r  U &,+#@6L6X'6d96pK6|]6o61*܂H" d ܂,Ґ@܂! @P#k@r0~ % 7o@ ]@O@ gpR++ à^=@a )k`yO@u)#q\n|‹)Uy#A9ɓւӔւ,Zւ} #@$0@;GYa!r!轗@Ң 7:&@%y@Ђ!֑Ђ2%ЂW;rګb!$p;HҢbq.LC `heQEGra`(ʂ-Ӕʂ,Zʂ} #!%10A<ϿY+r!vߩ Ң -LAs`width Ă?ӔĂ,Ă%, ,#!%C0 AOƲÐbӔ0bv@񒲂@C C`@$h0@;Bo?YbRrA]?_?Ң'_O#O5O_ƬÐtӔ0tP񒬂`c crz0A`;XbO@t|br8am;_|od_Ңo___6ƦÐӔ0np񒦂ps sPep;rgo@rrq}ooҢ H-Ӕւ0ւ @  Pe9;P@tr0x3t\Ң.Eׄ Zs@[R0ZsfyR@X `Peô̢_@Z9؟=E M VG 5pTB3?ArۀT a0p1A8f]d2?H`n`Aږ?pu`~Gu` 1ڡ  b'bX\٢ea`Reposition Interface$˜Š D0G1`r@Ϥ϶ϖ G s6g0EV#7?#8!p[t0p߂ߨ߆"OQMtrbtj>1FŔ!<FX|N1A#1ŌQi3bytyڏtytyB2vPf׾ Y Tpr 0J0v0ԭ0ԑί0eu0I!Y!&0-1=1R0A!A~0AQUݰrݰFݰݰ_j>W v B } r> W1n1:1U1ٰٰjٰ6ٰ,Tic-P_Hide Control Han/dlesqubCOM Style 1q 2quch.g^ sTs])P*7+дD7,Q'@"B`fҕ`W-`.u/u)aD֖amP^WՀ@ cִJhmX T7Q,PİaZc1I\c4P` +B`#Select forma^ Obj\sh_ape.2Q`[d-ye??}SPU U"ls2N贁Nk?FxW6yd"C(:&t]sUG0"BSlxxQ SS~:#JR R S R6yd"C(:&t]sUG0"BSlxxQ SS~:#$@JR R S R6yd"C(:&t]sUG0"BSlxxQ SS~:#JR R S R6yd"C(:&t]sUG0"BSlxxQ SS~:# JR R S Ru `R@!= u`+& !alUz 0a q$[[ )% -?8_?[ 0'l1p4#?56F1 /!J0$Z[R ?Pg%H?O R1PU e0?QZO9!-! 1$! Lc!N s6yd"P(:&t]sUG0"BSlxxQ SS~:#R R S RPSq pz` c P5a(*(a c'b `C!T@ {__$ S&Sx!fQbtQ)v vt`v("xst^p@}IE!`d? Tq %Ncz crXuppLa!y{Hpq&{u!3/|@tJy{ r$z`uusHx`u5_vXusIog&1Qp 8bc#` dԆހ 0ߞ$2)j0"d?;03@07Q/"0"IMyInte?rfaceH$ hTA?.6?@6I?Q(-DT! IrA@sw|ryw|   u`b  u` 8hwZ-v Q}d-e??}PU U"lZs2N贁Nk?Fx6yd"C(:&t]sUG0"BSlxxQ SS~:#$@JR R S R6yd"C(:&t]sUG0"BSlxxQ SS~:#rJR R S R6yd"C(:&t]sUG0"BSlxxQ SS~:#$@JR R S R`PSq [pR` c P5a((a c'b `C!T@ {__$S&Sx!Q3btoQ)v vt{`v("Uxstp@}IE!`d? |Tq %cz crXuppLa!y{Hpq&{u!3|@tJy{ r$z`uusAHx`u5_vXusIog&1Qap 8bcu dԆހ{ 0w$2j0"d?03N@07Q/"0"IMyInterfaceH$ hTAș3?Ar?Aږ?@?AI?Q(-DT!rA@sw|ryw|  u`b  u` ?hw?Z-v Qd @-e??}ԼPU U"Cls2N贁Nk?Fx<?'rEYI,HQ4m#{*"@= uL`b-@ @s.&u`@!Ou `R@! u`b'' !alU% 0a $[[G )% Q@ F1_?[ 0lD1p$2#?56F1 /!J0$8Z[R ?Pg%H?OR1RPU 0?QZO!-! s1$! Lc!N s6yd "(:aF {_G0"BSlxxQ SS~:#$@R R S xRPSq pz` c P5a((a c'b c !T@ _Qs_#S&0Sx!QbtQ)v vt`vW("xstp@}IE!`d? Tq w%cz crzXuppLa!y{Hpq&{u!3|@tJy{ r$z`uusHx`u5_vXusIohp 8bf ^dԆހ 0$2'j0"d!03@0@7Q/"%0"QIUnknownH" hTtAV?,4443Q t`bA@qtwu 6 ?u`uu bWb  2N贁Nk?F?x {>/@ !@)X/ [r !] \ P ObjectNamegTwU!-.%/1xkp)  M` LinePattern ?~@3B6 "P?ze1 B5z@)?;?M6FillForegndke?w6:?9??L3`Rounding*10<[Ib4O1h-F9Y#BL@Y> ;9YCSG@9Y(+;[:Y)c6G+@:Y_c=H+9Y(9Y[-d9Y29Yv—9Y;9Y_@9Y E$9YI9Y}N :Y`V:YXL:Y\͗:YajF hTUA@*??<I?Nu]) <Ebb bKNetH ox.D` Connector]`bWb~ ~pu 3ς ;}32;303;󻌯52 2 3?BDrag between shapes to indicate a flow offormation or control.mb?6i6$X%??QH" hT@?@RQ?,C]rB<,F2%@(P  Vt!$S 1%!2t!%? d!3|@ @z  ?u`u`4a#Oe?`a2pa1!EVFP}nKAAC1 H1%0)0U+ARbQI04 t@}4w%`Move Arrow Hekadl0a2}% F\5:Ye#B_:Y3f} ;|9YeFMG@9YF+;$i:YF0H+j:YFF hTA@* ?<I?NfxU) <Ewbbb b ҞN;e]G oxD` Conneoctor`bb~5 ~pu 3 ; 3;(31 ;󻳆3 03F3;GQ`;iph _SlG+1 1  39Drag & drop to add a 1-D open {enrrowyourawing.G hTW@@* ?*D?P=u `u `bou `u= x!vsz@E"k[u`TIUu @_b=B b  )?@D@@$akt~' >L@5 +p`Flowchart.hlp!#5224A`9Copyright 1997 Visio Corporation. All m"s reservedC./ ))> B I!0"~ :eH4u 0pp 809RdAXD6g?D6700n xH" hTZ@?,4Q433P%t` -qtw ubKb u`zv u b| b r`}0lUWrao2qUP?rT?r[r YJ *Se r hz(P4 @r+zz+Eea#,hr!N,"/.&!M-!*dD(" R&'W;0g;0';0u7070g} d3!9&x??  a#*<?ܔ?? rp 03#t1'N'@R28H8HH" hTXZ@?,4433Pt` -qtw ubKb  |u`zu= b b0O贁Nk?P P>XQ   N =twQ(-DT!?} !+ @&$ @@0 `0/20 /AlU]H6a0?A?r]rN&?(!  @! O&?"N!j #\4+>%"1I=/ح%E3 #% H-602(00MK@K@ۺG@G@R>d ??R6OR635A g@i%$%?4OK 1&2$ Fp!P"S0u`TȔB PXb0PXub ࿀?? CeῨzG?p= ף?j34?=}p)#F\:Ywk#B@Y_l ;:YC?G@d:Y9mG+:Y:c@H+Ġ:YzoLw:Yq+;/tDF hTA@* ?<I?NXfx** <Ebb{b b NeH i [3󎻂3 ;3;;'32;F@B3LG;\ Ӱ3g:3F 3evF?R`$P 2 K3!Stretch between two glue points.b0&d2[ɿ??g: Di6E?? :H" w}hT@?, ?@0&d24F?P-DT!u `u `bqu `u z!Sxu|@G_u` Qu @_b}  3,* , @J5+eJ>#?@3?L@*W,>,/Q(d ,nJ $uj 9`b$? ) @Qb&@R R3 * am46G8b `1o0 `shape.hlp!#17065A`9Copyright 1997 Visio Corporation. All 2s reserved.D_4}lOUE5 "=0aB@)*bH#rNw ?\@)t6fF%8Ar#NAIC\@SB# #@fIr[@#IE&A #}hMH\11#a@(iF\.UA|@!C 1?\@(G>Wx$6HZl~|hUT@,}UlUXD0U̡hT@,g&0TN=6qW))*I0+0Qm0&/8+K,A2z1{Ф@@O?e!"%%G% *+  *2=s`Ae_@e,Qƽi2t2@UemUU ߏ"KO>O&P0 +@c00(`rŖ/FXʞ-OON__'_iT__湤_______o4oRoFoXojo|ooooo ϞO@dedϠtNoG*<}`rÏ̏ޏ/8Jenӟ0D=4%zR<񺝂e&f&Oԯ m4m4--&fk婄}.D t9t9Ҩ(@RdvψϚ\Ͼ͙Ut`L8U$UxUdP<(/$!/i/E/W/s{(H.T'@ ё 30%|lPF @=4%?@2( ?P-DT! @0lP<5. 0pcu @z3@rvp d1t9z2z2'؂-ȪE&?P(<%kP pP`0'p I2oal1U7вuw2$ 3 .3񳐵f/?@`fƵWlXuD0c @AJz0+@p"U# $ %{ (DA,JN3 mE0Ds(Network Connection (v//y ///31/b_2o'o@Ÿooooooooo#5PYk}* nVh¯ CBTfxҿSo_?>ͯ߯(:L^N`ߔ˿Ty$D0J Aairi'?QC_T 5_?Ɨf q!~e .os50 %-lA0$55%߅?PbmyׅT2 Z $ VD  |F]-??MVր\Њs  ᾰ0u;` d?U0=0b}b!& &0{Gz?Gձb0&ULc@eX. ] Y J"{eyPao@58 Y1C yg p-LULЌLTPO4b!>Applicationq$e hBi] Ue}Z -T( 3E#N(N^Ϡϲ |@Rdv߈ߚ@߾p?d< /_ro?9+0OhOqnjžTH@ƆO03B0F2?  //./@/R/d/v//F_////@???*?\_?K???_OO%O7OIO[OmNooOooo)J^Mn_P___Ǐ_ o)o0oBoTofoxocoϟ>Y{RtϷP /b0f2%5Mc-0r̯ޯ*N`r࿺̿&YzTf+Ϝϐa+b0"5b&ߤЏ51?8Q (V蜆N-uFыUX%Oc#03GB0>FU?FPl~Z?/ /2/D/V/h/z////z_/// ??.?@?R?d????o??ooOO3OPbt(:L^pϔϦϳ$?HZ`LpN ߠj 0BTfx,>Pbt///(CL^`LpN n/"4FXj|O //0/B/T/f/x/?//_//__?,?G?P?Tb?d|tp ?0:K!EЀ3Ef?0 JOO E2H/vFGzD:g}n@aIpNOIfOOpOO,___<_N_`_od__^_}A!o3oXWoiok01:HBxo?o??#O5OGOYOkO}ONOE1$Ugyo^ ǿп5@oIdmuon˟o ooE8[Jgna;MCq ҿˏ@"Q7b}φϘϑnιPbtO//(/:/L/^/p///?//_/?__6?H?c?l?~? |' ??_?? OO0OBOTOfOxOOOOOOO__,_>_P_b_t___#o__ۏ_o@:oLogopoo(o`j AuSup*z%7RxOfwtjpy ~8L&8.\nޟَο>ϝqA Sxw`a.jH)o5 5CUgy/e?QDu,-U;iτύϕ*̟*"eX{j֯%7[mc** /`:B/q/Wς(ϩ +lf3EWi?߿K#5GYk}OJ? //$_{/ U/Z__/"$ʁj$/_//c,`"d ?0!;5;1h/֨ih<=60ՈPOHopFF3X6@D6@06J1?18ProxygB \-a_t-0.80E/0Hq)d-`r@oRf!Ge5h0&Wd2e5ɒGf}mvw80pY @z3@VZlpyhl}/-!ւՃ p IE95 -Qոho7B Jjoq\.)'zΗ>=C([t.@r sq-FDM}DVŶ\!"GriddSWhite lBlockSizu Y!AvoenueRYYtrolsAsInputs7ResJumpK_Fa 3pjr19PlowOnDropNet- NormalHaB(k filShmm-kIDLocationyArial c-eredtop left )Times( 0#*)'ManufxurerProductName 78936).-/(%41#//:/L/^/j////t///??6?H?Z? f??5, :_ ? 1($l 2EB,:Y <$6I?X|FArialtܜ s g(BpH@(?XJT:4lc7Y @~8YRL8Y8T{b&B:Y!܉8Y(1w8WY{$ )D?Y'w8Y?I`4g9m2F@YOd?w z8Y:g;YZ*Dw9Y=P?y8YW7!op\Figures\dcom.vsd՜.+,D՜.+,r.@LX d & PagesMastersPage-1Dynamic connector Comm-link COM objectDirected line1-D Open endHollow connect 1 0dpx_VPID_PREVIEWS_PID_LINKBASEA   FVISIO 5 DrawingVISIO 5.0 ShapesVisio.Drawing.59qOh+'0@P\htstets_974055463-F䄸ɾПɾOle CompObj iObjInfoVisioDocument]VisioInformation"TempVisioDocument$XSummaryInformation(TUVisio (TM) Drawing R\|8YRd !fffMMM333,q0,T d Arial)-":-3Times New RoWman)-3RWingds)- $1Courier5T?? Y@-1''J/T  hTJbOSS0{Gz?@CPjV]uVbUUO OS? T666 NP U    UvPaC G#G#G#G#G#G#G &H#O`$$!>'^M4!>7 i>}p'0U.2?E!-67gjP>603206&0B!4?6`2GT2k=\- 2 VT ?@96L^pu I5L2?Op??ZX0F6ȍ03P@?_?V6CG mON9:OOOOMjYgPJ?@_|Y oo2 q`?of.fT+Rjjg4G 0T_oiOF #0O贁Nkr Cu 5\w>8q?@pB p * H E@ 0"#$0% ASezxQGj# U3v4 )59Xgo2wL 5u(251w1 Kk1476_ _:.EX+o`ez5z} 1* x*wd iF埅O? ׏鏖L2wT/AShWsJIoo1Akr5xTTih4?PKS1) ۟yOas gύJęHwČ{ߌmzu'u /ASepu"gx\ g N1غ6N 9NJƯe /P/Y$o///////?#?5?G?b?k?}??V%?????OO)OOOOKO]OoOD`\\Heart\chaucer odoXXLettM_dPRIVA|c'\KhCa cu//)/;/M/_/q////////??%?7?I57!winspool\\Heart\chaucerNe03:F hTA@* ?<I?NXfx** <Ebb{b b NeH u 3 ; 3;(31 ;󻳆3 03FDH|Q`;jri _T F+1 1  3>Drag & drop to add a 1-D single headerrowyoumraw .H"w=hT=@?@.?@P&d2=F?P u `u `bqu `{u z!xu|@Gu` Qu @b   -- C>6 @5+%?5bP-9-*HW>/Qc [$T  9`Q(-DT!? ) @>&$ @G@F F- ߀L@+ "2 30 A`9Copyright 1997 Visio Corporation. All P2s reserved.r`shape.hlp!#1?7060c 8 b166  }  tN`s@1 6w(}l_Ura1b@\.s rr#0r1C0 09 9w@7H$#IEC#aC!9B@6f"%AMAA @aAL@rq@ rBrB@)FLBB,1-s@t!PC/!BX$%*_d*ZBLSB@@6OHFA[`c`!```cu> dr cV>Vbo>V21kCAA, %?tootO? 0b1AAWTT poAu bP&ɯd2??7i6(g: ?8?}%-x+ FT:Y#B?@ABCDEFG }.VUu@ "#$%&()IJKLMNOPQRSTUVWXYZ[\]^ v~m|.VUu@ "#$%&()JKLMNOPQRSTUVWXYZ[\]^a v~m|u,VUu@b  @BL<9Y & 9YlY[;%9Ygk&9Yx,$9Y1($1($1($1($1($1($1($ EB?W9Y [9Y>`9YG$9YG$%9{Yg &9Yg '9YF hTA@* ?<I?NXfx** <Ebb{b b NeH u 3 ;3 3 0װ 9A0~B V0 ] j0 o6{0+oH30@ 3hStretch beside a connector to indicate dirion of flow. Type variable names ata passage.b?a,Œ_`?8i6#5H" }hT@?,;?f?A>FP-DT!!u `u `bu `u z@Gu@Oxu|u` ?u Ob  U@%,4@U?HKUv$$3'N*q .FQ #sL`-@r @U * #T Q(d @:&@A@   '  L"3' 2 n@&a  }  tN`s@G1 L6k@&g8b>40O0 A`9Copyright 1997 Visio Corporation. All 2s reserved.`shape.hlp!#17050d:"w00lU0150*0q+/>JMm$,q@d [ ?Q@SF r`$@߀>@(`!`r V!(S!@2!%? @T!3|@ @0 !#F#!@'n 1:1Change Arrowhead..0?17Tthe{ aU sizPnPtyle forPis connector0!` b)`1NRiQ!0o:?'2%  3R%}p-ȳ( F\ 3  2o2K IL b' L| ?  3CGlue between two shapes to indicate a generalization rel!ship.mb? _/w؂-??H "  hT@?, 4*P 4% uutyx tqu{u `u `bu `u  A@u` -{ub bHL L2NNk?G+r#g{?h xL^b]bG> ?}+E:rK?9>9':u O#4[#t: C/U/g*q #g#)t//$! ",0&0t :2 `UML Property Editor{Q\nh@?0w#}#/u0 y???n#a]] A  tN`zs@A FfqC@?2ث-LA?BDJE?b L`-@brz? @+"y@u`.Qr֕GA1&0/4*2 r,0 .@lth:^bT T QBD|SE?_?QbkP;u@`software.hlp!#5293A`9Copyright 1997 Visio Corporation. All Rs reserved.d@k <> lUd h0000+aa"`A"4z %4F` !,f)E0O>kMl`PA @@dbb r^@` b`Rdae ffe ra.Ogc`c@bp c[|dqrq @cacdWus @rLayahvHpecYt pcpgvqsx{rw srvayduw@c2%433KI~crabG`ard̀| ssG ,3)v@ch2h׏@`yaeq`ai"p•͓ rH1wE^R],@@ @"l D3d /l6@@u0w&?6m$Xr ˯ݦ9G)ALaZccc­ f`n@ug`Lg`oI@ų)abOx° Ʋ&)ܰm@qA螻fxQ Controls.X4A(pL 'ϠrHrВ~@qY}pkpoTE1@(y`M5ҁ@P P `:=А? 7Ww ǰp | h0]P;Ld$ðJb/Li@Ld @a*$rkHbFb f ce@\mg@a0T` Arm PosiQ;%?ÜactE',4?/j %l?PՀf@h";+)445v9C'w?P tuw KÞA(#qh 4sp0Bt C00rRep Text@b &6b lDPgg}!T%0%-SIy&2wU"#c$P%}&d' (@) wY ;?9Y"LG@ g9YnS7+;_ܳ9YoS*}H+Th9YSM F h~TI?*A ;*r#W) <Ebb  @ Fb I0YYYT  Y YNeG gT]uB  D   U/ 3 ; % "!x&Lp,?, //q$0&& //A ??@E 3?E?Dq// Y=j=и! ??@U ??/!? O ?"?EOWO// kO}Nu 3#,,55 D"G/ ] mx  31Glue between classes to indicate an Association.mb?7i6d?p= ף?-4LG hTT@?-@?*;( Pu `u `bou `u x vsu`.{u `b @nk  <k'h)&'<3Fu2>:T?Q6*4K#"W4*G!6Q/c/u$lf  tN`zWs@ &+a { =#T/$ / ??# ie$!b r4 1`UML Property EditorQw@4 ~0 0;A`9Copyright 1997 Visio Corporation. All Bs reserved.p`software.hlp!#5292z2VM>(5e]tHDUD D D D D DDUB@:@2@*@U"@@@ @G0Jnp`1fBA8ies..>@$AOpen= DialogL>@`00ml?0 ]l@C@ Show Err0&ARa diagnosis of the qeQYXP`jQX~Yr#@_j~BA ClearU)A!1cR state fromRshapeYX7eQ u8@.S~@`ugMessage`"`a_b_Ro` RName1A)RPPhideRn`UAsOsoci#CZW!eQ1 ubQbr'd` 1s' aa`P@  0o!BARRolDpd(ASoftYXP`#vqA",s>3}rHs8Oa~qe Bt)ByB,s?3}BHs9*k"BARCardinali0v/JA']cz-eQ9{r@3}qHs,ЏB@)rMdA3}AHs-okBARStereotyp` `u%]s noQ``{IpgP#vr(3}Hs&^a~y!IjU=A6gTw""u~,kV ./(0I0U1u@2G034@5@6 78W9mn"@#*`$%]@;ǰ?u)0)}&(!k%+C@0I0Q !*48V|R a  (rPÇA$w$- g̪ "Ě1&8>pH7@hzD ӎ (߽@w*)4 84 8o2# 4*Q{+`R1Nq@$հHGj4p{Pv{A@6S1*Lb6#  T6T !)363!0a d6d!F&@J7 A as9p RAnBBu@UC@DG0EF@eG@pI1z? "@0r^1u `u `u`rL1uf`ug`ak@@4HaX?d@au `_u `ui@@Il6>p LB!0/ e@S!X/j$g"#Q`? Arm PP$A@0a2@AZ[2 '2"$@0 >0YЕ8>l@ x0@h\d?&0&j@Q2n]4>"H#"W"f@!w"6h//A! $ P@ 2DDH6?'?wM1@Qt?@e?/v1@BB>"AG$1A? t?u??,@E m!@TRn" d2[iQX@@U?A:0@=0f`n@Zg`o@0S>`W*xQ@5@Sw*D:3m@F" A%C!"@ B]SMS"gb}d"Zolm`~g@`@iab@@ ohidh%X qj[8@pAT! LM";Jr.H"hT{A[-?@I6_@q?4k?>4?P |rb jt` u`bWu}H 5t `t % A@quJ}*  #uL`-@mm.s ?bb Ku2Q &b"L@x np@ [ra~!# & llUPn ~!ʿ# @&X!>//A ?,=b1'J?/n?/?900T 4dr p=F5@.E$G jp]L@PCn f P) }@z@!(S^3JBe ,i!WyB@ i!4e'Q0@V'!yB)H"hT{pAI-?@/I?@q?4=4P |rb jt` u`bWՓu}H 5t `t % A@Uqu}I  #uL`-@mm.s ?b_b=  *2Q/"&|b6"L@% npA Vra!# P>/b T.#4u  k0> WlUTnG'!֖!ai@6,=1'?:?,O=#17>O?bO?OI]@Xx 8dr MVE@"UW jp5@PDSU!n f h) qPnP!(3>R} -!mR,  i 4'2%E@sPV?! mR)H"  hTT@?,*43P u `u `bqu `u z Sxuu` -u b bA@} 2N贁Nk?5!p# }+-r.{?F5 <qt`tR4c ]   R " /" "Y#" """N/`#2"8"q*?-!h-a}" !  tN`zs@! &  +.(2 ZN'26>߀L@  R2 N0Y  r Nn0q0?@؂-1?Z45?b 6rr  'rz}1r1{B03;0826L`-@FM&d2? @%@u`.@  N0g4b2 m&B#C A2ؕ5OFD2b@8>`A`9Copyright 1996 Visio Corporation. All Rs reserved.lFP +lUD% 'wa3Fy VM1 ^3VN3Y1: 1 J a O>0 c0/$ b b 20 06!Id0W` di!i.o@`DjRg`Z1Y1n? gla\5ePEd@p ds[q)q `K9`q "":TŖ놓sߗցmc1zr G2b2b 6>># 1XYb=^c3r昑33w:!9"2%#8#%:! 9" cFM n!Pe#h#d#l%n!zc:r^f :7DN|L2A9Ny&2P@2q 8P1``?P52#L2N27 PP@Ѡ98  ! ,!Ѡz89i!Ѡ4 'DзQ61)H" hTA.?@,?,G ?P Upb At `u`}.u  A@Mu9ߠt `g* x>, ?4<H 7Q(-DT!O?(kb  T?  Wo2q ?/&&b!r0a  V ra # MvlUnU#! <RP .T!+]%"Q$\-t!A6[5<EKD * S0 R0AG&=C=2D!A[E?8B7AI(5?61?rS0@ Ar"H7@3@Q@dr 55 (3/6/6puq COCXNi 4_'2UhR%0gVt!)H" }hTAf-?@A[@?>F?P Upb At `u`}.u  A@_Mu9t `* >G ?4<H 7Q(-DT?!?(}kb K   |2q ?/&&}b!r1a   a # E. nlUnT"! <RP /T!+]%"PQ$\-k"A6[c5<EUKD  J0G=C52DA[E?{8:7AI 5z?.1 ?rr@Al H׋/@+@_Q @ dr 55-'6'6puq COpCH H"hTA[-?@I6?@q?4=4P |rb jt` u`bWWu}H 5t `t % WA@qu}%  #uL`-@mm.s ?~bb Q 2Q &b<"L@ nraa e#e p> & llUQPnc g!#e @&!>//A ?,=b1'J?/n?/?900T= 4~P) d p=-F5@hGE=G jpjxe@iC:n f@@!(]Hz 8~!BS,  i0Z 4'Q0V'!B)H"hTAI-?@/I@q?4?>4?P |rb jt` u`bWu}H 5t `t % A@quJ}*  #uL`-@mm.s ?bb [ u2Q &b"L@x nraa e#e p? & llUGPnc g!# @&A!>//A ?,=b1'J?/n?/?900T 4P) d p=-F5@GE=G jpe@iCn f@@!(]Hz 9~!B,  i0 4V'Q0iV'!B)H" hTA.?@A3??>zGF?Q(-DT! 5%>A@qu ipb Xb?Iz8W( @b t` ~tuw` f?_u` %O9>} >  RV2{Sz? 5h arfq?:bh>lWU}a"rp6 _A65@&,|%>C[R-t!f%6@'T/f%'p7H" hTAf-?@A3??> ףp= F?Q(?-DT! 5%>A@qu ipb Xb?Hz7( @bߐ t` ~tu` ??u` %S9> > RV2{Gz?5hv afq?:bh>{lWUa"rp7> A1@ *%,%A6A#!Q(d'\#u!A&T/f+!_p#    (% & {"F[9Ye%#B>Y'} ;,V9YC];G@dOC+;41:YC4G+9Y(D H+4Q9YE2|b9Yvؗ9Y7^9Y?̗9YyBL9Y#E9YG9YIJ9YLfF hTIRQ?Iݷ_?A;I?Nu#+)3<EbbKNb b? z  @4FF?.b (lAY    etG} gTcɪB;  - W  %  k o *w E ^!qf&,?,//!$l 6)6  ?2?} H?Z? o??// =Ц=! ?? OOk!3OEO ??OO / ?E ON ww w|ww_ww|, - -4 +=Oa~ ORight-click to run the Property Editor and fill ip ies f Class.b?ؿp= ףDkF ?IzGٿ)\(lH-H7A`?G w hTX@RQ?@Sݻ?A?@;D?P_)o3 kQ   z U4?4444444 XtL`-@rNbrM< @A@gtu`R!u )o`7!<$ צ!.u2|49 ARPbt}ӏ3`P8  1 Œ1t%'n ۴/@Qbt s+Bn##nB٨4`xV@@D4t uĴぴqUpЅ״@Dp״HAO`gBf` N4 dpѠдܴ@۵6x@槏E>eJ @GdaAUgq1ݳ6??q .U' A#!؞!AoLO <Ԑ< +!Mf/z/.'/)+!-!#%.'/)/E=!?!7?y!>2/?!?)Z&@$@$@P$@$@@@tj@<@ H"  hTA?@}'6?,_?@ `H=3H?P t` -"mtwu`bA@ZuL`-@>pMtL`bՐN  { @b . 'u`z1zbSbg gJ*L@2q?UTT.cbag7r#' jK:"|h(c !`` {ra ##ayh\;S l^UXo%#!# ,@15bAG*1' G0F0>??,?5Ef?x=17Ж?$??9 rrG0@A '@'@h :ir o$ '"gggggU!T?bD_F Hn\OnJIU<:"3C"O /!C M/OONUOOyO0_B_F gPNoj ?_03R0VVjjg!T?TAfRXgR fya!N-#(^A9/!&ތ @ :! `f` zh -# {! "   !/q# S,C0  k  uSybH" hTA?@II?,?@7=3H?P t` -$twbA@ZpN uL`-@b>M?tL z @CW3 *b .@A{O? u`zf{ulb  "1__}L@R7r#''0K'Vw`hn9'  y@y  ra!# , olU[X?%"!# ,@fjvp|!\  0 0>/??%E:?L=1'j?h/?) rr001Q 00h":ir j b?6O03ZB0QF  OGA! H" hTA?@7?,?@?II=3H?P t` -twbA@ZpM uL`-@b>tLN @CV3 *b .@AO? u`zfulbO  ""___?L@7r#''W0K'V;`n9'  y@  ra!# , olUX?%"!r# ,@Zfjv|(!\ 00!>/??%E:?L=1'j?/?)m rr001Q 00h":ir j b?6O03ZB0QF  G A! H" hTlAn?@?,?@ e=F?P =t`bu ?u\` b u`b @A@tw/V~ jq?$?u`u}b38 8  LPV0{Gz?5r4rL@KVOX%R7rp#'KKz+W@q ?@I_I %%a uL`-@A A$.G"R ,MPU^X(4- z--I9Oz  3_ aRr+aM1R3R0Le#f߅DKlQU$0P0M1B03 ?95=,w[+k- A  B&@>?- O5EFOk-A7vOOOj9 rr!@A <0P+0&J i }p[J FDYPWg ;/1QSI@YZl,=?Y^O=Y?a_=?YcF h~TIRQ?Iݷ_?A;I?Npu#)%3<Eb{bNb bG   @4FF?b l%Y    eG  gT]cuB;   - W  %  Uk o w %E ^!&L,?, //!$l 6)6  ?2?} H?Z?@ o??// =Ц=! ??@ OOk!3OEO ?"?OO/ ?E ON" ww w|ww_ww|, - -4 +=Oa~ u ORight-click to run the Property Editor and fill ip ies f Class.b?ؿp= ףDkF ?IzGٿ)\(lH-H7A`?G w hT\@RQ?@Sݻ?A?@;D?P_)o3 kF  R U:E:::::: :XtL`-@rNbrM< @A@tu`R !u)o`)=!B$ B!`UML Property EditorQ@.`; lki#"> b|rK@R=!!> $ ! V+A~`9Copyright 1997 Visio Corporation. All "s reserved.!software.hlp!#5288T($k'!h\0=e8H44 400 0ή"nph!$f`j(ies..*0$!Openm- Dialog$*0> !d h/z%> B$B!?k!Supp"0s Attributes+!#yFtheG compartment%HprVe3`u$0_.attszD~@` Ac1s.C2D2O!NRMN ^OpO @3OArVtOGWNopsOE3O[]P)_;YH_$!ShowJ!Yl%H0c2V`Uv0ble _4V1Po]`j !U!>oPkrYjhrWm iPoD5opz]po c! Dele@C[laP(! y and i2ferenc}js@`Uml ShGapeIO[Ok0 YbErr{ &!Yba diagnosis ofBe%H`!=}N"#%bk! Clear)!! sta@fromRBsI%H71A RԂDEM~@age`"lBϏط" NmSt%ot-yK-!%Yb@hide* no!1&G'1BRsZ`їr($@a9 r& @  !qd `YbFormal ParamBpr{Wj%H!1A PrmsrYR Ţ/!Oު W 6>Ev 9iy: 9][\]^mTwo*iJkkx5;I$!utility<"!AP1gT_0t#k@UK)LMUNO"PQR %n&(԰SWT0UVpWXUYR`Z=R6$B!(; @8` ~*ñVwlH!ñx7`r"yƎ鴮x@mԒK?ɴxCDBת!.y—8?ERTfx֡ҁӓ7`> !J 1I 1x%*'r D"B!3DfJx w+rIJ('"'nF٬2h8`|Z?#P E"KO8x yĿqp״HpLES`rFj`: ? dtѤ@ߵ6@꧕E>eJ @KdaEYq1??Tu."' A#ة!A`s %dPU <FԐ< 46!q//.'/)6!/) ?-!.%9'#6d?!z?!2/?!?)Z}&'@/@U/@P/@/@#@U#@t#@<#@$H"  hTA?@}'6?,_?@ `H=3H?P t` -"mtwu`bA@ZuL`-@>pMtL`bՐN  { @b . 'u`z1zbSbg gJ*L@2q?UTT.cbag7r#' jK:"|h(c !`` {ra ##ayh\;S l^UXo%#!# ,@15bAG*1' G0F0>??,?5Ef?x=17Ж?$??9 rrG0@A '@'@h :ir o$ '"gggggU!T?bD_F Hn\OnJIU<:"3C"O /!C M/OONUOOyO0_B_F gPNoj ?_03R0VVjjg!T?TAfRXgR fya!N-#(A9/!& w@ :! `f`t zu -#  {! "   !/q#w ,C0T|-!@utilityk  uS ybH" hTA?@II?,?@7=3H?P t` -$twbA@ZpN uL`-@b>M?tL z @CW3 *b .@A{O? u`zf{ulb  "1__}L@R7r#''0K'Vw`hn9'  y@y  ra!# , olU[X?%"!# ,@fjvp|!\  0 0>/??%E:?L=1'j?h/?) rr001Q 00h":ir j b?6O03ZB0QF  OGA! H" hTA?@7?,?@?II=3H?P t` -twbA@ZpM uL`-@b>tLN @CV3 *b .@AO? u`zfulbO  ""___?L@7r#''W0K'V;`n9'  y@  ra!# , olUX?%"!r# ,@Zfjv|(!\ 00!>/??%E:?L=1'j?/?)m rr001Q 00h":ir j b?6O03ZB0QF  G A! H" hTlAn?@?,?@ e=F?P =t`bu ?u\` b u`b @A@tw/V~ jq?$?u`u}b38 8  LPV0{Gz?5r4rL@KVOX%R7rp#'KKz+W@q ?@I_I %%a uL`-@A A$.G"R ,MPU^X(4- z--I9Oz  3_ aRr+aM1R3R0Le#f߅DKlQU$0P0M1B03 ?95=,w[+k- A  B&@>?- O5EFOk-A7vOOOj9 rr!@A <0P+0&J i }RM Fte=YVg#B>Y6iC ;YAj& H{<?YLs$=?Y(w=Yy|=?Yo|F hTA@* m?<I?Nfx)ҕ <Ebbb b NeH: o]xD` Connector`bb~ ~p{ m3󎻂x{ ߳833߃!߳-B {D {W aV;^_ my331zeoVa33; ;~ xpxd ;({n >:{HG 3nThis connector automatically routes between the shapits.rl to glu -to-". method3Vb?7i68? H" thOT@?, =,4P u `u `A@qu `u z b|xub u` Q:u e *E@5?QV{{)>5kd "&"b* j! h.!j" a#B "B P2rq?o2Ix ?n$v%?b rL`-@br  u`.@# !   ( t u )b#>_0 A`9Copyright 1997 Visio Corporation. All |2s reserved.`shape.hlp!#26006(24ߠlU0YI E aC" @5+'Z&E++ #)L0~i 0;='2Np"q?0N3z0%}%ZU F|>Y#Bt+?Y_΀  ;l>Y؁i @ :YA+^KO>YBc"}H+%:Ydc S:Y ~BL9Y?R9Y6ZD3 9Y;Id\UML - Staticoructu_Shape "qDwp@?"FT L*hTwIVU|ou@I@!??V]yIbbb^ b:= XjA~j\b P } *  5%?H-=(P DD s:u`Fc!"N u)l& & %NIenuH 32 ;4320L3K4K4K4GM2s4K4 K4!32"b0Z0R0J0B0:02R0*0100 0 jn*G +q0b0?BIl &`wDBg0TB0HoJA0 I0gq0a0=@ A0 Q@0*]@_@`e@`1IDA &SDAG?3FIOO1DZ$F V@ __q0(_:_g@O_a_OB u]B]A __ u]؆]A ooHUA_AQoCOO@vV|UUHWe@ooa04koSH!T;f L@I jx= L @@3Vq @@sSp4Vr?^t?gt?l%u(Mu#Vu_uhu" .? #r,q)/ 5o2q)?(8:qb7'\\\ 2 L@P0]2fl#1Uj tEtaӀ׃׀Z/a0 + +^w hu2Dzb)T04n9OOL AdjustWindowRect(RECT *, DWORD, 0); HANDLE Create;(...Yint DialogBoxParamo,\,} pFlashi\GetPropv;Textpi Aop_'0x#&bJ%%%G!>t2!0g0L&A(7!0Vr30!P& !?8F`jkgn43~! NT395j=30JArkgK 9x0EuZ((ȝVl,4 "Z tŴt4'?O2؂-9܅ȁvpɅМIZjߠ(:lXD0p(4.@˜L"qp!aSYP% AP%<)p`z)࿈,0a10drq;/:A %@$(]&(0?@A@&(!j03BVC D E`F G\ phN+O=FU5`Jmr4_AdBu `u `>rPuf`ug`n;i@bc?d@TgOOC5#$_^G{ P{ PᰖPA@ABDeEU'1F%Ze4'_I a)a)8)TT1:@,e,aQZĿA` `?d_?@I1`&e/ep|ʄKIrPDՈJ_e.`o/g`f\oTXDU0/l2:D_6[?yEU;VKS<)^__JA>>ѿ@؂-p&o8oJo\onoioooGoo c/ASy P@1:Xfay?@L2F"Ǵ4) );MqσϕϧϹnnUpx3P7z$CUgYk4[3Ji /~+Factory Create -?HZ{~Ϣ 2 DVhz0H珠 A:DVhi杒य़ß՟//ASewѯտQ uDh`ǿ8\ 3)&Utility Adjust7RectQϢ0fxϊdϼ'9m/]o߁ߓߥߚ0T Trp "e FFE^z>|? - @F @vs^vs;GSj prt v' M G#OOK?u)lvpk%?2_ P>`XM_7Ҝ>|Z]1PUAVÌ7_̈ƅ+@ƅ _赏Ǐف<ڂt*\p `vH4 yh Aa?deff?Q(-DT!\!Uqp}AfdBnqc`xeugoug5o"ىXfqqea jo|ocԓ7oo>ѿ@(}'}߈П*6* N*e94G@U?@6ŭ7ŠŮżG&0{Gz DK [`ߢ % Uyߝ"4F,SDialogHandle )BoxParam|A4DL (\[!QWH>0rH4a ?A#zaњf6MXf5{CFϹ]ްH ףp= ? 1M[m GK>0L0AQFV55Цƥ5P E DU55U@# &%׫>`\@X@`@gSePt:0[$$$$$$$$B : 2 * "   00J(ADNgUVU   氕 gRDMSNP~\W-.P/U0h@1203pU4L5V`67pU8:90"^U#$z%l: U; < = ' U> ?@ A u)0&(!0TO`PBB C UD E F G!ph@_KOo Q\RO}_a^H_Y %V' a¿uqP )n!Xfl{qԯ毗c[P*!3EWi{ÿտ翌O_((:j^|__O.,p@R[@____oحo/oAoSowooooo*/H tTlD_K3Ïi-l.@Տw؂-aNxaǮלB@pr\ sݎvFɟgH lp$COOgO_qOOOOEI _@_E3EW1Q<2R H kUtT |՗?缙Ue& ;;9ȟ/)P՗miftT! ˇݿgASewωϛϭϿ=iftT _\qOaso%POa[ct &|(}'}<,>Pbtd`nRtT ߦ*B?zG%揄X$Ķ"5CٔH >J ףp=  /13C"6Q/c+f2 0/ |F`@@.q3x%z3uj v0:7u `u `b Au `u E@@A@/Ax&@#@:Bc0 u`(T?MARBXB^@udI<W@@JQ45RppRD @z3@@OB0BFMAb1RB$NFWRB.SpF4TpC]RI||3 XB>q@I +@6t;2rH?2QTѵUi^@bA9a|-m@^@AA[iخRa2`a8a=`=\BR$ĀWFh5uYokmap?mao0uTDf$(R!.n2AAw3x1 vm1w3QJ[+[I@@98R0pTtuj 3zw1vCu Cu O@?pU@^OpPvAO1vR0b0>B B L@*ߐP60d>b?@ABCDEFG_`bP k@B`9Y1($EB\?9Y~ N8Y"@8Y?R8YgUD#'dPage-1HairlinelWhite fillGrArial 8pt centeredMa1-D singleYeConnectorDirLed arrow100 opaquAFlow dUor 1e Generalization visPlacem,Sty@ DepthRgout=MaL ToClearanceXs50 Y7Nod91'1}pGridd=/BlockSizzYAve7nue9iYHtrolsAsInpu3tsges^JumpPOnDropName+ftop left!)T/imes(! D#>)*'VisibilityAE^yr"Mess= DocuS.otypAShow" !) UmlShapeT^!BkAggreg RoleACars 4B?eA5A!5=8 6omposi"5f?AChangeab@/q67C5Ord/q5PClass@6~"0ef/AEUP !APAttx"@9APOpsBgVDAP"AP)9\APPersistIRyoAP!Prms`QIo1 RLeafRAbstrac1 QdPSuppr qSVASGuidAS"bRTemplC3Q1QTqRs bRributejI`M`F%R P Kme.sFP[orror+`0cU9TDynamic cI33```i`Y`I`9`+`` `3+`3```````}`o`\`N`D`9`)`` .`3+P3Pp=p=p=p=pr=p^=pI=p1=p=p=p=p3upupupupupupiupUupCup/upup up`pשpɪppppppppapPpAp-pppp3ppppppvpZp>p"pp`ݪ`````q```Q`B`)`` `cLVUu@  !*H  58 @l 2@B-?Y#F<b:Y CUgy_`   ! UTSZBFDCGE\WNQ:864<D*K/ !Jio D+]VMWPI[?%#$D //:/L/^/j//ab^/LXY.,20#<$?/ -31;975='R@>A??(&??7<cOH)Ji?"??7?1($l 2EBd-?Y < > 7DVhz .@Rdv7 J3U 3 3%/7/I/[/m/////////?!?3?E?W?i?{?????\?7Ro0twEn0ryO 5 IODCw+VBALOOO5fAOp$GyMc@E_qD_PROJ0CTO_A-9 _S_kA!ThisD0cumCe2__.T.>__žD.@fA#!! U3/B/RU!"#$%&'()*+,-./012335678*9:;36>?@vA"/+=Oas`A"U<_, bUfAa !v!qUx. ?bzaP $8.B ߱a!3EގaSL kSb < .uN`{`U2`A-0Cș4`}6>aga@< ba~aHH"6]HG[MEsίWAttribute VB_Na~P = "ThvPDocument" Bas0{00021PA21-0C$0046} |CreatablFalse ^PredeclaIdTru "@ExposeTemplateD0eriv$eCustomizaʿܿna^ PGP*\GؑEFɟےU#`.`#`#Pu:P@og@uaP +ilPUsC0mPo0MuPc}s0f2SsPa@edrC3`2`dly`VuRulJBsŠo@U u@pla0isԕ`˞A9`.@Rd4`6y`nvψ$UILBDйL$ 5k PyeLuPb$M9ؑ3Y^ߠp^nWNTS@s0ePTyPOETBy`uP0 91`U0s@9+1`-u@0yP,1`DBR`8`46`9`D4)2k}IM mwPWyPQ# p 5 @bjPc2*82`6+F`(HA9;0JT0M@Ec0Xy.E .`M մ1FPP~d64[ x`M`r_S 236649b7=eF*DaRQU P  //1/C/U/:V///////??$?6?H?Z?l?~>&`'DB(~1`gAR ؀`VisioVBA0Win16~4321MacProject1 stdole` `MSFormsC 31t@ ,0t< 0_Evaluy1!Ej)PGl#ҴAq/H @'qb5bOd@%Аrf%\*\G{020430-;0C 0ؐ6}#2.0#C:\WILT\Syst32\STDE2.TLB# Aua0tion`Cs>FE~nh/zdI!rOoo>]cGo74PR*JCCwoDo93oo4<}A)Pbt(:L^p}$ BM9: s g(q= @(?9"]:4lc7Y P~8YsR_8Y8TU8Yw&B_\9Y!}T8Y4l`i1w܅8Y}$; GO)=YW'wd8YH`dzl2F8YO<?wl>YiʷE:YzD~w,?Y =- w8Ys":.W,!9]d !fffMMM333,q0,T d Arial)-":-3Times New RoWman)-3RWingds)- $1Courier5T?? Y@-1''J/T  hTJbOSS0{Gz?@CPjV]uVbUUO OS? T666 NP U    UvPaC G#G#G#G#G#G#G &H#O`$$!>'^M4!>7 i>}p'0U.2?E!-67gjP>603206&0B!4?6`2GT2k=\- 2 VT ?@96L^pu I5L2?Op??ZX0F6ȍ03P@?_?V6CG mON9:OOOOMjYgPJ?@_|Y oo2 q`?of.fT+Rjjg4G 0T_oiOF #0O贁Nkr Cu 5\w>8q?@pB p * H E@ 0"#$0% ASezxQGj# U3v4 )59Xgo2wL 5u(251w1 Kk1476_ _:.EX+o`ez5z} 1* x*wd iF埅O? ׏鏖L2wT/AShWsJIoo1Akr5xTTih4?PKS1) ۟yOas gύJęHwČ{ߌmzu'u /ASepu"gx\ g N1غ6N 9NJƯe /P/Y$o///////?#?5?G?b?k?}??V%?????OO)OOOOKO]OoOD`\\Heart\chaucer odoXXLettM_dPRIVA|c'\KhCa cu//)/;/M/_/q////////??%?7?I57!winspool\\Heart\chaucerNe03:F hTA@* ?<I?NXfx** <Ebb{b b NeH u 3 ; 3;(31 ;󻳆3 03FDH|Q`;jri _T F+1 1  3>Drag & drop to add a 1-D single headerrowyoumraw .H"w=hT=@?@.?@P&d2=F?P u `u `bqu `{u z!xu|@Gu` Qu @b   -- C>6 @5+%?5bP-9-*HW>/Qc [$T  9`Q(-DT!? ) @>&$ @G@F F- ߀L@+ "2 30 A`9Copyright 1997 Visio Corporation. All P2s reserved.r`shape.hlp!#1?7060c 8 b166  }  tN`s@1 6w(}l_Ura1b@\.s rr#0r1C0 09 9w@7H$#IEC#aC!9B@6f"%AMAA @aAL@rq@ rBrB@)FLBB,1-s@t!PC/!BX$%*_d*ZBLSB@@6OHFA[`c`!```cu> dr cV>Vbo>V21kCAA, %?tootO? 0b1AAWTT poAu bP&ɯd2??7i6(g: ?8?}%-x+ FT:Y#B?@ABCDEFG }.VUu@ "#$%&()IJKLMNOPQRSTUVWXYZ[\]^ v~m|.VUu@ "#$%&()JKLMNOPQRSTUVWXYZ[\]^a v~m|u,VUu@b  @B,.9Y &L49Y>9Y^;DW9Y[;t%9Ygk&9Yx,$9Y1($1($1($1($1($1($1($ EB?=9Y (_D9YGDS}GLF9YG&9YGdO9YF hTA@* ?<I?NXfx** <Ebb{b b NeH u 3 ;3 3 0װ 9A0~B V0 ] j0 o6{0+oH30@ 3hStretch beside a connector to indicate dirion of flow. Type variable names ata passage.b?a,Œ_`?8i6#5H" }hT@?,;?f?A>FP-DT!!u `u `bu `u z@Gu@Oxu|u` ?u Ob  U@%,4@U?HKUv$$3'N*q .FQ #sL`-@r @U * #T Q(d @:&@A@   '  L"3' 2 n@&a  }  tN`s@G1 L6k@&g8b>40O0 A`9Copyright 1997 Visio Corporation. All 2s reserved.`shape.hlp!#17050d:"w00lU0150*0q+/>JMm$,q@d [ ?Q@SF r`$@߀>@(`!`r V!(S!@2!%? @T!3|@ @0 !#F#!@'n 1:1Change Arrowhead..0?17Tthe{ aU sizPnPtyle forPis connector0!` b)`1NRiQ!0o:?'2%  3R%}p-ȳ( F\ 3  2o2K IL b' L| ?  3CGlue between two shapes to indicate a generalization rel!ship.mb? _/w؂-??H "  hT@?, 4*P 4% uutyx tqu{u `u `bu `u  A@u` -{ub bHL L2NNk?G+r#g{?h xL^b]bG> ?}+E:rK?9>9':u O#4[#t: C/U/g*q #g#)t//$! ",0&0t :2 `UML Property Editor{Q\nh@?0w#}#/u0 y???n#a]] A  tN`zs@A FfqC@?2ث-LA?BDJE?b L`-@brz? @+"y@u`.Qr֕GA1&0/4*2 r,0 .@lth:^bT T QBD|SE?_?QbkP;u@`software.hlp!#5293A`9Copyright 1997 Visio Corporation. All Rs reserved.d@k <> lUd h0000+aa"`A"4z %4F` !,f)E0O>kMl`PA @@dbb r^@` b`Rdae ffe ra.Ogc`c@bp c[|dqrq @cacdWus @rLayahvHpecYt pcpgvqsx{rw srvayduw@c2%433KI~crabG`ard̀| ssG ,3)v@ch2h׏@`yaeq`ai"p•͓ rH1wE^R],@@ @"l D3d /l6@@u0w&?6m$Xr ˯ݦ9G)ALaZccc­ f`n@ug`Lg`oI@ų)abOx° Ʋ&)ܰm@qA螻fxQ Controls.X4A(pL 'ϠrHrВ~@qY}pkpoTE1@(y`M5ҁ@P P `:=А? 7Ww ǰp | h0]P;Ld$ðJb/Li@Ld @a*$rkHbFb f ce@\mg@a0T` Arm PosiQ;%?ÜactE',4?/j %l?PՀf@h";+)445v9C'w?P tuw KÞA(#qh 4sp0Bt C00rRep Text@b &6b lDPgg}!T%0%-SIy&2wU"#c$P%}&d' (@) wY ;?9Y#LG@ g9YoS7+;_ܳ9YpS*}H+Th9YSM F h~TI?*A ;*r#W) <Ebb  @ Fb I0YYYT  Y YNeG gT]uB  D   U/ 3 ; % "!x&Lp,?, //q$0&& //A ??@E 3?E?Dq// Y=j=и! ??@U ??/!? O ?"?EOWO// kO}Nu 3#,,55 D"G/ ] mx  31Glue between classes to indicate an Association.mb?7i6d?p= ף?-4LG hTT@?-@?*;( Pu `u `bou `u x vsu`.{u `b @nk  <k'h)&'<3Fu2>:T?Q6*4K#"W4*G!6Q/c/u$lf  tN`zWs@ &+a { =#T/$ / ??# ie$!b r4 1`UML Property EditorQw@4 ~0 0;A`9Copyright 1997 Visio Corporation. All Bs reserved.p`software.hlp!#5292z2VM>(5e]tHDUD D D D D DDUB@:@2@*@U"@@@ @G0Jnp`1fBA8ies..>@$AOpen= DialogL>@`00ml?0 ]l@C@ Show Err0&ARa diagnosis of the qeQYXP`jQX~Yr#@_j~BA ClearU)A!1cR state fromRshapeYX7eQ u8@.S~@`ugMessage`"`a_b_Ro` RName1A)RPPhideRn`UAsOsoci#CZW!eQ1 ubQbr'd` 1s' aa`P@  0o!BARRolDpd(ASoftYXP`#vqA",s>3}rHs8Oa~qe Bt)ByB,s?3}BHs9*k"BARCardinali0v/JA']cz-eQ9{r@3}qHs,ЏB@)rMdA3}AHs-okBARStereotyp` `u%]s noQ``{IpgP#vr(3}Hs&^a~y!IjU=A6gTw""u~,kV ./(0I0U1u@2G034@5@6 78W9mn"@#*`$%]@;ǰ?u)0)}&(!k%+C@0I0Q !*48V|R a  (rPÇA$w$- g̪ "Ě1&8>pH7@hzD ӎ (߽@w*)4 84 8o2# 4*Q{+`R1Nq@$հHGj4p{Pv{A@6S1*Lb6#  T6T !)363!0a d6d!F&@J7 A as9p RAnBBu@UC@DG0EF@eG@pI1z? "@0r^1u `u `u`rL1uf`ug`ak@@4HaX?d@au `_u `ui@@Il6>p LB!0/ e@S!X/j$g"#Q`? Arm PP$A@0a2@AZ[2 '2"$@0 >0YЕ8>l@ x0@h\d?&0&j@Q2n]4>"H#"W"f@!w"6h//A! $ P@ 2DDH6?'?wM1@Qt?@e?/v1@BB>"AG$1A? t?u??,@E m!@TRn" d2[iQX@@U?A:0@=0f`n@Zg`o@0S>`W*xQ@5@Sw*D:3m@F" A%C!"@ B]SMS"gb}d"Zolm`~g@`@iab@@ ohidh%X qj[8@pAT! LM";Jr.H"hT{A[-?@I6_@q?4k?>4?P |rb jt` u`bWu}H 5t `t % A@quJ}*  #uL`-@mm.s ?bb Ku2Q &b"L@x np@ [ra~!# & llUPn ~!ʿ# @&X!>//A ?,=b1'J?/n?/?900T 4dr p=F5@.E$G jp]L@PCn f P) }@z@!(S^3JBe ,i!WyB@ i!4e'Q0@V'!yB)H"hT{pAI-?@/I?@q?4=4P |rb jt` u`bWՓu}H 5t `t % A@Uqu}I  #uL`-@mm.s ?b_b=  *2Q/"&|b6"L@% npA Vra!# P>/b T.#4u  k0> WlUTnG'!֖!ai@6,=1'?:?,O=#17>O?bO?OI]@Xx 8dr MVE@"UW jp5@PDSU!n f h) qPnP!(3>R} -!mR,  i 4'2%E@sPV?! mR)H"  hTT@?,*43P u `u `bqu `u z Sxuu` -u b bA@} 2N贁Nk?5!p# }+-r.{?F5 <qt`tR4c ]   R " /" "Y#" """N/`#2"8"q*?-!h-a}" !  tN`zs@! &  +.(2 ZN'26>߀L@  R2 N0Y  r Nn0q0?@؂-1?Z45?b 6rr  'rz}1r1{B03;0826L`-@FM&d2? @%@u`.@  N0g4b2 m&B#C A2ؕ5OFD2b@8>`A`9Copyright 1996 Visio Corporation. All Rs reserved.lFP +lUD% 'wa3Fy VM1 ^3VN3Y1: 1 J a O>0 c0/$ b b 20 06!Id0W` di!i.o@`DjRg`Z1Y1n? gla\5ePEd@p ds[q)q `K9`q "":TŖ놓sߗցmc1zr G2b2b 6>># 1XYb=^c3r昑33w:!9"2%#8#%:! 9" cFM n!Pe#h#d#l%n!zc:r^f :7DN|L2A9Ny&2P@2q 8P1``?P52#L2N27 PP@Ѡ98  ! ,!Ѡz89i!Ѡ4 'DзQ61)H" hTA.?@,?,G ?P Upb At `u`}.u  A@Mu9ߠt `g* x>, ?4<H 7Q(-DT!O?(kb  T?  Wo2q ?/&&b!r0a  V ra # MvlUnU#! <RP .T!+]%"Q$\-t!A6[5<EKD * S0 R0AG&=C=2D!A[E?8B7AI(5?61?rS0@ Ar"H7@3@Q@dr 55 (3/6/6puq COCXNi 4_'2UhR%0gVt!)H" }hTAf-?@A[@?>F?P Upb At `u`}.u  A@_Mu9t `* >G ?4<H 7Q(-DT?!?(}kb K   |2q ?/&&}b!r1a   a # E. nlUnT"! <RP /T!+]%"PQ$\-k"A6[c5<EUKD  J0G=C52DA[E?{8:7AI 5z?.1 ?rr@Al H׋/@+@_Q @ dr 55-'6'6puq COpCH H"hTA[-?@I6?@q?4=4P |rb jt` u`bWWu}H 5t `t % WA@qu}%  #uL`-@mm.s ?~bb Q 2Q &b<"L@ nraa e#e p> & llUQPnc g!#e @&!>//A ?,=b1'J?/n?/?900T= 4~P) d p=-F5@hGE=G jpjxe@iC:n f@@!(]Hz 8~!BS,  i0Z 4'Q0V'!B)H"hTAI-?@/I@q?4?>4?P |rb jt` u`bWu}H 5t `t % A@quJ}*  #uL`-@mm.s ?bb [ u2Q &b"L@x nraa e#e p? & llUGPnc g!# @&A!>//A ?,=b1'J?/n?/?900T 4P) d p=-F5@GE=G jpe@iCn f@@!(]Hz 9~!B,  i0 4V'Q0iV'!B)H" hTA.?@A3??>zGF?Q(-DT! 5%>A@qu ipb Xb?Iz8W( @b t` ~tuw` f?_u` %O9>} >  RV2{Sz? 5h arfq?:bh>lWU}a"rp6 _A65@&,|%>C[R-t!f%6@'T/f%'p7H" hTAf-?@A3??> ףp= F?Q(?-DT! 5%>A@qu ipb Xb?Hz7( @bߐ t` ~tu` ??u` %S9> > RV2{Gz?5hv afq?:bh>{lWUa"rp7> A1@ *%,%A6A#!Q(d'\#u!A&T/f+!_p#    (% & {"F[9Yf%#B>Y'} ;,V9YC];G@dOC+;41:YC4G+9Y(D H+4Q9YF2|b9Yvؗ9Y7^9Y?̗9YzBL9Y$E9YG9YJJ9YLfF hTIRQ?Iݷ_?A;I?Nu#+)3<EbbKNb b? z  @4FF?.b (lAY    etG} gTcɪB;  - W  %  k o *w E ^!qf&,?,//!$l 6)6  ?2?} H?Z? o??// =Ц=! ?? OOk!3OEO ??OO / ?E ON ww w|ww_ww|, - -4 +=Oa~ ORight-click to run the Property Editor and fill ip ies f Class.b?ؿp= ףDkF ?IzGٿ)\(lH-H7A`?G w hTX@RQ?@Sݻ?A?@;D?P_)o3 kQ   z U4?4444444 XtL`-@rNbrM< @A@gtu`R!u )o`7!<$ צ!.u2|49 ARPbt}ӏ3`P8  1 Œ1t%'n ۴/@Qbt s+Bn##nB٨4`xV@@D4t uĴぴqUpЅ״@Dp״HAO`gBf` N4 dpѠдܴ@۵6x@槏E>eJ @GdaAUgq1ݳ6??q .U' A#!؞!AoLO <Ԑ< +!Mf/z/.'/)+!-!#%.'/)/E=!?!7?y!>2/?!?)Z&@$@$@P$@$@@@tj@<@ H"  hTA?@}'6?,_?@ `H=3H?P t` -"mtwu`bA@ZuL`-@>pMtL`bՐN  { @b . 'u`z1zbSbg gJ*L@2q?UTT.cbag7r#' jK:"|h(c !`` {ra ##ayh\;S l^UXo%#!# ,@15bAG*1' G0F0>??,?5Ef?x=17Ж?$??9 rrG0@A '@'@h :ir o$ '"gggggU!T?bD_F Hn\OnJIU<:"3C"O /!C M/OONUOOyO0_B_F gPNoj ?_03R0VVjjg!T?TAfRXgR fya!N-#(^A9/!&ތ @ :! `f` zh -# {! "   !/q# S,C0  k  uSybH" hTA?@II?,?@7=3H?P t` -$twbA@ZpN uL`-@b>M?tL z @CW3 *b .@A{O? u`zf{ulb  "1__}L@R7r#''0K'Vw`hn9'  y@y  ra!# , olU[X?%"!# ,@fjvp|!\  0 0>/??%E:?L=1'j?h/?) rr001Q 00h":ir j b?6O03ZB0QF  OGA! H" hTA?@7?,?@?II=3H?P t` -twbA@ZpM uL`-@b>tLN @CV3 *b .@AO? u`zfulbO  ""___?L@7r#''W0K'V;`n9'  y@  ra!# , olUX?%"!r# ,@Zfjv|(!\ 00!>/??%E:?L=1'j?/?)m rr001Q 00h":ir j b?6O03ZB0QF  G A! H" hTlAn?@?,?@ e=F?P =t`bu ?u\` b u`b @A@tw/V~ jq?$?u`u}b38 8  LPV0{Gz?5r4rL@KVOX%R7rp#'KKz+W@q ?@I_I %%a uL`-@A A$.G"R ,MPU^X(4- z--I9Oz  3_ aRr+aM1R3R0Le#f߅DKlQU$0P0M1B03 ?95=,w[+k- A  B&@>?- O5EFOk-A7vOOOj9 rr!@A <0P+0&J i }p[J FDYPWg ;/2QSI@YZl,=?Y^O=Y@a_=?YcF h~TIRQ?Iݷ_?A;I?Npu#)%3<Eb{bNb bG   @4FF?b l%Y    eG  gT]cuB;   - W  %  Uk o w %E ^!&L,?, //!$l 6)6  ?2?} H?Z?@ o??// =Ц=! ??@ OOk!3OEO ?"?OO/ ?E ON" ww w|ww_ww|, - -4 +=Oa~ u ORight-click to run the Property Editor and fill ip ies f Class.b?ؿp= ףDkF ?IzGٿ)\(lH-H7A`?G w hT\@RQ?@Sݻ?A?@;D?P_)o3 kF  R U:E:::::: :XtL`-@rNbrM< @A@tu`R !u)o`)=!B$ B!`UML Property EditorQ@.`; lki#"> b|rK@R=!!> $ ! V+A~`9Copyright 1997 Visio Corporation. All "s reserved.!software.hlp!#5288T($k'!h\0=e8H44 400 0ή"nph!$f`j(ies..*0$!Openm- Dialog$*0> !d h/z%> B$B!?k!Supp"0s Attributes+!#yFtheG compartment%HprVe3`u$0_.attszD~@` Ac1s.C2D2O!NRMN ^OpO @3OArVtOGWNopsOE3O[]P)_;YH_$!ShowJ!Yl%H0c2V`Uv0ble _4V1Po]`j !U!>oPkrYjhrWm iPoD5opz]po c! Dele@C[laP(! y and i2ferenc}js@`Uml ShGapeIO[Ok0 YbErr{ &!Yba diagnosis ofBe%H`!=}N"#%bk! Clear)!! sta@fromRBsI%H71A RԂDEM~@age`"lBϏط" NmSt%ot-yK-!%Yb@hide* no!1&G'1BRsZ`їr($@a9 r& @  !qd `YbFormal ParamBpr{Wj%H!1A PrmsrYR Ţ/!Oު W 6>Ev 9iy: 9][\]^mTwo*iJkkx5;I$!utility<"!AP1gT_0t#k@UK)LMUNO"PQR %n&(԰SWT0UVpWXUYR`Z=R6$B!(; @8` ~*ñVwlH!ñx7`r"yƎ鴮x@mԒK?ɴxCDBת!.y—8?ERTfx֡ҁӓ7`> !J 1I 1x%*'r D"B!3DfJx w+rIJ('"'nF٬2h8`|Z?#P E"KO8x yĿqp״HpLES`rFj`: ? dtѤ@ߵ6@꧕E>eJ @KdaEYq1??Tu."' A#ة!A`s %dPU <FԐ< 46!q//.'/)6!/) ?-!.%9'#6d?!z?!2/?!?)Z}&'@/@U/@P/@/@#@U#@t#@<#@$H"  hTA?@}'6?,_?@ `H=3H?P t` -"mtwu`bA@ZuL`-@>pMtL`bՐN  { @b . 'u`z1zbSbg gJ*L@2q?UTT.cbag7r#' jK:"|h(c !`` {ra ##ayh\;S l^UXo%#!# ,@15bAG*1' G0F0>??,?5Ef?x=17Ж?$??9 rrG0@A '@'@h :ir o$ '"gggggU!T?bD_F Hn\OnJIU<:"3C"O /!C M/OONUOOyO0_B_F gPNoj ?_03R0VVjjg!T?TAfRXgR fya!N-#(A9/!& w@ :! `f`t zu -#  {! "   !/q#w ,C0T|-!@utilityk  uS ybH" hTA?@II?,?@7=3H?P t` -$twbA@ZpN uL`-@b>M?tL z @CW3 *b .@A{O? u`zf{ulb  "1__}L@R7r#''0K'Vw`hn9'  y@y  ra!# , olU[X?%"!# ,@fjvp|!\  0 0>/??%E:?L=1'j?h/?) rr001Q 00h":ir j b?6O03ZB0QF  OGA! H" hTA?@7?,?@?II=3H?P t` -twbA@ZpM uL`-@b>tLN @CV3 *b .@AO? u`zfulbO  ""___?L@7r#''W0K'V;`n9'  y@  ra!# , olUX?%"!r# ,@Zfjv|(!\ 00!>/??%E:?L=1'j?/?)m rr001Q 00h":ir j b?6O03ZB0QF  G A! H" hTlAn?@?,?@ e=F?P =t`bu ?u\` b u`b @A@tw/V~ jq?$?u`u}b38 8  LPV0{Gz?5r4rL@KVOX%R7rp#'KKz+W@q ?@I_I %%a uL`-@A A$.G"R ,MPU^X(4- z--I9Oz  3_ aRr+aM1R3R0Le#f߅DKlQU$0P0M1B03 ?95=,w[+k- A  B&@>?- O5EFOk-A7vOOOj9 rr!@A <0P+0&J i }RM Fte=YWg#B>Y7iC ;YBj& H{<?YMs$=?Y)w=Yy|=?Yp|F hTA@* m?<I?Nfx)ҕ <Ebbb b NeH: o]xD` Connector`bb~ ~p{ m3󎻂x{ ߳833߃!߳-B {D {W aV;^_ my331zeoVa33; ;~ xpxd ;({n >:{HG 3nThis connector automatically routes between the shapits.rl to glu -to-". method3Vb?7i68? H" thOT@?, =,4P u `u `A@qu `u z b|xub u` Q:u e *E@5?QV{{)>5kd "&"b* j! h.!j" a#B "B P2rq?o2Ix ?n$v%?b rL`-@br  u`.@# !   ( t u )b#>_0 A`9Copyright 1997 Visio Corporation. All |2s reserved.`shape.hlp!#26006(24ߠlU0YI E aC" @5+'Z&E++ #)L0~i 0;='2Np"q?0N3z0%}%ZU F|>Y#Bt+?Y_π  ;l>Yفi @ :YB+^KO>YCc"}H+%:Yec S:Y ~BL9Y?R9Y6ZD3 9Y;Jd?@ABCDEFGHIJKLMNOPQRSVWX[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Visio (TM) Drawing R\|8YwJd !fffMMM333,q0,T d Arial)-3Times New Roman)-W":-3RWingdsTA?ADl? Y@3-111J/T  hTJbOSS0{Gz?@CPjV]uVbUUO OS? T666 NP U    UvPaC G#G#G#G#G#G#G &H#O`$$!>'^M4!>7 i>}x'0U.2?!}-6g7mjP>6032A06&0B-!4?6f2GT2k=- %2 T;5UG@96L^pu O5R2?_??ZׇX0F6 ȕ03P?_?VT>CG  uON9:OOPOOMrYoPJG@_|io%o2q`?@of.f3Rzzuw4 0T_o?uD5,e%kb ֍~^֍);M~Ơ w ֍(~w֍+=~w֍~w"֍ /jXO贁Nk? 91&$Lk o/////;f/ ;e,/?#?5?G?Q!`?"5,??@???//.OD1Oj`QOcOuJQsTk @%ROHNa@4+J54co_taN:wTiPa<d*l$ș3?AOr?f@Do?$ r  U &,+#@6L6X'6d96pK6|]6o61*܂H" d ܂,Ґ@܂! @P#k@r0~ % 7o@ ]@O@ gpR++ à^=@a )k`yO@u)#q\n|‹)Uy#A9ɓւӔւ,Zւ} #@$0@;GYa!r!轗@Ң 7:&@%y@Ђ!֑Ђ2%ЂW;rګb!$p;HҢbq.LC `heQEGra`(ʂ-Ӕʂ,Zʂ} #!%10A<ϿY+r!vߩ Ң -LAs`width Ă?ӔĂ,Ă%, ,#!%C0 AOƲÐbӔ0bv@񒲂@C C`@$h0@;Bo?YbRrA]?_?Ң'_O#O5O_ƬÐtӔ0tP񒬂`c crz0A`;XbO@t|br8am;_|od_Ңo___6ƦÐӔ0np񒦂ps sPep;rgo@rrq}ooҢ H-Ӕւ0ւ @  Pe9;P@tr0x3t\Ң.Eׄ Zs@[R0ZsfyR@X `Peô̢_@Z9؟=E M VG 5pTB3?ArۀT a0p1A8f]d2?H`n`Aږ?pu`~Gu` 1ڡ  b'bX\٢ea`Reposition Interface$˜Š D0G1`r@Ϥ϶ϖ G s6g0EV#7?#8!p[t0p߂ߨ߆"OQMtrbtj>1FŔ!<FX|N1A#1ŌQi3bytyڏtytyB2vPf׾ Y Tpr 0J0v0ԭ0ԑί0eu0I!Y!&0-1=1R0A!A~0AQUݰrݰFݰݰ_j>W v B } r> W1n1:1U1ٰٰjٰ6ٰ,Tic-P_Hide Control Han/dlesqubCOM Style 1q 2quch.g^ sTs]8P97:дD7;Q'@"B`fҕ`W<`=u>u)aD֖amP^WՀ@ cִJhmX T7Q;PİaZc1I\c4P` +B`#Select forma^ Obj\sh_ape.2Q`[d-ye??}SPU U"ls2N贁Nk?FxW6yd"C(:&t]sUG0"BSlxxQ SS~:#JR R S R6yd"C(:&t]sUG0"BSlxxQ SS~:#$@JR R S R6yd"C(:&t]sUG0"BSlxxQ SS~:#$@JR R S R6yd"C(:&t]sUG0"BSlxxQ SS~:# JR R S Ru `R@!= u`+& !alUz 0a q$[[ )% -?8_?[ 0'l1p4#?56F1 /!J0$Z[R ?Pg%H?O R1PU e0?QZO9!-! 1$! Lc!N s6yd"P(:&t]sUG0"BSlxxQ SS~:#R R S RPSq pz` c P5a(*(a c'b `C!T@ {__$ S&Sx!fQbtQ)v vt`v("xst^p@}IE!`d? Tq %Ncz crXuppLa!y{Hpq&{u!3/|@tJy{ r$z`uusHx`u5_vXusIog&1Qp 8bc#` dԆހ 0ߞ$2)j0"d?;03@07Q/"0"IMyInte?rfaceH$)hTA?.6?@6I?Q(-DT! IrA@sw|ryw|   u`b  u` 8hwZ-v Q}d-e??}PU U"lZs2N贁Nk?Fx6yd"C(:&t]sUG0"BSlxxQ SS~:#$@JR R S R6yd"C(:&t]sUG0"BSlxxQ SS~:#rJR R S R6yd"C(:&t]sUG0"BSlxxQ SS~:#$@JR R S R`PSq [pR` c P5a((a c'b `C!T@ {__$S&Sx!Q3btoQ)v vt{`v("Uxstp@}IE!`d? |Tq %cz crXuppLa!y{Hpq&{u!3|@tJy{ r$z`uusAHx`u5_vXusIog&1Qap 8bcu dԆހ{ 0w$2j0"d?03N@07Q/"0"IMyInterfaceH$)hTAș3?Ar?Aږ?@?AI?Q(-DT!rA@sw|ryw|  u`b  u` ?hw?Z-v Qd @-e??}ԼPU U"Cls2N贁Nk?Fx<?'rEYI,HQ4m#{*"@= uL`b-@ @s.&u`@!Ou `R@! u`b'' !alU% 0a $[[G )% Q@ F1_?[ 0lD1p$2#?56F1 /!J0$8Z[R ?Pg%H?OR1RPU 0?QZO!-! s1$! Lc!N s6yd "(:aF {_G0"BSlxxQ SS~:#$@R R S xRPSq pz` c P5a((a c'b c !T@ _Qs_#S&0Sx!QbtQ)v vt`vW("xstp@}IE!`d? Tq w%cz crzXuppLa!y{Hpq&{u!3|@tJy{ r$z`uusHx`u5_vXusIohp 8bf ^dԆހ 0$2'j0"d!03@0@7Q/"%0"QIUnknownH"*hTtAV?,4443Q t`bA@qtwu 6 ?u`uu bWb  2N贁Nk?F?x {>/ !@)X/ r v!] \ P ObjectNamegTɪ!<=J>1xkp8  M` LinePattern ~@3B6ƚ "P?ze1 B5z@)?;?M6FillForegndke?w6:?9??L3`Rounding*10<[Ib4O1h%-F9Y #B9Y) ;9YCSG@,{9Y +;9Yc6G+G:YJc=H+d9Y$9YF 9Y%9Y)d9Y.~|9YJ39Y 89Y<<9YAt :YKFK :YO͗D:YTk7AEHRF h~TmA@* ?<ۿI?NCu#** <Ebb^ bNz @ *(.b Y(@iiiA-  i ietH= u 3ς󿂻3;ﻼ̳7ûÿ3EwL37<t 3+Glue to an objectpresentinterface.5bп?2Tv Sa9?t:m?N{E H $ ) hT(A?.?A'?A@HP/u `u `bsu `u |!Szw~@Iu` ?u @b "o o   &I>S-@RR|d R +*K + %GW#)T ;]/2e L@HW (AVQ<@BP(?@2Tv?@/?dmQ"<&L`?b-&x u`@/1 u `A1 `!!H;$}0+`software.hlp!#5037A`9Copyright 1997 Visio Corporation. All 2s reserved.Clj80" C+! AMb(w#IDisp?atchq"tK%I'"3,%n0r2Hי2@e p+#K%I^y0/16  b_5 AaWL CtQA/1` Resize CircleT %1;0#K@lUWiQYVPRPaPRP_?C1U,?a#f-d&a-d1@G*Jo\dߊK@PR|)p[Wh3 nO a,fCPVfHoZh_EFdu oo0oTjppxQwȏqw(S&p}MRoJ~\ooy-Pхx}`bedD"dFIUW?VczKe$2T sr t/1R ?IVm3&!(4/ W &;W .U$&&>JPcoucivVD V` controls.x}1E~@8פ* %|da1ߞEB1j8}p-{Fԛ9YX#BL9Y3\ ;9Y[Y/G@9YS+;9YSCH+9YSP<? @789:;=> *!.,? @A 0? @EF $,? @H ,? @R @BD9Y_2,9Y$  9Y&49Y`(c8g1($1($1($1($1($EB9Y` L9Y(8|#'#WD9Y'F hTA@* ?<I?NXfx** <Ebb{b b NeH u 3ς1ȋ7̈77˅ 6] d]ˋ3eRepresents a reference held on an interface. Glue betwee COM objectdW tha f b??7i647?8?(\ H"+\h_TA?,?Aкa?4*?FPn/տ  quu"]   _u `u `bu `u !)@Gu` ?u$@ObX\Q \,EF@,+?dy?Ae+2q) ?(/:&qFp^! ww^!XL@pm)X b^!A@9~fx?AH< 9%?2ث- 9%%?b?kL`-@br}r  0u`.@ r,1V11$ $ C`u`"@ u` z0#wq30 A`9Copyright 1997 Visio Corporation. All 2s reserved.0`software.hlp!#5035ypDHlU($aK@aQAhV@G `\*|d?Ajx&з-264@0*f9C?@_@G%?C","CHCCu ">J POO RAvWPJ}1@n2 x1%1Set Line Ends..01QlQend stySle0!`]\\-0b) 1@o}gT*a!% %FaF%@/ 3u4K5`2llV? v1\bW$pQ!ș$Oo4`wA ж`-D?,1GD]K@ O@p s2p wa`Repos i1 BPB.Pc d%`&t@HxAt@4#d13t S!r^!`<3tweX3~Text1wid0}#7i!0'R'%pR% }- eF 9Ya#BT9Y3y ;9Y#bSI@9YS+;9YS;H+9YS&F hTA@* ?<I?NXfx** <Ebb{b b NeH u 3 33(% ^ 3S+(XO ; ;'0; 3;d0303;d? 3{Single arrow of variabdirection.heads through: both ends; one);e &er). rol handcNges size.mb?7i6 ?8?H & W,hTk(@?0 8.JPKbu `u `bu `u !S@u` Uu s@ " 8"""= "B 7@r0t/?u 0rx!I=ol(b 4#)va6$  tN`zs@g! l&o2q ?/.&/!d!TPB/f )4  `Qps-8R?l4@`#@V$V=$.iL@{; 2 0;A`9Copyright 1997 Visio Corporation. All 2s reserved.`shape.hlp!#17080lV4ٛ@ lU%P!aUQ k@ r0 { 4 4#@XP(?D4yA @r CyA? B  B @@XI@ NA:@@038Q1 RP,p 030QPVPO4V4PFR-@@P?Ojn$t$f1#@` Sc0ch.B1~@ABoth Direc1s(1 Arrow poin @/in b(ad-f@z?PyD ]n`>jto the left@A PEcL`B lb`h@Tpo"1oeC*@A dR1ol@ SpSpblXA(]OoN@O3Q@a}CzI?P 18SW1BA@NSp~1W #?@3?L@*W,>,/Q(d ,nJ $uj 9`b$? ) @Qb&@R R3 * am46G8b `1o0 `shape.hlp!#17065A`9Copyright 1997 Visio Corporation. All 2s reserved.D_4}lOUE5 "=0aB@)*RH# rNw ?\@)t6fF%8Ar#NAIC\@SB# #@fIJ@r[@#IE&1A #}hMH\11#a@(iF\.3UA|@!C1?\@(G>WU"y Extras\Connectors*5y:qDw@?:FT L*hTIL? @I@A??GVWybbb b= Xj~j.b ( A} *  5%?DH-=(P pDD s:u`F!"N u)l& & %gOenuG32 32_+H=2,K2w9K2r.K2w*/K220K2:-K2jUJ0B0:020U*0"000u 0?0Rn6e7B90CA0Ra0??gIT0HoUJU2%&'I](g)g0I0UQ0y0 o0 i0} q0 1 a039040?5 A&&fL?wLD`IOO1gK@wL @@eFwE/@__3@)_;_P_b_;@fOxO?0w\G$V@ __G@w\]A o$o__90OO0aoXso[@e@Ubff@ooG!T E)@6q i=&P%P%?@sP%؎vu?Qm/\v)L$xu  !Rr;@prrppS :Z 0gL\->0+"5K2Hnmmmmm m m m m mm+b0Z0R?? 2 0(4L1Ut !?>q+@U3@;@ C@ K@d2ps}ؑ?&f!Z$xAב ޘÝ;(ȰŸgnM_֯˯ B%7R[mǾl4ĪTt<NG@pUoiu~Tp`W09 f ~?AewϣϣɇxP N\nߒ߰ߤ߶"@4FXj|M*]-uVC@}q+@nP ;(ο.Хv\\uv 󸈙uvĭBݚސCސ Bwaq0`ϲ>>}L^plXD0lXD0̪|hT@,;gT?\ E,q89kFm`/r+/2;HkT$v6qLuѿC?Q(-DT! qt ,6V?T65FFߤـ}ISl!=Uޗ-6-6#1AE@l 0CtTp6`5886BP+:G0GNMaOr9 T9 G_/㻵hOO@BP_h61jEAv|.//O ??/?A?S?e?w????????OO+O=OOOOsOOOOO_O)__9_0o__X\____ oo/oAoSoeowoooooooo+uOasԯ K]X\ ÏՏ /ASewџQ+=Oas᯻z߃@'9X^ i{]ߟÿտ /ASewωϛϭϿ-+=Oms߽V_ߌ X^ EW9{ /ASew +IOs2?;?h?P?X^ !3?Wi{ ////A/S/e/w////////?%O+?u?O?oo?Do|o??o} ?O_3OEOWOiO{OOOOOOOO __/_A_S_e_w_______oQo+oao XoToK W[o`2oC u&8vCUgtJ} xC,sҡ 3+=as)ٟt_hh˿B9q|R` iHGT70?J`˚"0B0Bxex(`:Lpʎ'ϙȢ vdH0ǟC !3Tfү-=)M_q{fmLH^pς 6Vn vqKo?#5ʏY} O $U"dG/ qq&Ox#xuQ*E ,<:Ոw?H[QUv@_YUX]0D]00]:Д!NgBT% SQ R< =`>i0GT fa _qY0aFuhBQ\a_sT!f fqPV"Ka ya*r*r*rL#p'r-rNp5pNp;pNpApR  wMnLFp/rL2u5<ŐT"elJ tUttttUtttttttUbWZWRWJWUBW:W2W*WU"WWW W3 j(.dqaPPσiπ'ۘϤϫԽ'@ ϋ"h|LVߚ߾*Nl`e5RV q$Pj'jNQUj( "BfQ0feD]Ifyf"a^VxbV^HVbD*|i0yyϒyyϒ*^H7I[m_@lXjDlXD0̧|hT@,gc0FoXo8 9o0:i0mP,/>+"; HɀT$(taoo0#1$VUwcN6Q(-DT! YQdm* >Wx/65o&Qo&s]UV*dWeW攸1i`lP;$MЧ6,588Q6?6PG7M-Or T 7/g7OO@k_HUjɴo&.//O/// ??1?C?U?g?y???????? OOeO?OQOcOuOO_OOO_;_M_ _Xk^}__q_____ oo1oCoUogoyooooooooA-?QcjsPد)_Xk^ YkMŏ׏ 1CUgyӟ -?]cF߀O߽|ߴ_Xk^ 5G)k}ſ׿ 1CUgyϋϝϯ 9?c"+X_Xk^ #GYk} 1CUgye?/?u4?l?_XkPK 'b ؊:LW i{$^F0OW6)(/*/?/Q//u//=_///?4s?|=8H|?_V? oMoDA?b3H?FFo03b0f@GJP`1 ??6k?O O2ODOVOhOzOOOONOO_"_4_F_X_j_|___%Xo__o0o;|foP?ob>o g-?Qcu);_`ˏݏ%I[mgϑnaOX0DVfxSΩˠ( (1yBTWiߊNү,c)sM_ϣ:%7/ϔϦn'+=߱ߋ -??cu//OOHO)/;!@$l"d}/a%& #5rXQ*{ ,rpՈ?H[UFoYUX0D00:!^gQB[ S6Q6RQ@G Ba2b] @A^ _&f  (ddqaqwp@!4P#%9'I)YPE$}pOOyAeAɕGO">POyܟ/$eHZ~ѯƯ 2MVl4ĪT2 .* p@$+xu u`⶷>pu?A51ɭHZ8s1xϮܿ >2DVhzߌ߰߀ 謹Maii]Ji-i]~V] }qT$P(=\﬑N=ЕGv譖v!0('1v;d"k &f:H&f2&fv&`yBy6@yRyt},"4FmUmmlmXmDm0mUȍlUXD0UiiiUiii|iUhiTi@i,iuigE@\|oo8Y09 FpmF +";Y0Hpl%aqao._9/, 1//?*-= (&[&U0gU'Vn89(z1SiP`lP$`i6 GGr7M?(O77=?rT7/qOYRqOzO@uOHķjӴs!&_;03DR0;V%q0PHR-c/u/WO//////??)?;?M?_?q???????'OOO%O7OIO_mOOOOO_*_P3_E_W_iP Q.__s_____o!o3oEoWoio{ooooooooC/ASeÏ+FO(asiP!Q. я+=Oas͟ߟ_9K]o߿ɯ65Gbk}iP"Q. ɿ#5GYk}Ϗϡϳ 1{Ugyߋ RQc~ iP#Q.  -?Qcu);Mq/'O O76OnOmiP$m^ /?%/7/I/[/m/////////?!?3?E?W?i???????3_?COO%SOROOOOOOp% __oA_S_e_w________oo+o=oOoaosooooooooO_98Aon@&%'9=aZkt Qض׍ Ϡ+=EJ\nYy՟ gTVYߐʯܯ\;b H'*C9$\߰舿~пƏ؏&#H>nπv"gMpySpįH(1tU v*)`H+b r,VCU:& |0x4@?r88ܚEVq׀@pdՅEVGĆ@6ֆ߆ u`d?@EKuQ@b 0{Gz?Cqb\߀L@ 'T"OPQg@a  pO]Kk>֍,ZB֏fx>bkPkPkPTZoP24;HOperating SystemB0,x%C콅D@ބ݀JWBۚDϳ °$Ƶ2ϵ:BwH,@Tv======qPK04:@‹HNTZ`ċfgyğ֙X^.L$B5/$BAVCRdvj?(S ƶߨͷ =a߅(:LHApplichonq)dD@]tE]evF()`y_L@./K` (J/n` 눢Dõ*t\nC6` )t$6颁h` .j|CP[5o5pdIkAoA,Ԧ|$Ք\qH-ճ7ǁcֵׂ݀Ʉָ%#%$&@HZ"fπϜ( ޕ$:߬߾߰?P?$&???O??OL!xLegacy Transl _Layerp.v C.qP3vPpd%f@0&d2٬U6U?P-DT!3v\ޅ#VP@p^ÍT @z3@rP_UpQRY_R\2254@_._$oQ(TR ]F各tQT6x]G@cqt6f@>ek~=f5Amj\.zwp1 (D.BQUC@e.y.dDk+ heqRDПuFWB<@/J/O_]ˆ,_FoP_bV˅sWˆXf}]TR[_cAAF"o4o.Xojo|ooooooo 0"B{/Vcy/}(x0J0 @[.8Z^sWQN'sPST[ 0 bβͰ ܿJ@0c)oɟ@۟#50FSy0mx902?@p~"?@x*~"ձ>/lY%i#w#Յ"/$E///!)?;5K3W?i?{?mOO O6IO[IfЮOOICOP ComponentDh? @%&'()*+,-./01234789:;<=>?@BCR VMZ@B9Ync1($EB 9Y N8Yw#@8Yh?R__9Y}D {9Y'`\\Heart\chaucer odoXXLettM_dPRIVA|c'\KhCa cu//)/;/M/_/q////////??%?7?I5`IPage-1Black fill_White }uRed Green -Cya@Yellow GMnta3a=y(10% x line3 Long dash1"da%rI9e. X5 7 9 1Gpxlm9mHairqShort Arial cke?redtop leftTim esERD Nogrma %Va%!Connecwtorvis8 trolsAsInputsClB"PemkStylt\)DepthA#Routingh#ToB"LTo!ClearanceX/&Y;Le(Nod//!SiB"Gridd %Resiz~l$BlockS0YA#Avenue,1XJ2 U0E0Ifa I6.15YK294Ref -GCH W8ptY@S le arrowhead0OKHoZc9# 133PPPPPPPڪPPPPPPPxPhPYPAP)PPP3]P]P]P]P]P]P]P]Px]Pe]PQ]P@]P0j]P"]P]P"PPPPP|PfPPP@P1P!PPP3 3PPPPPPxPhPXPGP4P$PP3 ` ` ` ` ` ` `r `d `U `G `< `- ` ` ~ `S(? @  !"#$56DG  5j tl 2@Bt9Y|<1($l 2EB<9Y < R897BC;$"# -0?+   37A 56DEHIJK9: 3 G /)/;/M/_/j//////nz !012/%-3?@)*05?<3,'&4. (- /,y?D0 ?2P?w? ?2 $6A?P>s$6I?X|FArialtܜ s& g(oiN@( dP94lc7Y P~8YsR8Y8T8Yb&B\:Y+<8Y)4~`l_] 1w8Y?vU$ !)D@Y'wd8Y Hh Q2Ft9Y?~wy8Ys}Dwz8Y}ʷ;YP D˧47 =kOh+'0@P\htstetsBC:\Program Files\Visio\Solutions\Software Diagram\COM and OLE.vst՜.+,D՜.+,\@LX d  PagesDocumentSummaryInformation8-_974040504FOɾ ɾOle 5CompObj!6iMastersPage-1 COM object Interface ReferenceSingle arrowheadHollow connect 1 0dpx_VPID_PREVIEWS_PID_LINKBASEA   FVISIO 5 DrawingVISIO 5.0 ShapesVisio.Drawing.59qObjInfo8VisioDocument #Z1VisioInformation"9SummaryInformation("$:Oh+'0@P\htstetsC:\TEMP\loctrans.vsd՜.+,D՜.+,B@LX d 2Visio (TM) Drawing 1R\|8YJd !fffMMM333,q0,T d Arial)-3Times New Roman)-W":-3RWingdsTA?ADl? Y@3-111J/T  hTJbOSS0{Gz?@CPjV]uVbUUO OS? T666 NP U    UvPaC G#G#G#G#G#G#G &H#O`$$!>'^M4!>7 i>}x'0U.2?!}-6g7mjP>6032A06&0B-!4?6f2GT2k=- %2 T;5UG@96L^pu O5R2?_??ZׇX0F6 ȕ03P?_?VT>CG  uON9:OOPOOMrYoPJG@_|io%o2q`?@of.f3Rzzuw4 0T_o?uD5,e%kbsTs @R OHNa<+R54co_ta:wTi'PaPZ-,a ,//#{$X R~FG8EX_ .u/X ٿO}̧Lׯmp?4@ /!_0/FX7!winspool\\Heart\chaucerNe03:F h~TmA@* ?<[I?NHr#* <Eb/bN= @ F*.b I(0YYYA ' Y YeGz  wwx{$,>Pbt*  )Represents an OLE server or application.b?7i6࿕8?#54 G )hTAU?* ;MQ)Jos <|u`:Ru o`b vk - U    U      NP[, vjvvvv!v'v-v3v9v?vEvKOn[[8L@b $# b' 5 p`software.hlp!#5039A~`9Copyright 1997 Visio Corporation. All l"s reserved.'$k"%}  !e H#D p*(9?p28lxpA@Aۥx -U5n5:55U))j)6) rH"))+hTxA?,*?A9p43Q t`bA@u -}qtw|p ~u` u}`b  2U?&b:z:I>b% <$d=lU(%]aY>zZ 55 />/\+' r !c \  j P?/03206:mHGH"))*hTlZA?,4ۥx<43HQ t`bA@u -}q{tw{p ~u` u`zb_b} p zb{ t%uL`.@b 0Wl U(t%a,*N"MN5 >/2/P+ rM !? \( j eP?/03 2G06 G}%-F>Y #B_CY3W ;|>Y> w2G@OpS+;d?YqS+Gt@YS"H{?YfH+d_@Yf8=LOQRS F hTA@* ?<I?NXfx** <Ebb{b b NeG D 6ww߄DG wDwwxww/ Ȉ/w|/ <, t2s< 33M{/ iwȇȇ.| HRepresents a COM object. Control handles determine inface locations.mbؿ?m?]%?/k4 G hTA?* 222?QU)os <|EmkkW U    U# +(=IUam y  P_SU    U U B!"wS!"" " "W@:a #:+ += =I IU Ua am my y  "1"1 21c 021T21x21     @  " 2A "Aw2A3 B2A? f2 X gu`[9@u?Io` bA@jAoD o@F A .A! LAo dA9 |AE @" A (A! FAo ^A9 vAE j πL@dg@ bOaP[A~`9Copyright 1997 Visio Corporation. All ~Rs reserved.p`software.hlp!#5034[P78߄<eHTT T T T T TTTTTTb]`Z]`R]`J]`B]`:]`2]`*]`"]`]`]` ]` jSnp4T]R@Df2pr>'` COM Style 1i2uQSet aobject sa$P$Q`h@@A@AHd=` Prop.`br?aO~@`3}@Dt+P]PlGpuY`o@ ;`_HidePntrol Handles`_Sho-w~p|rcths.tr~ t`` NoCtlup@Hp><d*l$ș3?AOr?f@Do?$ r  U &,+#@6L6X'6d96pK6|]6o61*܂H" d ܂,Ґ@܂! @P#k@r0~ % 7o@ ]@O@ gpR++ à^=@a )k`yO@u)#q\n|‹)Uy#A9ɓւӔւ,Zւ} #@$0@;GYa!r!轗@Ң 7:&@%y@Ђ!֑Ђ2%ЂW;rګb!$p;HҢbq.LC `heQEGra`(ʂ-Ӕʂ,Zʂ} #!%10A<ϿY+r!vߩ Ң -LAs`width Ă?ӔĂ,Ă%, ,#!%C0 AOƲÐbӔ0bv@񒲂@C C`@$h0@;Bo?YbRrA]?_?Ң'_O#O5O_ƬÐtӔ0tP񒬂`c crz0A`;XbO@t|br8am;_|od_Ңo___6ƦÐӔ0np񒦂ps sPep;rgo@rrq}ooҢ H-Ӕւ0ւ @  Pe9;P@tr0x3t\Ң.Eׄ Zs@[R0ZsfyR@X `Peô̢_@Z9؟=E M VG 5pTB3?ArۀT a0p1A8f]d2?H`n`Aږ?pu`~Gu` 1ڡ  b'bX\٢ea`Reposition Interface$˜Š D0G1`r@Ϥ϶ϖ G s6g0EV#7?#8!p[t0p߂ߨ߆"OQMtrbtj>1FŔ!<FX|N1A#1ŌQi3bytyڏtytyB2vPf׾ Y Tpr 0J0v0ԭ0ԑί0eu0I!Y!&0-1=1R0A!A~0AQUݰrݰFݰݰ_j>W v B } r> W1n1:1U1ٰٰjٰ6ٰ,Tic-P_Hide Control Han/dlesqubCOM Style 1q 2quch.g^ sTs]>P?7@дD7AQ'@"B`fҕ`WB`CuDu)aD֖amP^WՀ@ cִJhmX T7QİaZc1I\c4P` +B`#Select forma^ Obj\sh_ape.2Q`[ukЫ+з@u7` H$,hTA?.6?@6I?Q(-DT! IrA@sw|ryw|  u`b  u` 8hwZ-v Q>d-ye??}SPU U"ls2N贁Nk?FxW6yd"C(:&t]sUG0"BSlxxQ SS~:#JR R S R6yd"C(:&t]sUG0"BSlxxQ SS~:#$@JR R S R6yd"C(:&t]sUG0"BSlxxQ SS~:#$@JR R S R6yd"C(:&t]sUG0"BSlxxQ SS~:# JR R S Ru `R@!= u`+& !alUz 0a q$[[ )% -?8_?[ 0'l1p4#?56F1 /!J0$Z[R ?Pg%H?O R1PU e0?QZO9!-! 1$! Lc!N s6yd"P(:&t]sUG0"BSlxxQ SS~:#R R S RPSq pz` c P5a(*(a c'b `C!T@ {__$ S&Sx!fQbtQ)v vt`v("xst^p@}IE!`d? Tq %Ncz crXuppLa!y{Hpq&{u!3/|@tJy{ r$z`uusHx`u5_vXusIog&1Qp 8bc#` dԆހ 0ߞ$2)j0"d?;03@07Q/"0"IMyInte?rfaceH$,hTA?.6?@6I?Q(-DT! IrA@sw|ryw|   u`b  u` 8hwZ-v Q}d-e??}PU U"lZs2N贁Nk?Fx6yd"C(:&t]sUG0"BSlxxQ SS~:#$@JR R S R6yd"C(:&t]sUG0"BSlxxQ SS~:#rJR R S R6yd"C(:&t]sUG0"BSlxxQ SS~:#$@JR R S R`PSq [pR` c P5a((a c'b `C!T@ {__$S&Sx!Q3btoQ)v vt{`v("Uxstp@}IE!`d? |Tq %cz crXuppLa!y{Hpq&{u!3|@tJy{ r$z`uusAHx`u5_vXusIog&1Qap 8bcu dԆހ{ 0w$2j0"d?03N@07Q/"0"IMyInterfaceH$,hTAș3?Ar?Aږ?@?AI?Q(-DT!rA@sw|ryw|  u`b  u` ?hw?Z-v Qd @-e??}ԼPU U"Cls2N贁Nk?Fx<?'rEYI,HQ4m#{*"@= uL`b-@ @s.&u`@!Ou `R@! u`b'' !alU% 0a $[[G )% Q@ F1_?[ 0lD1p$2#?56F1 /!J0$8Z[R ?Pg%H?OR1RPU 0?QZO!-! s1$! Lc!N s6yd "(:aF {_G0"BSlxxQ SS~:#$@R R S xRPSq pz` c P5a((a c'b c !T@ _Qs_#S&0Sx!QbtQ)v vt`vW("xstp@}IE!`d? Tq w%cz crzXuppLa!y{Hpq&{u!3|@tJy{ r$z`uusHx`u5_vXusIohp 8bf ^dԆހ 0$2'j0"d!03@0@7Q/"%0"QIUnknownH"-hTtAV?,4443Q t`bA@qtwu 6 ?u`uu bWb  2N贁Nk?F?x {>/ !@)X/ r v!] \ P ObjectNamegTɪ!BCJD1xkp>  M` LinePattern ~@3B6ƚ "P?ze1 B5z@)?;?M6FillForegndke?w6:?9??L3`Rounding*10<[Ib4O1hp-F*;Y#B_4!DY3 ;D9;Y2SG@,g:YS+;_\L;YS6}G+ :YS=H+T:Y%:Y*$:Yy/:Y:4;Y8D;Y=t;Y}B+;Y>GlI;YKY;YPܾowUk;Y3Zz0_k,GzT@43@8 <GzT@43@=>?@ABwCD *!?.0GzT@43@L]M $,GzT@43@O  ,GzT@43@Q ,GzT@43@R ,GzT@43@S  @BlG9LbR >X1g0 `software.hlp!#5038A`9Copyright 1997 Visio Corporation. All 2s reserved.82 *#w&LL@<.x<lU(=5a7@;C;@5*Z `PQp@n5 \I kLIHKT1(@KHOhAO"p$)P ;P;P;P^/@@  gT3C:ɭ!U MQF@/#u4?5`2llV? !PbyDp@ UY.P PY%b%`@dA`@(##Jd r%#Vdog=AaKU`Reposi1 Text!wTp 3QOi!!0'vq:b%dSP x@9vI[x4`F d"`he1xv~@aP bp}-qF =Yߊd#BDYpeS ;/=YC^G@d=Y!f+;3=Y"c>H+/`c_F hTA@* ?<I?NXfx** <Ebb{b b NeH u 3 ; 3;(31 ;󻳆3 03FDQ`;iph _SlG+1 1  3JPlace open end against edgf another arrow or ba"Bring to Fr?ont".H$h~T@?. ?@G&d26]H?Pk!u `u `bu `u |@Iw@zw~_u` Su wbb}  "  / E @/ @.Y-?.d;/0O贁Nk?kx &^L@1 @ML&Z@n6f?@?x<[%Pf#cjt`]rD }r `u!`T  `Qps-8R?$@`@HH"H/"102+`annotate.hlp!#2885 A`9Copyright 1997 Visio Corporation. All i2s reserved.1 ޿(vlUm9' a20+GBP(u1!>!r  H;DHES'7# @ :r0,% pB@G )HJ@#!-(Hv  !(IeH I4K#% ;%@ B@?"V1WCB1 EPPPP_Od"xeسF 3R?Vk  bb#5/A3Dn3`!7?i @=AE  .`Open Arrow End`Clos]eh&`1cor oathe aa's enP1c`aal0=a5X@mc 1c'?7XBAr*i_A^U]P*RP,t@TQ2+-#mi"4'2qpuwv1!)bH&ɯd2??7i6 g: ?8?}%eC-FTBY9k#B*DY3 ;DBYolSG@4BYSH+lo_BYS+;?BYWq9F hTA@* ?<I?NXfx** <Ebb{b b NeH i [3󎻂3 ;3;;'32;F@B3LG;\ Ӱ3g:3F 3evF?R`$P 2 K3!Stretch between two glue points.b0&d2[ɿ??g: Di6E?? :H"w.}hT@?, ?@0&d24F?P-DT!u `u `bqu `u z!Sxu|@G_u` Qu @_b}  3,* , @F5+eJ>#?@3?L@*W,>,/Q(d ,nJ $uj 9`b$? ) @Qb&@R R3 * am46G8b `1o0 `shape.hlp!#17065A`9Copyright 1997 Visio Corporation. All 2s reserved.D_4}lOUE5 "=0aB@)*RH# rNw ?\@)t6fF%8Ar#NAIC\@SB# #@fIJ@r[@#IE&1A #}hMH\11#a@(iF\.3UA|@!C1?\@(G>W&3_Use to indicate a communion link.less network, etc....HU"u.h_T@?, 444?P !u `u `bu `u z@Gu@xu|_u` Qu Wb   09> 3@,+?,b #3.nha  }  tN`s@/! 4&*WNEI:h OQc uL`.@ `bu 6 `u`Q(-DT!? @& @09( * % @L&0  P03F L@0 ~2 P0,0 A`9Copyright 1997 Visio Corporation. All 2s reserved.`shape.hlp!#17070I e H("l<"(#lU $    a]AHb@y&Y!(#!@$I@x'~GEMA@۶mAF~GEM!> |O!OOPT{#mb?7i6࿼xV4?8?N贱}^ 1 FL;Yw#BkCY_cxk ;_|;YCIG@;YyH+l;Yc+;T;Y|:F hTA@* ?<I?NXfx** <Ebb{b b NeH u 3(33;73;303 󻻰'Fi&3_Use to indicate a communion link.less network, etc....H"w.}hT,@?, 444?P !u `u `bu `u z@Gu@x*u|u`u Qu  b}  *09> 3@,,+?,b "30O贁Nk?lc '( bP NEuI` OQc r`@ uL`.@  6 `u`Q(-DT!? @ @& @ @ 9( * % @z&  >03F;!L<2, x2 0 A`9Copyright 1997 Visio Corporation. All 2s reserved.`shape.hlp!#17070 &n }  tN`s@A F\*ߝ(lU. %a1&Y+ !8>0 @@@rqCFGEM"P NHGEhOAO@Bqp' GeUP]AP _NiGwJ r@PQA t<``PP\uMBi5mb?7i6࿼xV4?8?N贱}%~ 2 F=Y|#BCY_c}i ;_D=YCIG@=Y~H+d=YcI+;tE=Y_: S>YEB,;Y#4:Yka?RKus3@@@ @ @@p԰"O ?]pH$(:U/2/P/D/V/h/z////////SMC0K0K0]K0-K00`1V0@} dؽ=v’=?A1Ʌl= O|8s?:M|? OCO^OpOOOOOOO___S_6_H__l_~_____]l4#`+`+`T+`+```t`<:`qlAsP&@*3lj3ljel1ylblbs"Po3l")>ܵ7sb7zrm(rmv?:Gm-uҥAvHߡ$.㦴_?hQ(-DT! 6 pv63 7 ?Qcuϯ);M_q˿ݿz%I[Ϫ  G^V^#5G߂A,Ƥ\Є^O);_q'00 HDjMXH*./03J"0\A&?W HH}i"Xj|ߎߠ߲&?$6H//OOyOO_>@sW/{(; ??/?"oFXj|????OO%O7OIO[OTw]_gO//3/R% @@mf@&ܶܶ 끱bº~K>Qw''q*y40}!v!oYx"{h0l2ev1JJJJJJJJJJJJJef0R J B : 2 * "     j(@BK$T!EsUUWpgi?0 u`ndu?்?6 //://u#///?/ ??/?A?S?w????????M(@0@0@]J0@-0@$@EAV$@]}dtآuOHAAɫFOOO_O(_C_U__y_____o__8oo-onoQoco~ooooml4pUppTpp -qR0ɇo)ⵐ{ qp{ =E@ڱ[xHƨm.BOyxAUioso qo O _=Sewѝt`L8$xdP<(Rt`Lg6w߉ >z $OĶVOS+??Q(-DT! A9亪 EF3OʡDEFF1lFv ܶy ?P ];1aϟT3/dk8XmHdxo"RZ@)y&pjԠE? Lܮ$6HZl~ƿؿ DVhzόϞϰ_ .@'@v߈ߣ߬߾ܮ(:L^p$HZl~c?2D"?+?z(ܮ /,>Pbt//(/OL/^/p///////g???o6?H?&o/o~?????ܮ ? O_0OBOTOfOxOOOOOOOO__,_P_b_t_______kooo#:oLo*3oooooܮ oڏ4FXj| 0Tfxҏo'>P.7φΟ ޿8J\nȯگ"4Xj|Ŀֿs +BT2;ϜϷ  "> 7 A"aG"8 xCfx"yC„" p}reqRdऻD!C"CU#C$C%C&CU'C(C)C*Cu+C,Cb0UZ0R0J0B0U:020*0"000 0 (D;!]?a|6!#1`% ' ) +p`ovpu`6 u>5?_2_D_V_h_z_______êM1`9`*9`]9`-9`-`NaV-` }dث?zE,o`aɤoگo ho1L^ A$6wZlƍl4T尬 oqK0ԏ`)z)Nadhƍ$7Ko"ԘJ^r8xx)x)oFh\nȿڽt`L8$!!!!x!d!P!!m#ϔA:hH0pT Y#Biн_ oQ(-DTG! =  `=Xˈ_P]eoP) zlO1ca؂ P)}\RpT(/d4AxhmCR{G2/jC#s4H30"? ! -?Qcu߇ߙ߽߫);M_q;K%$/-/[Z//"%/I[m!3EWi{W?/g/A/@_I_w/v__/////?# /?A?#_e?w????????OO+O=OOOaOsOOOOOOOO__so9__]_\e_ʏ_@___o#o$ Ko]o?oooooooo#5GYk} 1Uyx-?%U gy[ӟ -?Qcuϯ+);Mq˿.P7I[&U w%7I[mߑߣG!3EWi//JS(ewY 'U  /ASewc=Oas/OO/_:_9/K/f/o//T/uP(U=j/" /:IY4X>?6%?7?I?Dlfk=Vo??Aa?9$f??P OOiOCOUOKyOOO_ dA_J]H$hJ_$_[Q^_p___H iH)U_.;Ko?$?RodoZ?l?ʅi`?o8L O8\naNIOJ :rX__*^_K o.o@ovooϬooooUy߯ӯ1#&QcnϿ(ڏ+^ OBTfxϊϜϮ,>Pbt߆ߪ߼eP:W^ p{抁j/#, "$=SX1+LĞ&(Q;o2q ?/6SԚ█ K?!6(u?XkDk0k . ! S_tubg)  V1BSCD)i&Ik\QMG-P B1-o/Xܐ* @@&J@E.(-FFAFAE-1H@RP@ RG@R?Py @R#'eTS F$. $/ $U0 $1 $2 $3 $U4 $5 $6 $7 $8 $9 $: $UbPZPRPJPUBP:P2P*PU"PPP P0j(4 !QoJH8f-iP/y1P3P5P7*P9Pp)-mO??u`&@ue?~oopoioooiHj:shovPtǯ3(CL^yl4ͰĪհհTհհମ qFʧ& ϢA Zȧ&ZV66—˫ϵ@΀πߗ\ƪ\ƾ\ȀF\ȀFuh)@YT"AGm 0A HiPT $ TVA[OWB2&ŏrQ(-DT! D* J:&687&9yPl a,0)EC1P坿 +T_d_d^)Ȉtߤ_j@SI/d>/xP3\"g0S&(AQGHqPo#5GYk}? 1CUgy/OOO/-/H/Q/c/u,0.//sO///??'?9?K?]?o??????o??O#O5OGOYOkO}O_OOOO_1_PL_U_g_u,1. __w___oo+o=oOoaosooooooo'9K]o į˯ԯ#5PYk u,2. {Տ /ASewџ+=Oas߯@'9T]ou,3. ٿ!3EWi{ύϟϟ /ASew߉߿+=X(asu,4. %7I[m/!3EWi{???/A\ewy\5^ ?//)/;/M/_/q///////_??%?7?I?[?m???O??o??oo3OEO`OiO{O}6RO PJmbMTL^OV_ +_=_dH_]ev|r/PzY^_YTV____Eoo1o'Uogoyot&}hTX&ɟ7:Lqp@A IH 7Ok__.@N_`_r___^(ޏ_^8J=nn%Ͻo&N4b}E8~k _qRd׿Џk1{Ug]ϝϯ ﺟޟ-?dJu߇߽߬߶ Ȧ9~ߋo0BTfx,>PbA,?3?:LW?H?ªj?C:@+"Dh!D ?K(N?Qo2q@?OFFJJGb*QbW̾a/8o_AVqF_WXG DG 0G*!Local Component Instancegr2ɕ)aBCDi訴.'E1 y6*Q7Q+PbJ1R{d7QTU)Rd]f@Zolo~ctcoojm)p6?HO GCQvRzwP!dt?Qlvrw8r0Pk-MK7Q_G;Ҡ f20a;KOJeL3@@@mfU&Q"NШMJRSReR!/;ء΂ ΀ǀтׂoȀsYue;x< 4=4>4oC3UA4B4C4D4UE4F4G4H4upRUJB:2U*"]  (T1ˁ&$ ;=M? A5`CRPEp4hMuu`FPuu?&pRdL6ӯu>??_??OO%O7OIO[OmOOOOOOOO_!_3_E_W_i_{__o__Џ__׏/oAo\oeowolX0loooo);M_q%7I[mǏԿۿ3E`i{l?> -?Qcuϯᯫ);M_q Ϲ˿7Idmωl@> Ϗ 1CUgyߋߝ߯߯ -?Qcu$;Mhql0l #5GYk}? 1CUgy(/O /OO?/Q/Pl/u//lB. //O/??'?9?K?]?o????????oO#O5OGOYOkO}OOO,_OOO _C_U_p_y__ C. ___oo+o=oOoaosoooooooo'9K]o0@GYt}D *ÏՀي&J`"@-?Qդ\sy1h֟蟟Y3E;i{1:ڨh: KZN`H׀~ :HE.ǿՏ+ ,BTbt<(rL^Qߔߜ9ѯ:*bHv FٿE&i{nπ/϶;M_q)-fOG=O~Od@G/2/D/V/h/z////_/// ??.?@?R?d?v???????U_O@*OGNO`OkODDj@TOOOHW"P-_|a!A]w>j.oRdG*<W`rl4UT@J -qT0{W"g`VJ Vd */(']w(q&(F//A//F?ѫ)&(&(&8&,:%A9H#DZ!DvH,O>OPObOtOOOM@Ut@`@L@8@$@@U@@@@Ux@d@P@<@U(@@@@@@A@@t@`@L@.@yg pܟ>D͡Qm܀R_d[:A!`}H}T$$BZ_["`v//b}fQ(-DTG! aȤЊ n of(evR(huxa3l-hRehhwfFPw w(}Ԭ<khdsļ_r=(?3)@)j~qCr ߡ330W? %K^___o!o3oEoWoio{ooooooooß/ASew8@Oa|L^ˏݏ%7I[mǟٟ!3EWi{<կ Se(M^ Ͽ);M_qϕϧϹ%7I[mߑߵ@!Wi社N^  -?Qcu/);M_qD?%O O[mO^ ? //1/C/U/g/y//////// ?_-???Q?c?u?????HO??O)O_OqOOOOP OOo_#_5_G_Y_k_}________ o׏1oCoUogoyoooooLoo- cuQ '9K]oɏۏۿ5GYk}şP1gyPRJ)TFf1܀0BM_q|擽ְϿṈ@/ySe[ϛϭ QZȈZ4*kn߀ߥ߶Ҹ HSK,:Lbtʿܾ\$Hl~q/Y ?Z??/J??hߖT"߿>PO ///(/e////_///AO,o3o6a?s?o~??o??UO.OROdOvOOOOOOO__*_<_N_`_r________ou&o`Jognoo̟$odd j$to&o ʣVѠ"ۤMp3A\?QzKp|27q?Up/[ǡ䶥YWX{D{0{> q7 St/ubg9@W8BpCpD`id'ebԞq#"kapVGW W*3~@@@hf\\ʮܭq%p}U|G ;3!7҉QW`z4|qt6ЄeT.8XYUZ[\]U^_`aUbcd]RJUB:2*U" Ұj(̴CѨMZX5lWY[]_a*c7p9t˭m?O ppu`˦ u?of3Ȟn)n."4FXj|X3M!W))])-)>V }dd؀Uln^8A }^6ˊ!/oPobotooom|h`UT`@`,``}``U```l`UX`D`0``U``````a`h`T`@`,``g8->dGm@SezZAMHT $ZԊϋBOOQ(-DT! 5 Ɔ(Jv(6HAGꆮƁS l?<]ųRƈ(weP- V(:+pT+pNД;ڟ6jX]H?_3`"I@jOfcr030UK?EY~!3EWi{ÏՏÿ/ASew8џOa| Z˯ݯ%7I[mǿٿ!3EWi{ύϟϱ< @Se߀߉ߛߩ[ ߫);M_q%7I[m@/!/?Wi(\ / -?Qcu/O)/;/M/_/q/////D?//_?%?o o[?m????] ??_ OO1OCOUOgOyOOOOOOOO _-_?_Q_c_u_____Ho__o)o_oqoooo^ oo#5GYk} ׯ1CUgyL- cu_ ߟ񟻿'9K]oɯۯ5GYk}ſP1gyϔϝϯϱ `J T)F2Ȁ:M_q|ݑऻЮ +e/ySe[ QZ+/)+=b/E*n /7!] Z Ha>K/,:Lbtߔߦ߸\6$Hl~qOY/ _Z8__OJ__h//(//b??>P??o O/O(OeOOOOOOOAo,/36/a_s_~/__P__/&co.oRodovooooooo*<N`ru&`Jg@n̿ȄЄ*j$׏& ]d"!Mː35A:\6?QK~2q?ːU+++b^ѿb:6OָȓX{D {0{0qRemote Component Instan/ceg9`W^BːCD0iЄ'3'Bży^kѮ_beLkѽ!XU^ ďYm^рƤπ}BT%ӆ4ҺjR!?4с7FdSka` GKe0 ee*2!35@@w@lf@U=Ʈͽ4҈PBU6Ke 1ED! D"u=zIzK w2Dnfghijklmnopqră`0RJB:2*"  ΀(&/Z1XUUE&evg20i΀Uk0moqp9?O@u`6u=%?[///)// ?)w?G6^??G3u/???O? OO1OCOUOyOOOOOXSM@PP]P-P@QV@ }dЄt/.4pl/G_YXAQ}YV_˪x_____o'ohoKo]ooooooo oo@#5PYk}l}4ppUpTpp侀} q$ 0*⛗t@ICTK}С~֨Fď؏դ_‰׈눝y';(A=S=o__%7I[mʠtʠ`ʠLʠ8ʠ$ʠʠ꠴ꠠꠌxdP<(ƠƠƠTơƠƠtƠ`ƠuLƠƠr qgEW>dB`_L^AHvT $SXTi(O%;鶰?Q(-DT! HT ƿVAU,U!ƔxƤq~֧UװհPתlРH0Kpi6P]%9KT|dl$俪{ h}kX6ߐ Dypj(TyU? gҿ,>PbtφϘϪϼ(:߄^pߔߦ$#[Zl( h$6HZl~ 2DVz /0  OO@?OwOv@i  /?./@/R/d/v////////??*?PbtΟt:^]fߔʯܯ$? L^@߂ʿܿ$6HZl~ϐϢϴ 2ߐVzy߯@.@"m hz\ .@Rdv,*<Nr???O/8J\>@n"9$1!.//45V4-RFi_`/r/ Q/))&//x //2? ??oB?T?f?OD OM8)(Oo?o$1'O9O^H]OoOWq rYHoOx;O_-_#/5/ReYPw/_(__/oKo%o7o*[omoou>ğ?֟͟;!OOjs{OpNOx;OnO _L^?_Q_u___ď__XhBTJxooo,Q7b@tߘvqNկx? /ASewﭿѿ+=Oϙsυϗϩϻ. '9Do߁ ԯzjԐtkrr"j|U! ggQz~x2qS?Noҏ/ep&^>/qX4D404vzProxygӠɺj$BCD@i)k-HsҎ@)qs!&2y!h]@@@mfY0&@?@0&d2Kj3G?PiN<^57@px4 _@z3@0?>5p;229?2- s>.+/!?gyD?  64<<6!3E|SxcpTx;Hy6y/@&⊩aEQ/R [ S ܕ|R|_&-$R'H_/YyRRR>@*_T?f?x??oOO,OySO`OpDyzOOOz@*BRpz@OHj93@@>U<` j>]!Lʘ4Jߒe ll&I$'_Sz:p.IGopvg  tN`ezs@Z ^Ibj`Ymlo g'`qq4g`ƗQ>j ,r^Qs6epEUz{@D)O{bHL"Pp( B?@uBP+(ᥔ>]b ǧ8ӡȦt`{ T[?QtW hףObUi^O bӍAd2?AT2q_?2؂-ϰĵE͵>VvVbЪ_agdd5An?,iU+5G2a{Lc%b?㥏{rmq.еH*pp{bMZ qpp] w@@poq?@ABCDEFGHIJKLMQS f]l@B;YZ{1($EBDG;Y N8Y]@8YT?R_ 9Y}D9Y'`\\Heart\chaucer odoXXLettM_dPRIVA|c'\KhCa cu//)/;/M/_/q////////??%?7?I5NPage-1Black fill_White }uRed Green -Cya@Yellow GMnta3a=y(10% x line3 Long dash1"da%rI9e. X5 7 9 1Gpxlm9mHairqShort Arial cke?redtop leftTim esERD Nogrma %Va%!Connecwtorvis8 trolsAsInputsClB"PemkStylt\)DepthA#Routingh#ToB"LTo!ClearanceX/&Y;Le(Nod//!SiB"Gridd %Resiz~l$BlockS0YA#Avenue,1XJ2 U010%4PBoundryCOM obj< @B@k subt_ype01G1MCBD=KEFIA$"#  G?60+ Q ;<857 L1?@ O7 P D/)/;/M/_/L}//Ls ! /#/ HJRS /&?/ ,'&4w.(- c?"?:?'12/%-39:)*0P?|??$6A?P>s$6I?X|FArialtܜ s& g(&.P@(DZX94lc7Y P~8YsR8Y8T{b&B=Y+8Y)`ԯlH 1w8YU$ !)_974854459'F`񶸠ɾ 0ѸɾOle GCompObj&)Hi: PagesMastersPage-1OLE server/app. COM objectProcess boundary1-D open endHollow connect 1 Comm-link 1 Comm-link 2 0dpx_VPID_PREVIEWS_PID_LINKBASEA   FVISIO 5 DrawingVISIO 5.0 ShapesVisio.Drawing.59qOh+'0@P\htstets)N:\u\stets\writing\cop\Figures\ifc_1.vsdObjInfoJVisioDocument(+TVisioInformation"KSummaryInformation(*,LVisio (TM) Drawing TR\|8YUS4d !fffMMM333,q0,T d Arial)-":-3Times New RoWman)-3RWingds5T?? Y@-1''J/T  hTJbOSS0{Gz?@CPjV]uVbUUO OS? T666 NP U    UvPaC G#G#G#G#G#G#G &H#O`$$!>'^M4!>7 i>}p'0U.2?E!-67gjP>603206&0B!4?6`2GT2k=\- 2 VT ?@96L^pu I5L2?Op??ZX0F6ȍ03P@?_?V6CG mON9:OOOOMjYgPJ?@_|Y oo2 q`?of.fT+Rjjg4G 0kD_ąO?oogO贁Nkro8wYo}rTih54?t51w1%f3)u"7 E@ 0QU#$0% yfKo?\LgBitCx6WN  9 79?@)fq2wT )< rr-qr?16__:.EX!!3EWr$z_"_G 3u˛JQL^pʯJ\n0U#Ͽ{y2πq˛(\ wπϒϤY$ &Sew߉ߛ߶߿V%#5Gbk}ۯ #5`\\Heart\chaucer odoXXLettM_dPRIVA|c'\KhCa cu//)/;/M/_/q////////??%?7?I57!winspool\\Heart\chaucerNe03:F hTA@* m?<I?Nfx)ҕ <Ebbb b NeH: o]xD` Connector`bb~ ~p{ m3󎻂x{ ߳833߃!߳-B {D {W aV;^_ my331zeoVa33; ;~ xpxd ;({n >:{HG 3nThis connector automatically routes between the shapits.rl to glu -to-". method3Vb?7i68? H"thOT@?, =,4P u `u `A@qu `u z b|xub u` Q:u e *E@5?QV{{)>5kd "&"b* j! h.!j" a#B "B P2rq?o2Ix ?n$v%?b rL`-@br  u`.@# !   ( t u )b#>_0 A`9Copyright 1997 Visio Corporation. All |2s reserved.`shape.hlp!#26006(24_lUk0I E aC" @5+'Z&EJ+ #)L}~i 0;='2p"q?0N3%}%-ZU F<=:Yd#B|D=Y_O  ;E:YYi @3:YS+;K:YS"H+0:YS,ΫgE@_*@  @B:Y! *1($EB\':Yb  bS0:Y ~@8Y ?R:YK+D3, :Yl;T*FD𿚽@L@F;_T |L*hTIΫgE@I*@??Iz ?Vty%bb{b b= 8!X!A~jb ! } *  5%?H-=(P DD }s:u`F!:" u)l& & %ggwTGoJIgIgS0W0 [0  c0 g0 k0Jo0w0(10%I0B1 &SB17?6@I??14!6 F0T0OO%O7O[0MO_O?2 sMЄM1 OOU sM؄M1 _"_o0O2O_3I??)0tFURGU0__I1j_en.sHb Rbg&cbW0a[0a"a*$c0a2g0a:u0aIBk0aJo0aRaZw0ab)0aj$0arI0az;0aɂ0aabb]bbI`raPabwbbbEa!bQ`a#b$%c%=c&Ec'Mcm(Uc)]c*ec+mc,uc-}c.c/cm0c1c2c3c4c5c6c7cm8c9c:c;Ga qCcDsE^ sªzrjbZRJB:2*" ꓀⪓ړғʓªzrjbZRJB:2*" ??InU```U`I`PQ`] +p!$Q`%+pU&A'E(I)MU*Q+U,Y`-]U.a/e0i1mU2q3u4a`5}U6789:C` TQ` L I j= >>?@r @@f`q??l%u(# t+?|()/ 4PVؑQˢѢq2q!?%ˢ bp0O贁Nk#?'s%r0 L@ơKg` $pl40.W0l#1Uj ]a۰߳i߰Z/I0+ +&:L͂j ώ) Ќ T`4nIWin32SecurityToken`l'\03z0qk 2GiO1o4''2r/x#g)qS0nd8..͋PP\`şן:#ll@@ɒ_,?@+=#n Z sգag .@Rdv#ÿտUɩ|ϴhϞϞ D .WaitableTimerKfo߁ߓߥ߷# @ PL0]olI-0WF@+7R65,> d1գ22|Ov"B#5GYk}o/G_k_W11____y_`.maphore//)/;/M/_/q///o#I@IP焰/??)1.5:m=?O?a?s0uRu?????'ҦO6OHOZOlO~OOv @OOOO__o;_[__ٟ___ßEi 3oEoYnMutexsoooooooo'#@!@P'<Fs>V0BTfPdkҤ;ȏ@ڏ" !WK]oɿ7g#YQ=ůׯ~2Event%7I[m5.!'8%7)7 @@.?Pnh=f?@piϒ }44N62Vhzߌߞ߰I'\"!3%W//?D?/h?/?HZLiYnPipro 0x7L?Tu\)hq\)xw~8Rd 5 ChUqUzUHZl~+P2b8bVo//,/>/)Dd/v/////?OzVaV?B??x?o[??hNFindFilO6O?OQOcOuOOOOOOOOii,_>_P_bXQxS^_^,U___ oo.aâɢMoqoooooo(zo*<N@u:+@쿦_qhMappingȏя+=Oagzz ϟbYq\?],WH_ftP W]ޯ{&8J\P)&Ϳ߿ MϥtϪ>?*A\ew߉ߛ߭߿+~E Q !W Qcur @]6H#5 /A.a 5` 9f22rO@ $$"B+=Oase/20_7_[_P*!__ __Conso//&/8/J/\/n//o/CD!I //? C?"4@@qpsE?uk9x4u?????mpƠ ʦtz?#O5OGOYOkO}O b+OOOOO__&nYv_ǟ___3Wo#oModu\owooooooooo4 00!+F nӒ>>@@ʫgE#*59B-?QFZ ^ ҏ'߳ŏ׏  C6HZl~n_2%VRre?J@un﫯FoXcFactory#5GYk}!.!ق' !3#3I[mϪϼ >0 6߾BTfxߜߏIQ" Lg/?/V?/z???QfEvent} 1?@UAsQ)SqQ)cw 1*pSnU/VK]om(Pw{/b5bSo/!/ 3/FWg/y!~/"///?O/OL?sV?9`@L??ɩeFileUtilitO3OPbt߮*/`eLω+OxO/ASew߉ߛ߭ߢ$?r _&8!HMapping]x d //@|_6CDI \T/f/// (`.Fs//4u/Ev ?? /?A?`rru???????'O]OoOa_o_O_.@FuTK_]Y&̟__;^Modu[_w oo0oBoTofoiXuoفo/)@;M_r)T[a4FXj|ď֏&BxŸ߮ߐ䟴6,?Gutex^yʯܯb6G)Ugx/%|*ש//h%?&8I>]0a6vϬϾI7 wO.O1ROUgY߯/O4/A*_|//B/E2AtomicUtilit#5GYoo/owawgAy%7p*qDUgy~O@pvVR\Rz_#5GYߍ*</O//g/oS//o/oo/o1/?:5">Pip]J?n??????d?$OGPObOtO OsOOO@OO_ _2_HD_^bƺq_ޟ______oo%o7oIo[oMqooo#)ME{5rocess);@M_qƏ؏$6`Oas$!'՟E /ASewտQZ=sVz߿5">Semaphor5ϧYk}ϏπϳϦ@-?Z g yߋ@ @YP]V""a u.˵pb޲c p ~XQ1:L^prh|Lϙϫ-Lπ&8\\ 0KY/M/i/CQPΚl~48c@@ɿ(GdD<3C5(:L^ `BB1jl EN`qBuO7O˵BC޲LBSYAXQCRP1CR(pêO5X4@);x"s46n|@O5So:roP4?ȟTmYr.Y?x赁<6o}/oC7/!!/1ʐ*/?Ԓ^@@`=6+2?T1+2^?p???????H?p̂҂O-O?OG+28@@a @DTuTz;{RDβ̂޲̂ēř{؃EQ[_m__qZ=5Pbtϝϯ2H?Ϧ?&8Jߔ/&/dE/3/OO?*"P#Z#~8W>>HP @@{BW@pY z55 2DVhz-0`#f@B FBijɒ_,?eByOewOu@B2Sr3\@BRS6rSYNA]qRRPiqR .sB2@PmPVhz#]tET(#Y//ȇVo"oo@FEN z(oQ$~|6/'7C/CU;1T?B1#ΐ$Қ$R<"3^R9!Q20Q22DVh$,>OO![ltGFGYgSg___%7@Is0ow&p'z'VB{@?@[QNc//&/8/J/\/n///$]`'prvr///*Z[@@.?'P?$5rY?k?.5prb cpr*?~qQ]?O"Ohx&@ rJO\OnOSTxHXr%^OOGAOOO_ '-_` ֺH_Zc1` h`|L^es__h_a49oclka8Cora'((lo~og,Vooo'9K]Ie(x~€/1<9;%76ߏ5xjnkTxٟT)ʏ܏4OҲ);t_OqO˟#_`(\n_p= ףpW;_ٯ_QsTKz())t8f߿'9K]ϛ&1 )&DJϥn8p ?3B?<"^3Pr_9C|dzQ氼 l?'9K]oOOO %{D_S -f.f1߱堸̐S//&/8/J/\/n/qP{ .bb///D/? 'bBsBC|bbsbcyG_???+?R݂??? OSEI8S,+O=OOOaOsOOO_WǏ _@_-QHW_Q.f/j/__@ZV\R͓__oo*o@ HZdvҏOܖ!@3=Tk3z4~4ʓ\eҝ앎,>Pbt$Г 4&⳯ůׯ'"75?=RZ2Srz2sWߥɿQ9:Xm !ӓҞ:L^pςϦώ߲/A]Pgߖ4~P5Z5ߢq?@Q ,3ӿ@08c _(:L^p}`5f""b#-؂-?cjl?@r u%$x0p8;3/ @z352;?M2 Oq"p3^rq<"3~r9W#lp2.e? ~O s']ȜJ?M@H@T( X\RCl~OjAO _M_r+0/HP_c566B˒j<`B?;dEc//$/6/@H/Z/l/~/P6rr////@+ ?fu(9 5?G?Qrsb|Ar?62/???C>g?6O(O:OLOSj>jO|OHPOOOO Nf3E_W@fI[H?s@^Q链7@p?Nր(35L Z7);q ;q! s!sq2*c?3t;qϻ0ONkѿ:w2ʾL@p ƒ 2!2"2#2$2%2:/  Ĥl4 +[YaRmY/1AS?qaIWin32SyncHandlejaOܮ/0cR3ӿ0&l ;qNGia4'+t!6є)qa$ (1E/+.??????}H9O5R@@?2Tlp׳ ׳-?EsELEoH`x@p9RR_ /ASew@JBJB&KBBb'KBNb( KBZb)KBfbV);M?/v?Fo&%/onoY/k/}-.As IO//////?!?3?E6Ķ}_?8X2`;c;oMo_o2`*U  ny(@ '!GeDZK0,R<=4>кq J(H;K0YԭE@lQt`;[KtkPb{𭥤𽯝);'h T`L`u4`ſ׿=u/z//zy ?//?/S? ThreadB]fx@ߜ߮ DՎ?3KThzǘӕp= #?@Z?(?v"Ta*UL ,˲,EQEQ+=Oa P o//)%x@(:h/z//~?O=u#Vo? *W&]?Vozo??9?2C?ontext?O OO-O?OQOcOuJGEӕV88? @X$U#;P,h;$`_ PE_ % ___}T`7`"L=SPHDF>OOY]6pL4_F_> uΠΠcnqΠ%_\Ro}&o8oJ`{GzTofox`ooooo%7Imϵ!Message7R[mnj@ 3EN'ǟKra"HPASB_ISS__[AR<B5QHXF@SeY@͊@K LLD\SRStο(:L>Pߺ/79F/j//Zl~ProcЩ'uJHd!ͬ@QCꬮ>LAV fg-`@j ywtA~ ܒV_R_O(JoLnoo//F_X/_o/_bo_o//z ?305?>?P?b?t????J1C׀21CaU27Rvi@r @п؜ȦfeHHMa `u `bm_u `u wPurA@ OOpNC #PҀւ ܂<JUf _T2SydA@mKPpD`\ @z3@Y]opEzkoҀq$ւ҆Ηւ^{q{pՀ{p)Rr eySf/QboQ#t?2I|х4Lkh`m6 8P PS+]T_okor&*/S`tIny+vq'Toٿooi(.tbϢaRĿ31CDI%2S?}7y{H8 @"GriddSWhite lBlockSizu Y!AvoenueRYYtrolsAsInputs7ResJumpK_Fa 3pjr19PlowOnDrop ?or.1393405786Arial c-ered:%top leftM)Tim esA(M p#j)V'9M $/161!/3"I2/3"4/3"6/3"2#/2# /7@Z3/Z3/Z33?[25?[2?Z3?Z30?Z3H?8`?2Cx?2C?2C?2C/38O4!?Z3O833@@@@x@`@H@0@@@3)P)P)P)Pp)PX)P@)P()P)P3QPQPQPQPQP|QPmQPYQPHQP0QPQPQP*PPPPPvPhPZPAP-PP P@@@@@@j@X@D@0@@ @;@gE@Կ*  ! * #4l 2@BZ:YQ>< :Y7Y CUgy"#$8%&'()*+-./0 !    '-<, % jo!+G:/%//:/L/^/j////t///??6?H?DZ? f??91234_567' ?G1($l 2EBT^:YS <s g(6@(Ϙ~84lc7Y 0~8YR8Y8T 8Yb&B9Y!48YK`j31w<{ I$, )yW8Y 'w8YN}G`tK2F̠8YO?~wL:YQ}ʷ;Y+DwV:Y)S=IDocumentSummaryInformation8P_9748535345%/F ӸɾոɾOle WCompObj.1Xi0/      !"#$%&'()*+,-.21^]456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\`_cdefghijklmnopqrstuvwxyz{|}~՜.+,D՜.+,@LX d  PagesMastersPage-1Dynamic connector 0dpx_VPID_PREVIEWS_PID_LINKBASEA   FVISIO 5 DrawingVISIO 5.0 ShapesVisio.Drawing.59qOh+'0@P\htstets)N:\u\stets\writing\cop\Figures\ifc_2.vsdObjInfoZVisioDocument03TVisioInformation"[SummaryInformation(24\Visio (TM) Drawing TR\|8YS2d !fffMMM333,q0,T d Arial)-":-3Times New RoWman)-3RWingds5T?? Y@-1''J/T  hTJbOSS0{Gz?@CPjV]uVbUUO OS? T666 NP U    UvPaC G#G#G#G#G#G#G &H#O`$$!>'^M4!>7 i>}p'0U.2?E!-67gjP>603206&0B!4?6`2GT2k=\- 2 VT ?@96L^pu I5L2?Op??ZX0F6ȍ03P@?_?V6CG mON9:OOOOMjYgPJ?@_|Y oo2 q`?of.fT+Rjjg4G 0kD_ąO?oogO贁Nkro8wYo}rTih54?t51w1%f3)u"7 E@ 0QU#$0% yfKo?\LgBitCx6WN  9 79?@)fq2wT )< rr-qr?16__:.EX!!3EWr$z_"_G 3u˛JQL^pʯJ\n0U#Ͽ{y2πq˛(\ wπϒϤY$ &Sew߉ߛ߶߿V%#5Gbk}ۯ #5`\\Heart\chaucer odoXXLettM_dPRIVA|c'\KhCa cu//)/;/M/_/q////////??%?7?I57!winspool\\Heart\chaucerNe03:F hTA@* m?<I?Nfx)ҕ <Ebbb b NeH: o]xD` Connector`bb~ ~p{ m3󎻂x{ ߳833߃!߳-B {D {W aV;^_ my331zeoVa33; ;~ xpxd ;({n >:{HG 3nThis connector automatically routes between the shapits.rl to glu -to-". method3Vb?7i68? H"thOT@?, =,4P u `u `A@qu `u z b|xub u` Q:u e *E@5?QV{{)>5kd "&"b* j! h.!j" a#B "B P2rq?o2Ix ?n$v%?b rL`-@br  u`.@# !   ( t u )b#>_0 A`9Copyright 1997 Visio Corporation. All |2s reserved.`shape.hlp!#26006(24_lUk0I E aC" @5+'Z&EJ+ #)L}~i 0;='2p"q?0N3%}%-ZU Fp:Yd#Bs? s rAsB%sC-sD%cE=cmFEcGMcHUc{I]cBc:cb*c"ccc cc! ppppppppppppppppypd:2*"  ڪ z r j b Z R J B : 2 * "   IOJInU$`#`%`&U(`)I`*P+Q`U,+p-./_0'12U3Y`456U78Ð9ǐ:ːU;a`<Ӑ=א>ېU?ߐ@ABUCi`DEFGcH!TQ` L I j= ` y?@*;L]@@@@pq???l%u(y#若+?()/ 4PPQCIq2qC?`r%Cbp0O贁NGk?'s% L@>.gHq pl40]W0l#1Uj aSWWZ/I0+ +rϟɔhτp*)WăЌT`794nIWin32CriticalSection`pl'0O30 2GiO1o4>'2rx#=߱)qS0nd8.Zl@PPp\`=Oas د 2 sM^ʿܿ/);M_Qߍ+O9]ߑߟFactory 1CUgy  arC!3EW5p2 s0aMzBBO,>Pbt+1R,?e?_u__6o_Zo_/)/>-Keyboardd/////////??o1Y1Yv?? ??????KO!O3OEOWO2'J O/OOOO__,’<_N_`_r___oo_(o[opoJoEǯ1믍̶ooodLayouto+=Oas) ™Y1™);0QcuĠď֏C&߀J\n-ÒY͟ߟ'Tϕo說ۯ^$GY$m]/Ϳ߿'9]oYY1Yi7Pϰϭ0ŚxV4 vC7I[miNaF@"F"d/ );ﶙ7Ò"dv,P?5YN x???"ar.???pPO%O7OIO[OHN b fO5OOOO__ :rȒ@_R_d_v___oo_,oaotoNoKͯ7oood!Factoro0BTfx.șș /A)Wi{nyʏ܏ ,Pbt ;$[ӟ -Vϛu﫯`&M_\)M?arshaloϿ);ϻ_K3[[m7 ϰI t@  }9K]o߁mN7@ F>"D"b/+=)Y?"fx.R?>?tx??d?O?leStg(CL^p\O~))8J\̹? e //HPbbY/o}//////@MRr??$?6?H?Z?LO_????A4OOOzOOOAOOOO __._@_R_d_䏈_qÄyQy___́5h$ o%o7o botoooo\cio 0BTfO>ۏW1{gÏ߉C /AreamMhq˟ݟɬQ-]o\?xV4ͯ4 .@H-.A E&~ƿؿ)0hϬЯ*r8^pmVirtualMemӿ -?Qu rrmw7R ߞK]o߁ߓwNE@FL"R"p/O͙)u=a?M??O?;O#* JSewcO@99FXj|p= :c(e9f/!/3/P%)bbg/ //////͙3iRr? ?2?D?V?h?ZO_???95jX=OI*Џ}OO RegistOOO__+_=_O_a_s__Šyy__o|Q:oLo^o=~ooooosz(:L^p)01«,sMσߏ6ߠZ%7rMPrinterdП߫^1Q1;t¯ԯL!3EW;.O JV# .˿ ݿ)2O\OO__(_:_%4rc_u_____o+ooOo;ooqor^oo}Resource"=FXj|V12DV[`@@A t@?@ő͏ߏ Swџ BI€ 0BTF{¯ү=.Kt}Sewcur ACLο׿ 1CUgc>17-؂-jy~!3@PӜ^߀p߂ߔߦߐNV@F]"c"߁/ ,>PbLYC2S-w?c??O?=O?y!+=UtilAGbk}{O~99'Wi{ijE7e//(/:/'$P;?bbx///////ExRr?1?C?U?g?y?kO_?? OH?lSO-O2؏z̙OO(ODDescriptorFaczOO__)_;_M___q___ _yy_oo(ly5h$PoboE٥oo@oooޓ7I[mtAQºL\ϒȏVz4F[>>ccess̟ޟ&8QyQL𔯦` ` 6>ogo@RdvH*` d&17Uٿ!3ED\nπϒ϶Ϩ$H߁4ߥjkW/ ߽Ojr6?QcuO/ y W`+=O^3X?K?6$%3 EE@ `0`fBBLOpEFL2R);M?/~?F_oCo*// oo_o^/p/-.Drop/////?"?4?F?X?j?@oYyY ???<#d0uO$O6OHNaOsOOOORaY_O} __ /_A_S_e_EHr______o Vo0ozofoͯoo9ۯ/2EnvironmentUtilC^gyw1 !Sew17"[@@(\@@=@@pF?]oѸ߷@D{@C""/3EWi{wY&924~???!O?EO?iO%7!HeaB UG)O$99(99q#|Q#;!UI@xV4R5п@ :^eI4X!F1jg,A `u `bau `u e0`` A@a``b4/pF/U`\# L0er!r0{?Gz/29u/$?@Oa@@88?@XM<+ @0pI`t @z3@p9up$tryrr $vr-'v3_\@)qQ^-Pp>P!=bi E|F1b_1hoqT?2ÌBʅym[txBpkPm6 8n0 j0v254D02?O[Oo`n^gsO]hP)OAO@(!.dkA}D#$|q8 @vd`Foե{Ӕu#oW/i/@Ԙs៲s/Ŀ/e// ??.8jE?W?i?{??\_(0I>bφOFIV Api@O__/_A_SX<<m_YV1_mܶ_@Uj*lq% j%o)o=er?@arCUh@zuifyoooooooUH * %"v=C6HZsf?@u@f?@ OauAq{v't{ ==798JKQh7l hu8ԏ럕Ң!U#-;Mϱ߃u/// /P:L^8q?~%& j&9K]oWf hif3؛+0p&"vB BXj|sq!R{!_W_BS\P0B9YTAWR@| D/2/1/C/U/g////o/͞5(6? X.?@?R?^P1?&'tͥ` O?@T@b@@pa?iO&X4aBjOOt rS_S>߿'9K(eyY(R`$dvɪϕśϭo#ua`hjЯr^32?Memory.7I[m4| )|Hˑm՟̐sT 0(+(??=?@QRwx!AO!O3OEOWOiO{OϏHO@(D@OOJXiQUr_3VlNVId[#QC_ v_ooS@oRodoe̗oooo7o['^ As"9⯴d70!(0)b:) @18BU&Zl~ߐߢߴ ]@)Fp"v");RuRU".[/?Up"J3K<p"j3Rk9~!AQ@2o ;M_q7&pJ\ONOy_@wk_C!)**l~Cfq8Up)c//(/:/L/^/P*b`b/// /%Tr+T ??@bs|bsy?ap@???te v2 o1ϬϾ\yZ ?QL:L^p߂ߦ߸/C/Q+y/OasQ?,B-Z- *\@B:Sr;YNAkR:PkR 2\3_*Zl~/#Q>uM@//,/zo/b/4o//o///;1t?B1-B.F??Q?c=:m%IR8s?????? OO.OpC@._[OmO~M*;L]pOCNaQ$K$OOZ+Ŵ>^¯W_ߒߒ___\H?)___osWP"o4oFoXojooooonu+9y[1CUq过*q.//Ts y$8m@%7I[@mC@/(.Ϗ EyҽKQcߟ(㚒("#˟6S"S\@CUghzL"\R̯ޯ(bpnmşyɿ'#\T*/*00.:0$Ϭ6H@אBx28ϘϪ߉C@ 0GFCUMQ~ED "K /@B/Uv#w,#FR)?" @yQ"j|\ 2DVhjO!yCO+@=gwOo0p1z1e IV 0BTfx$@1bbHbۀo9/K/obclb s y/a;r p;r//??jR+?=?O?POs???????)OOc]]JOOnOOOO QDO*Q122 __0_n________H_q+2/ք+o=oOofooo*^b_~.'U᯲~a᯲Rdvޒď /AS wF 0*<TW23 3И=*@Pbt@A6BTZ Z@@#8:m ` u}0C@TT€45`%c#9KcZ?"v&]ש"+גOU%̐WԜ,U[ѯ@ٯ)O'V6V 7bZ*7Pbt@4Yƀ蠸زĿֿ 0BIo07s6\boρƠ"H] \ \<rB=Q7Bkn߀ߒO Ӳ1c+=Osg/-/ W$?/*^7`8j8Xj|@20| 033&8JQ0p8vdBjBw))H B]O dB$S %\dBDSEYYA8 sRvCV_?AQ1cek+/!/3/E/W//{/A6ko/o7o//=_1,7?f18>9B9`?r??[@8nr 8s???? OO.O@OROYpW9[lrOOMO D܂K܏__l, - lL@Ma_9d{~___đ____#AAo)o;oMo_oooowomuo=gq4?nq9F:J:hz[@xłu$6HZa_ :ctz‡Mar DK t4(5tTHUi:l҆ SVLʟܟ#A(0BTf~n=oPbig@;kFB|ϡϣDëJE DK#|<0R= |\PR]q;tRߠ߲c%_ۋ{~#[Ah&8J\n,///}wD?O~;Vpj>Xs ٳ 2DVhz>§M5h$߰ );THUthu>Ҧʟҵ?{څL 飲W ?Qcuѯٵ@/1=\g>n0@t8r񓿥=B͹6(:L^pς$@?FMI t@pC T [ @1Cߜ\PR]|}?RX$(FXj|/ ./%79}r`r?vp@zz!܁Rxbڱ@v3@ 1CUgy{$0@BBˍ  R_9KBdSXe\@oB҅Y@RܔQ"@ //1/"?oP>N/`/r//////o(?n5o-???Afj?*l@~AA???@/ȱY@@0ەLQvsOO&O8OJO\OnOOOpAƬ@OO@Cy O @A_S_l`mҍ_Aһ__]CUmoo&o8os?v>ZVohozooooocv-ׯw5GIqtqABB0àx׃v t .@R@dvBBǏُA  U0T$![$@I[thuӈ٩BƟ(؟Tf  .@s^__q˯ݯ9=@OQ=|B0C:C¿ԷZҸu0@Ur$6HZl~ϐϢ$@CF넍[jYH? T0T,![,Qc߼|pR}R߁CR]?$67s9&ȕ^xc/V//?E@WY}?CpEDzDԷUuP +5E,>Pbt0DBB*'!84R)4_YkBSx\BSYDRVE /,/>/?3F>+hn/////?/ tEoE?oG M?_?a1?*1DEE??LԿ3Y "O4OFOXOjO|O OOOpÊ҂OOO_$H<9GpIHz9y@hy®ӈӨٙ^` b""+=OP*U'୯ѯ-" /ǀK]7Kotst:ϱTֱF0G:Gп@5 ti-rc  2DVhzό ϰ5@GFHNFPOa*,U!PTA[q߃H"#R#,HB#RC)VQs"B s"(:L-m f bt!s?ӀU߷I#5?=??@wC|OJGpeHzHDV?ͫM!q S $6$@πHӆRRcu#d0u -48A[,b I,oizR|c}lRciɟHܒb曘///V///?*C*6)-PV?h?z????W"?WWƱ?"';9O_G{AOo } @B:YM1($EBd:YN N8Y @@8YM?R_?9YiDo9Y'hPage-1ConnectorDynamic cvisPlacementStyle! Depth!Routing0Gr"LineTocClearanceXe ^pYn]ezNodl !30"GriddSWhite lBl?ockSizu Y!AvenueRYYtrolsAsInputs;7ResJumpK_Fa 3pjr19PlowOnDrop.188912$73 /4Arial c-ered:%top l?eftM)_TimesA(M p#j)V'M $/19 5!/6//9?200?+2*3*3 /*3 8!|?20/*3/*3@/*3?*3?*210?CH?C`?Cx?C?C?C?C?C?CO*22 O S8O SPO S33PW38]P ]P]P_3mPmPUmPmPxmP`mPUHmP0mPmPmP_3ЙPPUPPpPXP@P(PPW3PPPUPP|PmPUYPHP0PPMPPPPUPPvPhPUZPAP-PPU PYPYPYPUYPYPYPjYPUXYPDYP0YPYP YP?h@hE#<@Ϳ:mS   ! * #4l 2@B:YQ>< >_7Y CUgy"#$%&'()*+,-./0 !  ? '-<7I W jo.! <JW//:/L/^/j////t///??6?89:;<=!y? 123?456[P5?1($l 2EB:YQS < g (S@({+84lc7Y0~8YR_8Y8TU 8Yb&B_D:Y!}48YKjx3W1w<{_ G$Y )y8Y '~w8YN`tK2F̠8YO?w_:YQʷl6;YR7Dwt{[S ={DocumentSummaryInformation8`_974853532=7FB丠ɾ渠ɾOle gCompObj69hi՜.+,D՜.+,@LX d  PagesMastersPage-1Dynamic connector 0dpx_VPID_PREVIEWS_PID_LINKBASEA   FVISIO 5 DrawingVISIO 5.0 ShapesVisio.Drawing.59qOh+'0@P\htstets)N:\u\stets\writing\cop\Figures\ifc_3.vsdObjInfojVisioDocument8;3kRVisioInformation"kSummaryInformation(:<lVisio (TM) Drawing kRR\|8Y;Q0d !fffMMM333,q0,T d Arial)-":-3Times New RoWman)-3RWingds5T?? Y@-1''J/T  hTJbOSS0{Gz?@CPjV]uVbUUO OS? T666 NP U    UvPaC G#G#G#G#G#G#G &H#O`$$!>'^M4!>7 i>}p'0U.2?E!-67gjP>603206&0B!4?6`2GT2k=\- 2 VT ?@96L^pu I5L2?Op??ZX0F6ȍ03P@?_?V6CG mON9:OOOOMjYgPJ?@_|Y oo2 q`?of.fT+Rjjg4G 0kD_ąO?oogO贁Nkro8wYo}rTih54?t51w1%f3)u"7 E@ 0QU#$0% yfKo?\LgBitCx6WN  9 79?@)fq2wT )< rr-qr?16__:.EX!!3EWr$z_"_G 3u˛JQL^pʯJ\n0U#Ͽ{y2πq˛(\ wπϒϤY$ &Sew߉ߛ߶߿V%#5Gbk}ۯ #5`\\Heart\chaucer odoXXLettM_dPRIVA|c'\KhCa cu//)/;/M/_/q////////??%?7?I57!winspool\\Heart\chaucerNe03:F hTA@* m?<I?Nfx)ҕ <Ebbb b NeH: o]xD` Connector`bb~ ~p{ m3󎻂x{ ߳833߃!߳-B {D {W aV;^_ my331zeoVa33; ;~ xpxd ;({n >:{HG 3nThis connector automatically routes between the shapits.rl to glu -to-". method3Vb?7i68? H"thOT@?, =,4P u `u `A@qu `u z b|xub u` Q:u e *E@5?QV{{)>5kd "&"b* j! h.!j" a#B "B P2rq?o2Ix ?n$v%?b rL`-@br  u`.@# !   ( t u )b#>_0 A`9Copyright 1997 Visio Corporation. All |2s reserved.`shape.hlp!#26006(24_lUk0I E aC" @5+'Z&EJ+ #)L}~i 0;='2p"q?0N3%}%-ZU F@:Yd#BA:Y_O  ;D:YYi @tC:YS+;lEW:YS"H+_$H:YS,ΫgE#@W_ϊF@  @B|9Y *1($EB9Y`  bS,K:Y |@8Y ?Rܯ9YI+D39Yj;T*GD} @L@GFT L*h~TIΫgE#@IWϊF@??I ?VJywbbb b= q !X!Ap~jb A!  }* *  &5%?H-=(P DD sN:u`F!u" u)l& & %}ggTTGoJIgWIgS0UW0 [0  c0} g0 k0o0w0(1J0I0B1 J&SB17?6I??14!@6F0T0OO%O7O[0MO_O?2 sMЄM1 OO sM؄M1 D__o0O2O_3??)0tFU"RGU0__9I1j_en]sHb bg&cb$W0a[0a"aI*c0a2g0a:u0aBk0aJo0aR$aZw0ab)0aj0Gr0azabbb%bI`aPawbbwbbEa!bQ`a#b$b%bm&%c'=c(Ec)Mc*Uc+]c,ec-mcm.uc/}c0c1c2c3nbr4c5c6c7c8b;bBbFcppqppppppzprpjpbpZpRpJpBp:p2p*p"ppp pp!pp*p pp`pKKKKKKKKKzKrKjKbKZKRKJKBK:K2K*K"KKK K?9InUz```U`I`P Q`!p"#p#+p$U&+p'() U* +Y`,-U./!0%1)U2-3a`45596=7EH!TQ` L I j= qq\@@r @!@@ѶP%??l%u(#:+? (D)/ 4PhQ[aq2q?x%[bp0O贁Nk?s% L@V% gEҟ pl4_0W0l#1Uj ako4oZ/I0+ +ʿܽψB)ěT`MQ4nIWin32dowUtility`΃l';03 0u 2GiO1o4'2rx#S)qS0nd8.r@PP\`Ugy뛑şמ0&8J к sevЯ/ASewiϣ忿 AeQ++sϩϻFactor"4FXj|ߎߨѨL0#7I[m$J !e22 ?0B Tfx!>B 9/{UOOOC_Og_ _-?Q2Dialogj //_B/>I>I///////?]t?.?@?pR?d?Jb#?A????O O"ԂIO[OmOOOO_o_O5_m!_}_W_WٟC__SMenuoo$o6oHoZolo~oooo4oԉaԉp);Ms'}@@ *ʣlxʤ~yxsરറ38\n/k"hߏ'9+cΟﺟ(@pߔJ\]SPrintѯ+=OI.hahv'ҰѿOq( t8RJ\nπ8z:`6?Ec&8J2I.k"s߅ߩ߻߿;_/K/y//e/?/}2EnhMetaFile)DM_q]?na w9K]M cuT  @$RRZ_~ȉ#Bb//%/7/I/[/M?O/#G5?? oU{??`DeviceContext????O"O4OFOXOjOO~iiOOOSOP˒_,??@4!Y3_EZhSv_____i pv_o@$o6oHoZolo\+'oooooo"]yÿp/ϙS?FMSnwя@+ ''. j|ȟڟD);M.$B F (ӯ ,Dһ2DVhz~϶ԿT xf@>*ϾRPaletteSystem $6HZl~ߐߢ"NAG "\f/bh!_dE_WV%h_H^ P V22?CUgy~i*QB L/]hOm_OV_Oz__@Rd2GDIObjϘ //1/_U/ =QIy!QI_ ///#>>i%XJ\?0fuouA?S?e?w?_)ps w06?T?? ?O!O3O)dYOkO}OOOO_oeE_}_g_g韝___afeno.o7oIo[omooooooGo y! *<N4#@ş $ KoɏEI(z(:L>uޟʟ7&ߣEl~_2Bitmapʯܯ$6HZ~czy!zى' Ͽ -?ϙXj|ώϠω>R0 6Y_}@&8J\EI$"ߗߩ߻ M'q/]//?/9?/!EnhMe?taFile/'_t`TEt1lPtr^pYlPYi?{? 2`2O$oas0{Gzde9x@ (.@2Ov:Vo!AW= moQcVDialog //0*H1O__#EQ8·?@# q5ԁe^Uq}ZͶm۶mӑZcZÇֹ____f2b2o=oOoaosooooooooy5@򯐬 0BStateGbk} ŏ׌>DnM?@2T~MHMw5N#է,5ﺟ̟ޟ $';8Jn0¤Oӯ׿鿪 5z@<\4ʿX);BitmapGbk}Ϗϳ0/~OT/ NAG Vd3EWi޻ߔߦuN|""/,>Pbt132 .wQ???8O?\O?);kPPrushfO>39[39kvMC#)Ь.?P@etIe/#/5/G/Y/` & rr/./@///??3JRr>?P?b?t???O_O?*OZO~rOLODƏ0ꏌOO{+FontO__*_<_N_`_r____(>y[ykoo(oۃ@7&@Zoloͥ/oooooHo*&%I[m4גN&In ڏS߽wFX?MPenɟ۟#5>NvNkh:JJӠ2T߯Xb,>Pbtk.$ &#)Gֿ 0'92cYk}Ϗϡϥ!Es1g]I/`alette (1CUgyA/^ v W/AǬIot o j0vBB>Obty5"jR -?1/e?o'o/_oo`_o5o_/q/lRegio /////??,?>?P?@ot?jYvjY02123P[8,QapEK~@dUdeFPzTAfAQ]a `u `bu/ `u 3P^A@eOwO; }PNT0{Gz _BRlOTw188@.@pFԔ @z3@ѐ9՟p  N@$JFN`Zf|p\q`rPM>rP,Qp%(E ef9QbQt_?2I{4pm6 8P PR"UTuPR_o{o~f6˿ῤo~fZo+a*o`(.FϤzad310???c8 y@Ɩd@@`Es!O.A:CǕHCVC#%7OO@&'/OO_)_;_M_v_____ٿ [%!Ac~iqoyx),Api@,GPbtx-DLܙn߀ߤ՚m//Y?(?F. FPCUgy}1%P!nA0` fTBZB_q fBջOTBSr\TB4Sr5YA cR^p?vǡR/l //&/8/J/\/_//_k4o//=T?0 .!F!P?Hb?t?v\( sԢ???? OO0OBOQp[!_djoOOAOnԂջԏ@O_d$>%dD^EQ_!sn___h2D__c%?2z;o)o;oMo_oqo/oo}oo=_q47fq!."27cu1~2 @.@Rag"KtzA t405tT0Ua"T~8ʟܟcGO1CUg-!G1DG*v">0#B:#pT3ʋu0ҿ@,>Pbqg#[Fϡϳϥ@@#߄D0Ed@Req#dR߲ߴ5xc?<hw/ASew/ ӭ/ !T?TW#Np$Rz$pBPa2@: 55*<N`Hr0g$kBB-؂-f/b0΃ R_@!3BTS0U\BtSPuY$tR5=/32)m?/Q/c/u////բ6o?o7o?/?!1dg?1$^%b%??@A1*ڦas@?OO)O;OMO_OqOcΑpw %{ƤOO ˒_,?O1_ C_d@e`҅_%ҳ___Dk@_ oo!/"S?xOoaosooooo/)ۭu-?1qtTwq%n&r&?3j8rq6&8J\n&¿яOA O$$@AStPup١&ҾП\;_.0o oU?^pʯo8~=OA=*&~0':'¿@m }q}q $6HZl~ϐϢ$@'F,K~ E T4[4@Qc`RR'R\4cŃq ,>@ E nܯ/H ?M_Q}?*'p(z(LԿ*s sN-2DVhz0(BB  0DR!D_@asBSp\BSY(R/s齃|J\nIS!w7¯ԯ0 xR:C}=ǿ*0+:+?@AAvC3 F(@C3RdvψϚϬ @+F !]˒_,:IS?}P?+p,z!,$b@ Pbt@@,놂RR1CUZL pRa_ RS\RSВY/,#b/0/B/T, _j/|///Y////?P?*? rsҒ;!]fxųůׯؿ*Pbt߆P/V ""JST6|UT|"[|/5G/ "#R, "3b9!%a720]72([d'9KLo?_OFHOP@_/00DHw;&?@<?HͿ@@OSUj|@mP'0+€bb'/9/crX`SЫ2T?c'˒_,@ bo6&rכ&bZs"[|bzs2{y#?a91rzp]rN?`?r?JJD@?h%n0???A{aݔH>?OO$O6OOZO"uɅGKۏW_^OA_)_ySS_Q0jP1BnZ1|___T^\__oo&o@8oJo\onoᐛ1oomVdj o$dd/kγ"ϼ2﹗91|Xn 2DC?d)MbtΏ.9O7kySq@(ǟ1jP2nZ2,qIXCXC_[mǯٯH&U 2&hnp!K$R8@om$+@%hB"C hb2c v91bE16HZτ3iϕϧO?&8ߚMi0;;@|:F /` ؉؉(/:/,Y/Hߜ/4.Pl1Yc?;j2jP3nZ3dv\GPv^M<+?@?ο@ P35 2DHVA0`3fTBZBȃdR`.?PѾe*BkOO;TB.SN/\TBNSrOYbAqRNPqRlSGH~BÒ$t$ۣJ\πH#VUno7o/А>/@M3'?V13ސe44P?b? @7ݦ@@zsA?@`_$~7Ȳ?????@ OO0OBOp4Ȃ΂oOO35Cp \T8q8;PR(ʲȂNȂ{ԃQגZ0_Zme* __o?s F~k27e-@`HlXf،ejo|oooׯE M_qg{bpqq4R5V5t@303&8J\n@Űk5oF THHew˜N¸nş5RO{\.@Rde1밄ۃ˯]7'asӱڱU5>06B0rQHٳEj[T`k7bd@POG@43%@@YS#?,b@Fx$ -GQ)P PAW@S`ASq2Sq? %PPb50OONk1B1L@0R1 R2R~ST7R=>P \5QФ lL`4-PdYeP:;#;/i_/+{/q;2&/ M//9//AvpaSa4IWin32GDIObjjcܾ?0%3S06|RGiP'%? E6R)qְ=>#?5=0яnOOORp7z7Կю?@K~q%п@bcq%JU@7I[mϑϣϓ@ˀ 7φb b1SpS?@ ;Q1KP3ud8UwoZpFdԭbUoY҅bclbsy@b`A%U^?Qcи(T[LUW$+/?EUV>bJW~/&IX/ȏO?J0Q; Q708Ʋ_0eh O@9Sq@$G,$?F6Xcq վ__ P(he8d9,y:,imsy}B̢:}UeO9°4a: %0qf4d+NЕDOѣѤd̩C\°yTʲQgx ǞG 7`t`8 -%t"+)%="4 yy /$oSeCfyx@(///ya+)&Jn=?a9n>Menu???????OJH˿ᛉ=ґ8_?@=3=U(6JAL &J^yw6;rτϖϨϺ…?,cubt߆ߘߪ"8x/%/m/Ⱦg3State"4FpXj|JG;i{ٵ?@WϊԀן555@5mBPX`0;t<B=B>BYpB9@BATB@BBBSBB*BBBBG@qBBB-_R.?rkRI/?rwRدꫲ{u<=>?@A*%"%%.%21;E/fhdSd_vZiYoko@;չ>?o(;-6~P7v]_zROdOOìB¬B%>P[m/?okƏ6/LBq/.6؏Z~//.DeviceContext/? ?2?D?V?h?z?@ooo?@ r`@D)~(Az?_[jX}izAA}BB77Im#C߃K/9ϓρɟ۟<#Path-6HZl~@ Ưد"4Dw%yyWi{zBB߿'9K]oρϓϥϩ߻I#m,Pt).Scre?enClip &/ASew*Э 3-?PbwwBrB?%2I[hzOB5O~X+_OO_Os_پVF /%/./@/R/d/v//@///e ?,?F OpO?bt???:`4r?? O 1ODVgOyOOOO__OŏA_f _1ӏUyȽ__&_iPropertieso+o4oFoXojo|oo›Aoool88o 2>7u6gs6gUgy:4ڲ%7I[mG!k=aυß՟'iCoordinat5>Pbt,GBlӡɣB榌%PO?@K~@@X@d?e ,ӬJA JA JAIJH@4װ0BCDLE *ӫDP>0 'Ф^3y)e,@C CDEFЃ q|/ݍ@IICVt Bȯگ'-?Bl>4gUx32鿃/ OCCOUOyϋϯϳ/қ^?O߂??i?p?@?\?OY dow)DM_qlOaLs:AgfQ`o?@Rf#dS#Qg0E>`F*L/,/>/P/vrz/~o//1/Ug ??.?@?R?DOVO/ҖVY?}W Oiq0OfOxOCOBSt%OOOOO__&_J_\_n_ZΔ____h g__o#o5oGoͺ߲uo~oooooo);M?Q]'ɿkW[mIBProperti'ʏ܏$6^FL$[@qӡ5R8 @@ 1=5@@`ͣշGTbp);M LFSUOSY_qѯ(@A)*Q.-Q:7QF[rm }&8J@8YK?R_9YdLD9Y 'Page-1ConnectorDynamic cvisPlacementStyl}e! Depth!Routing0Gr"LineTocClearanceXe ^pYnezNodl !30>"GriddSWhite lBlockSizu Y!AvoenueRYYtrolsAsInputs7ResJumpK_Fa 3pjr19PlowOnDrop ?or.224'1297a830Arial c-ered:%top leftM)TimesA(M p#j)rV'M $/231!/3"2/3"3/3"2#5?3"6?3" 2#/2# /48!|?24/3/3/3?3?3H?3`?3x?5?bC?bC?3633@x@`@H@0@@@3@@@@p@X@@@(@@3@@@@@|@m@Y@H@0@@@@1P1P1P1Pv1Ph1PZ1PA1P-1P1P 1P@@ڱ@@@@j@X@D@0@@ ~@8@gE#@WϊF  ! * #4l 2@B|9YO>< 7T7Y CUgy"#$%&'()*+,-./0 !    '-<W  jo!+GW//:/L/^/j////t///?A?6?H?Z? f??7123456b%?G1($l 2EB9YQ <s g(8&@(l,84lc7Y 0~8YR8Y8T 8Yb&B:Y!48YKjX31w<{ I$, )yW8Y 'wL`tK2F̠8YO?w;Oʷ$ ;Y'Dw 9WYQ=/DocumentSummaryInformation8p_974853531?F踠ɾɾOle wCompObj>Axi՜.+,D՜.+,@LX d  PagesMastersPage-1Dynamic connector 0dpx_VPID_PREVIEWS_PID_LINKBASEA   FVISIO 5 DrawingVISIO 5.0 ShapesVisio.Drawing.59qOh+'0@P\htstets)N:\u\stets\writing\cop\Figures\ifc_4.vsdObjInfo z VisioDocument)*+,./0@C7b/^@VisioInformationMNO"UVY{SummaryInformationmno(BDuvy|EVisio (TM) Drawing /^R 9Y\Ld !fffMMM333,q0,T d Arial)-":-3Times New RoWman)-3RWingds5T?? Y@-1''J/T  hTJbOSS0{Gz?@CPjV]uVbUUO OS? T666 NP U    UvPaC G#G#G#G#G#G#G &H#O`$$!>'^M4!>7 i>}p'0U.2?E!-67gjP>603206&0B!4?6`2GT2k=\- 2 VT ?@96L^pu I5L2?Op??ZX0F6ȍ03P@?_?V6CG mON9:OOOOMjYgPJ?@_|Y oo2 q`?of.fT+Rjjg4G 0kD_ąO?oogO贁Nkro8wYo}rTih54?t51w1%f3)u"7 E@ 0QU#$0% yfKo?\LgBitCx6WN  9 79?@)fq2wT )< rr-qr?16__:.EX!!3EWr$z_"_G 3u˛JQL^pʯJ\n0U#Ͽ{y2πq˛(\ wπϒϤY$ &Sew߉ߛ߶߿V%#5Gbk}ۯ #5`\\Heart\chaucer odoXXLettM_dPRIVA|c'\KhCa cu//)/;/M/_/q////////??%?7?I57!winspool\\Heart\chaucerNe03:F hTA@* m?<I?Nfx)ҕ <Ebbb b NeH: o]xD` Connector`bb~ ~p{ m3󎻂x{ ߳833߃!߳-B {D {W aV;^_ my331zeoVa33; ;~ xpxd ;({n >:{HG 3nThis connector automatically routes between the shapits.rl to glu -to-". method3Vb?7i68? H"thOT@?, =,4P u `u `A@qu `u z b|xub u` Q:u e *E@5?QV{{)>5kd "&"b* j! h.!j" a#B "B P2rq?o2Ix ?n$v%?b rL`-@br  u`.@# !   ( t u )b#>_0 A`9Copyright 1997 Visio Corporation. All |2s reserved.`shape.hlp!#26006(24_lUk0I E aC" @5+'Z&EJ+ #)L}~i 0;='2p"q?0N3%}%-ZU F9Yd#)9YO  )t9YYi_ DOS+)9YS"H+9 YS,4ͫ @߼_x!@  @Bd9Y *1($EB;Y_  bW9Y {D,9Y ?Vԯ9YH+Dj37i;T*RD @@RF/T L*hTI4ͫ @I߼x!@m??I =?Vybbb bt= !X!A~j\b P! } *  5%?H-=(P DD :uS`F!" u)l& & %ggT;GoJIgUIgS0W0U [0  c0 g0_ k0o0w0(10I0B1 &SB17?g6I ??14!6F0T0OO%O7O@[0MO_O?2 sMЄM1 OO *sM؄M1 __o0O2O_3??)0tFURHGU0__I1Nj_en Hb bg&cbW0a$[0a"a*c0aI2g0a:u0aBk0aJo0aRaZ$w0ab)0aj0aIrI0az;0a0raabwbbbI`a܅PabbbbEa!rbQ`a#b$%c%=cm&Ec'Mc(Uc)]c*ec+mc,uc-}cm.c/c0c1c2c3c4c5cm6c7c8c9c:c;cs? s rmAsB%sC-sD%cE=cFEcGMcHUcmI]cJecKmcLucM}cNcOcPcQczTjbZURJB:U2*" U! UpppUppppEppzUrjbZURJB:U2*" TkkkkUkkkkUkkkkUkkkzkUrkjkbkZkURkJkBk:kU2k*k"kkk kQIn(`$`%`&`'I`(P)Q`*+p+,-./01Y`2347#8'9+:/;a`<7=;>5?65 78q`9Ci`EOFSGWH[I_J5 MNbq`Oo TQ`@ L I j= qq@@m$ߛW@!@@p۠P(?l%u(٥#⥴+?T(c)/ 4PQq2qC?Ҷ%bp0O贁NGk?'% L@4g;\HѤ pl40]W0l#1Uj faҷZ/I0+ +ϟ$ZBfϊ)WЌT`74nIWin16ProcessF?actory`xl'503S0JC 2N[GiO1o4'2rx#t?[)qS0nd8.cP__ħPp\Ǚ[\`:#8p񠣲 } p#y8J\n3 s:@^* -?Qcuχ3:7ߍe,Œ_6HZ׎ߗ߻߶NF"" //A SewrYF2C2 >zT?O?HO?lOO,>'6Locҿ_"jO@F'C9:C9J ߝh(/:/L/^/p/Q`^ b r&r/D/@//??%?MRrN?`?r????O_O?:Op&OO\OZ܏FOO!OWo_'_9_K_]_o_____7@_ykyo,o>oPl%*;L] nfhrn ooo oooHԴֻ;߿_qP;r*<.mΏ *Z~ТQcIRProfileɟ۟#5GրbWrkr{ ǯٯPlQar{ .@Pbt{.D &KQֿo 0BTy>}ϏϡϳEiߛU߿ߋ߅/q+/ 32SystemUtilitOXj|h/ g EWir ?`E'H90#p 'vBBf_y)a4 .@RdV/?.oRo>//ooN/Noo//l1.Beep///??%?7?I?[?m??o}YY ???{'O9OKOvOO@OOOg ¶ntO _2_D_V_h_z_ @r%______o koEoo{ooo*N/.)dowsHookXs| >%1%: hzrƏ؏B'9K:N R≟&џ A¹0BTfx|үRvd><(漿!пFactor/!3EWi{ύϟ7  2HZl~ߩ߻N@ F""/A@SewYBT2 Of?O?YO?}OO>PbUtilit(:O^T9T9]DЪ //zb2/D/V/ h/z/]1`qu8r>r/\//??$?6??Rr_?q?????O_'OOKO7OOmOr^OO]String_6_?_Q_c_u______O_yy2oDoVohl ~ooon oooǠ  βԲSw@yCN 0BTFҏB.ߊϮPtN̟՟ /ASe߉ ɭɌȯگk8@@o^M&.@$#cu.W &^d鿂  1CUgyHϢϴX2|߮hߞ߀/>/ L16MetaFileHcl~|/ 'gXj|hlC -?+z0;p?vBBy_ yOo2R 2DVhzl/? /?ocoT/./)ooooqo///$FactorG//? ?2?D?V?h?z?? ?YY?? OCS?@Sar Mf`AN؃XOjAUƅO׆OO OOǴѰն _._@_R_d_v__y,>_____ oo9yoSooׯӊoi&ȯ@Jn 2)0Colorspac/Z.)>=>M Rǁ{͏ߏY.@RdMae ⢟>Ɵ؟ 2-I[m5j!}WT@ÿտLiϱ2DVhzόϞϰ@f70&8LƂ{`rkNHN@F""5/Yk}2:4k2$6(f~O(O?pO?O6OVh} Icon .@ROk9fk9vɀ //0/dI/[/@m///v:`ArGr/e/??)?;?M?2;Rrv??????O_>OObONOOO{g!ÏO__(P?_H_Z_l_~______X_y ay ;oMo_oJ߃`oooooo  Π !ղ۲\@.U'9K]Oˏ%ۏI7ߑϵW}|9`}ursorڟ+=Oasv aɣϯ -?Qj|.] &dj&8J\n_90ϩϻ_9߃ߴoߥߞ /D/# 8JUtilithq/% a0g^pr{Q:D /A0~0DpHvBR_/z2R&8J\nr/?/JonoZ/4/4oo oo|o///$/??%?7?I?[?m???? 3Y1Yħ?OOC"R@@Q:B@OROdOv@ƅ\υOOOOOľذܶ_9_K_]_o___<G____ooBo^oo௔oooʯLp68H8]}MWPz .>G1GSrֈm [%lASew]gk"⫟@ϟ)=Rdv>lhڋ]Iӿ\~Rect!*/P/b/t//4`[q;rAr/_// ??0?B?T9+Rrk?}?????O_3O OWOCOOyOuaOO _UFactory%_@_I_[_m_______Y^yay 5oGoYoLooooo@o ͠#ԲڲVzT99T!3EWIŏ$ՏH1 ϴVwGLٟ*pEsBBz_y%k2R!3EWi{m/? /;o_oU///%oooomo//>Accel/// ??/?A?S?e?w?? Y>Yç ?? OO0N!PsSyB҇M^*>ف `u `bcu `u mpkhA@|yoo Ṡ$ p!̲Ҳ0{Gzr{t @@88!@ pDR @z3@O9Sep5pĊ‚aej̲$ȶ̲ض}ڱAA˰>Aq% ac)qb "?2I}rт{տ*km6 8 z#,5p?E7lX %I_ ֏jrm(h.Ĥ.R*6c7a$%`%%ȯگ=?@ AD9*?_RQo>@oo$o6o\ _oqoorooooo?c= ~?xF' .(:(@RdC3I HqHꢏƏ؏ 2_(c _q_!QO ((^ /ҒBҲb[Q ↯Hlӯ !3EWi׿ <Ϣz_5G@Yσ7Ϻ(.):)C%P F<28 E$q(:L^p߂ߐߦ@)F," 2"ߕﬕ z"/Ug/ ,"3R<,"&3R'9:!QW2&0 a W2 HlGYklE?OyOgOP%`_.).*2!*(:Lvəv%xS//P/ *KbbG/Y/$ /$r//Fbzs2{|bsJyC?aqrp}rn???0T???OOO'O9OKO]OoOOOb]O$_ G_/_A_kǛQԟs_*Q*++__T_S _^_o"o4oFoXojo|oo$/ +oHoo}!oubt{=O2þ"Y1??n/ASTfʏN\6ZߙsߗHT+,,X"4SI^ ^r̯ޯu/ ,3& /ASaj|ִ{ÿ. %b2c 22 +ϖY1e1Vhzόϵ!3E@Wߡ{J] 4/ .XRᨼ/[,P-Z-؄@5HJXR A3 .@Rdv$ `-f2BRd|JlB{lO%7O[2CrL2CrI Aq'R@q'RT4);H>Z?l?~???? ???]p.pAvO)O;ORO|DyKOO@[pJBKpjk_~AjM>_P_b_t_r___o___ oo-o?ooco2ïI=oooojrPkqCrq.r/v/l~.3 yqŀJ6)@);MHwѰ/MAƏ؅2TyKT [¾Bӎهğ֟<#$6M_q߯ݯ=7hZ*as'߱/ 0*0ϢsI6͜0͜BTfxϊϜϮE00FX^#ݥ :؅yK߀EX2#B3,XR#RS)f)Q"R 5Q"&8J\s'qK?? OjrSO+Z0Zp1B^z1Tfxщ "4F@s1wRRs#԰^ @@ංτ !؅Q$"^"W!!D| Ͽ󿀏ؚ&8J\nπ0B!+9a7I[T߶3@4J4Gk8@@QU#d댕#d$6HZl~H P4V(2.2@@m$Wy21?ݯc@?e(2CbL(2"Cb#I61aSB"@qSBDsS@?%BTf+n7< `:B*"!` Q<ZE_OO _ b_Zm%oOj(8Yo4 xl#!o*!4*5.20)#>K?'6TQ$ @@%X!b%@@`DUTyYsFH&A1;1rs2}=#B>,}]#.B^)'"kJODnʱ@WOOOv#JTR%P\,V>_t_?|??ak ixEOo*7`8k 8ys@@? D Nut`@bD#5GYHkr@ 8RRQar{@@p"?[@Hq  $pR_pD $+b*o:!R_cI"`lRci"iJMq8&b`́b*/,by"C@4D//?BkT҇Bߔ32U90WAPbtφϪϞ2MtѨAL{:c;sJ;u߇ߙߣBƠB 1CUgnP ;V""¡UGd"k/("A3=B< "a3]b9v;2Ϩ%r _v,>PbtOMO .|I_T;c<_P 炈"o>ԱSʙ!%7I[mЄ >&⬯Яa e t + @.@Y]Zym2z>2Ͽthv&b DVhzόϰϤM"46]al>sPyXwߪߤB  -?QcuH`?f""t2?6H"a3]b<"3ur9?r2t?z .F5sL^pO&O*<>wew?{@@QЂ` /#/5/G/Y/k/}//P@bb/// / -4r>?P?bis]j|`tb}y?@r???x[yOO$O6OB[TOfOxOOOOOO.__S2_D_Fݦo_q@AA___VS oo+o=oOoaosooo$A汢oHoo!o 5 -4!!FXqer򒹦AᄼdF9x`,>~[+괉u[mǏُ5:LNy߄ABBџS!3EWi{Ф B&̯ޯa` 3 -4);)N`y}z2B2˿ݿRߔw "4FҺcuχϙϫ=BTߠV]с߻BPC—ZCSBa`V#@* bV `d awpPDEa`bbb;q24Bq?ofQ`alqlq`bb"q0O贁Nk/xa"/uvAqL@p$rr5%1r&rr3'rr(rr3)rr*rr3+rr,rr3-rr.rr3/r0r8r0'%'%` "q:0:x@@W(FUFP(BBOOG@_gJ_ gԏR_F0(LiPiPh[4!IWin32Apij 'T03 0i{varGi04\' D .!SvAr)q(2Z~X}a|ps@|pį֯ 0BT"ߙ9/HEE"?@HeeOп@Ce1/C/U/g/y//so/^Eqw//c?@E??@2O#E6;pKE6]2~1qK2LAqkl]~ rk~:x?:`b H O2ODOWP낽3WwBU}@ILF(OvO&\;VF 2dQrl_sEFFmϑ@H7&M1*);M_$ F&߰e,Œ_ U"U/ /D#2,#2)r2 ~2=$%(SewO-CN*\OjD Obt|W_FPG_G?@l$Weܿ@u3 e̜UCUgyFP`GxYb_b//2%1 p2 Lbo&Qb+oDYb3sW4|YbSs"Ty/ga2xrX`$?6?H?Z<Կ@WZs???Cm۶mmHV????OZO4O~Hp#WЏOFXO@O_RS,_[QGHGZHU_g_?@:uA`vB¼____o"o4oFo$tHx͢Ӣtoo?@o^M;%h==&o&sD͢?r[n͢"ȹpۡq[qz O D뚙qEk |TWQѰӰiTt M*M//%\@@Q%@18 LŰ?%?7?I?[?m??ϣ?0M6??4Ee?k$W ED@CB*"2K*/7A%s%Bz#B{,#B )A"J"_ T c\ 8C_U_g_kݘUU%Pة\V_ oÛ?T??OakBiOoM N N#Yp*<N`r@ NRR !/"%I!2b7+2oW/i/Rc"lARc"i/Nb///TT 8?*??@ABC @B;YV1($EB;YW N9Y ID 9YV?V}<WD'Page-1ConnectorDynamic cvisPlacementStyl}e! Depth!Routing0Gr"LineTocClearanceXe ^pYnezNodl !30>"GriddSWhite lBlockSizu Y!AvoenueRYYtrolsAsInputs7ResJumpK_Fa 3pjr19PlowOnDrop ?or.253I6789 /60Arial c-ered:%top leftM)Tim esA(M p#j)V'9M $/261!/3"!2/3"2#4/3"5?3"2#2#/2# /78!|?27/3/3/3?3?30?3H?3`?3x?8?zC?zC?zC?zC?zC OzC8O zCPOzChO9OzCORSORSORSORS433UPPPhPUPP8P PP_3PPUPPxP`PUHP0PPP_3%`%`U%`%`p%`X%`@%`(%`%`W3M`M`M`UM`M`|M`mM`UYM`HM`0M`M`MM`&```U``v`h`UZ`A`-``U `PPPUPPPjPUXPDP0PP5 P`@4ͫ @߼x!  ! * #4l 2@Bt9Y [>< C\7Y CUgy"#$%&'()*+,-./0 !  ? '-<7I W jo.! <JW//:/L/^/j////t///??6?89?:;<=>@OAB'?G123456[P1V1?1($l 2EBt;Y\ < g (t@'@(m(84lc7Y9YV_<9Y8TD9YU_{b&F W9Y!T9YK_j(31wd G$g9Y ܻ!)D9Y 'wW`l2;YX?wt9YK[{7;YkBDw4;Y\=̻DocumentSummaryInformation81TableformationSummaryInformation(GDocumentSummaryInformation8՜.+,D՜.+,@LX d  PagesMastersPage-1Dynamic connector 0dpx_VPID_PREVIEWS_PID_LINKBASEA  Oh+'0gq/{ NOs>r;L{јA?N[>=5^΄%^~jk l]Awϵ_̡^@q'i30"s_Gue;R/e >+G}b9~zx,[Ơ{j2.9xHkIu)jqg/i^'߰{я#u> ׂzWlr_&~y{A7!?x\{:'}jcNp b}|P86*fe tucn_;vVr6So}lڹֱكOC;ڟpeCǛ׷G%G!Y"qzWm~_>븏yҗWOƮG[dV@^l&wb,jtAa؛v2tO}}곈K 7(Im:><1 L!\J*wܨ,7 YvyXױ҅Xھ.Xu8?FÛu•ʏup+e!VkqN=3WUS;-c$C~*uPc{ X'nct){  9"|q)lޜj ];c͗xO/BVHi'+!=*,qVv|A5!q5e򞴖w,ǡwgj`p. L>?M6Eqxx{bþ& M;=ã ~O\?<lpM\&Hd;kowhyԚy ;O fn<2ΥrýބZIty=/U=+y\]*K$4m59M&r=A˔h^J3s$;jILW ǎN3)z⹖̷gq% ]ݶ=ÐxvBr)vF>ۃ-)d7ԃLӊRĢuQ%Q?Z F DnEnkֈX_2ZIp9z&<]x6KXZ3-{= W20vPD=S~wuz(=M_RykM[3AXbI8Z:o:5DzGxUЃ)azX!xyYX CJ 2N2kqI}切J;_+..5,L.4XKEw_+\7Hɧ{Dj#FrTЀ߹N9 3[,X[dP-7neh>{41'@!=I)SyT=cl9.v5o"Id%gj/Z5NŸH Ī|Gb;E-{w ҫ!)}RX_~{_ z[G_U)WSB*M e' >g''֮Z_ Z{ 5Z:],mZ1Hw6lM~`*_[Ԇ55I֜ DdB  S A? 2 sI=P {`! sI=PB4p3) xZ}lU9p 8uue i5EhMSfi*!@$dP2D$ m ,,tH2Ls<=s{lcrrc0{|>r&>G1?J2 7;Qb&*0vnLyxQ%9?X|g\4vRl[\jFVY?27~SߙXo Us4w9}7n`SQF|zͯK63(+ʉXh;;eyB~Ļ_x“(yVŸ}*CgM|vۃJB@;J6B 'yrZ>=ygG74<-4/g)]HD葧E%S:*MQDڍr; 0ߌy17lм&<^ȆbrxR8x.K xK0|('> 1~{PKf8\-yP ^x@)Ef\ivZ3!0e#$J0C fD-2 TQ/FtOŸ_yb~lBSf&ٰYI廖K)ˬ.9J*[.z2+*+ZaUfETUb(D=џq1>l2ҼX/dC5xe_ÿO//8x888iu}q{0~?潎oAO{N >r _\~y|ER.$~xOp@]i=%vx Y [˲s])Ori{t쾅o3~BvmٴRh2;6:=7&Ew,xJcZ#ohY]:rAH|l} P6PN}g Uizo8] [}([Z㬁dڏH&8eYS^ 9uj/cǑ88_u{)dw%QJ9g$*d$W`qrY<(ܟC_BpOg9 QWj4.b)aj>rTi,\<7HV\ay2J=PxHbI}^wX~"i1bg0ld҂*jGߙat 3/H&XJl}g7!K{`ϙ{sfiǻM&i -Ʋe5mlO6lql.׶Bx]G1HHʟ6hl4GK:}IcnLH NER<oɗI€+B^M+"ily @E;Ch厧8wk[-ƍ^,#(7S^<1ys,Wq_}{:,ݎrcsorgO&ƈ]rb )S4ܳG#'; |8v5VVrۊBXt 6AQ}R7ixkh-Vsjw^hµhG1$n7״7E/\_Ѕeo߇Y~YP!"i܄d>x0F?dv0Ơ^}Gsv+uE6q1;Ʒnj]9Ջs54k7DjZͬ[aUa_f<qEl[2g og 3ׂٗ*S=g}*CKmuwK{0^WS]\Ӹa&\_lCKnB-Dd#~$B  S A? 272]Nݥppz#`! 2]Nݥppڅ3 ZX0Zx\pEͼ7D )P' qYE!B$` 9͟U@Vd))w-%˝MŞFU 5ୗeo+}y3'./7_3=3SCQ %?S M |T2JU7HQfQr6Ui5}"զ6Dz7(+Jo2Y)DY+J@׸1ȑNR> )\nVD=  9ޛ(}na|E)Dq >:x=z/^ l74 Wa|vsw> z,G{@|pKWEm4vhVyXIᅥYv~MG<acSAy ;8?&QHe.0N@2Be\8giS,R/FWg?_Yn΢ P v=QƴjTv/*]M)]'4+aϳ2b/!]=v%Hː^1ߏve[>/Owub.=`I OXw/TvP5u{S-ae]ְ&:䷠|]5u7ۊt?C*+Qo 6V!~/Un=j.$kj_K_q 9z@ߣQPa :1^| 9 rrbO٥c ]H.t fA:M=}naDmjwzu 1NJNHJH#j}vy.in8?~+W&I#j=ҽDv[Qo;Dh_> t /UokS7ԝT荘6n^D\*(?ERL!ȑ2v](YA݋R1#MĐU}v6M6S߮{Co҆jaOCyz!OC~h◨Ҥ&bȇ֛|B abcVjѪg/v؃tP~xVl|#8A\v>|_bمb Pl>i4b|7ax?q +IqGc^w|;𭨷w^_dhe"byǐCvDhDW"j-;r`tC{,,Bܓ<,>jйu;6"vLS;4}>S_Hk_gӇ0~ȧz!OC~h◨رN_t;6o "v](vRc^mЗsB֨DZJ?|^llN@~qߡ^.C h>/QBC؅d(6z]^p_10Ώcĸ ~WFz{߉rw[Qo;Dh_> t EĎ}:VPĎPpA[T(Lfk}t,- 01?k||V ~tYǂw5]{JwwB;@G%yA 2ZF]˘d.`f o*Y*:߂wIn4,g^&g]6K\2kSZ0]kdi+jZ%lU[UlU6[uH!;bk7[tE(/z_v~1De z]rEs٥ =зzo_?Z'GB/;G9A/'\B242]}y!Ԧ6XD !54t~d[64krн&~Vbu|~F=?ӻt;r(e]h%vPYa/YeJDYv9J4tcOЃ!C3E }7Th7B2O*̳HEo7-м֜dyHBy&0e~e}DkMCǙ"C1foD %P vXjáVShIhu2:[Z2kk͈n.F:"G/Byh|_b(مb z]rEs٥ =зzo_?Z'GB/;G9A/'\B2421tc" BNZ *Aa7bmX"v ۭDA3zȜkUH O_cMl4,g^&g]6KTXc%bZ՛|A a5ުnZVɚkmJV#ʟƊh1yx>~b!~d.$C}vyefV6{B> ~ h4cAz__gp EĎ,;T;|  !"_j2cXqR3ɏS( (]݃{ ܗDGq_%E?xV꛰ڔޏ~6 55<_By|sA%CYȿd~C|3Q/.%*~1UDL^l]T Ta_k=_km^o7[H(1yx>~CCS.S]H/.-m>Y}{?iX= (쇿4!?> 9>?i"~5XDv!De$rMs47j4Wk}}^A[A fXZ9f!+5ulU7+T.~M}٬񗁚KWB:[o^Ȧ:6(du+-;; ًj[6]YHo} uM uM5{FvQ'zZ FRku{n]ɖ9R%H:]'5i6Tr<7o4;+k~W+p%愿|N(Ĝj2P3YgY6^:|#n+ spBsQu5h# mJ9lk* f}Y3&zul7]iX?Z%;=;%xDtH;wyŵ O'#twG蹩DA1>Q>m8 жﳉ3bx>gIHv ;U|amw(v>|vɘ9ܾ΅CB|M!~).to*P #yN61OϸvٶPjS=MA;]`r.{"ti)hJ躕`%:=FkWWb΋?1Ɛ>}KN> |J,/>ZIxG]8_U>[o>N^$e>YKwJ _GH?)[%JucXo I<"9֤,O6a4SjqiJ#|R&OO]Iv&_9e"_a-4ףxS|63: <[%^+ῒ$`x/O\8_%| W~I%^S݋g%|4 ?#kkJ_)Y`zssQcA>d7cb`2o~ ן &N~~N!ÿK2;ws^'oJG^FՋϔ* &oK ?aN%|pÕ?H Qk%|gKOO1/7Jx-c(JO} @;e+a*2甧&:}L*^&l?s A?uw ڟ9%um[1^i/ ґnI,ژX|o,s(/)CJ V;-sxj rNO.a_ I. I)>-Ͳ߱t򒇕B"yB|uڷDʫh/K_i:ROQՖXfi`r9Cfbi0 5w]Rvj=BTF}U־{1uaDk#{;ƫ gck#;*ƫ Sbi#ֆsgNUigMݞfGQ2FaK.]9'áMvm~+SPUQ]UYZQG{v|:nd}irQi/ݮC|5d絜.@q(v={Ưd6k=d6Ďg= 1Gڏ,\t>*vTH +XRVi&+{{~]=?Vwym$cMu5x{ǝ.Slo,PSIa䑅Ü؞xOO.L{:]v2>F=d8󝄮OzקU-=OkF?sw`tvwpиKwO&ޑ"yI..jCH)jCHK.z"CէXw}pIM/,)+]vΚauIkCfTӺiYJkŔ椌$I#ك+==dwf{5\6^37ۼy}tAϏd6]z^?~O_ t~<*4"ܤVTEJbㅿڔlsauvєrye7w='_X?/{^9y|5#&+~Z}!A]i2>:6Q}tmKĝG_&οL}]OD]}Ez)>߸3xJVE~/kjS\_ZpZ/jwT=R@ɒayP BNb}|c}Uxz `qVx?&Wzƥ[{_0hqye}MW*61nh'*җ9gtelF{Ym{ًeﵗn/ec,QV^lSvw/[^6>7O׺BqId1Be7\$%`s@E1,re0H=۹"czo~OߧUcA6`MX%&jV<]; Y| {X7'bTE7KiMiشwL)C,}`5X[vgmkVց RF? [XL{Sl[N{ɬt `Nִ9^r{ߚiրM{0Z;#j}bXΰgmƫul5`X =#m`sXʰG%v2Xb2:lՅMa؅5Ɔצ ogڑ~o{#ԜkDd"+B  S A? 2НFVG={`!НFVtA`UHlx\ ٝ)w4x B^')=6r]*2W^J RK2j >Jb =KM %*j0ńsvowG_==ݿ@B#b~89JҼd@x Lȝ yB\BoBKjC'Q@z3@ r J64$ ^QE vf+Q俩P1^,ci8v!IuT[t6] 2L&I9G4y7x>ް@F{=JxV=ROVvfBKA4qu+; Bf3MV_NZh^EfBO6!}.uuʥA9^NT1VOù@ veC$ Ij D&@ƶ+{#Rd7bW6$b_6*vz;IĨ'a}R-PPVr <'MIu5l7zRnIe z(dītB{~xЊQO [d|zvk\jv5P2{hrtkr3ݞsݞ")mRu[=uoVݮstk:5jm,bu\c|"bI}.;v>+M2 Zg@ }Q`|h|q'0;@ō`cqfΧ&}V^7(TH9R \/1]TuM>D#l{n{R`1.eI%tn; 3tsnkEVˈxpmX9)[a9ЫF/ԩ!s}tXPC,sZkj?& L^k0,sԅŖ5-k|ZȟɈv.j;{dk__f܋ Aߎ}gvV8frHżKeD1ZX e98x,G:htwBBxiTE)xBH*v d‰ph42]xcA{}C*[ty ;eNdgIRqTgINhCY""Y5XŶ?~VqzF+BLC!!)87T_jGV8gDhh@Acŷ#&tnҰ+4<*aa0 pf'diؑG$(KGU+}\2n0N rbS 82C`O6}Z3֢ŗRwKԐL*'yz) [VZ7T [Ya6 omu4q }ދG@y#ļR$}~ LbsǾ-!kðoR7;}ߤO2/&oRA|H_y;!ת#ڼڷ6RhxrFzX f :Vu<X:.\6Rq[9>J/ס|."Kt9 m(;9d0+ ſ)[ǚ121 >"/ v-#j3UÍƈVf]^ z0%)HggnP)xT'4}ID6X5i 6ǥx]y=`{{ =? E(Iq~ } =<1`w;WbP槍?R\-~)iG@7=Ql4 VK=w)L힍:N|-OD6d@@|(x>]|<2R \b:c35%6+* )Fo{g߫1Od'Ĭ1״;= _ry_? .|=yӝ4s(mޱM/MQ'Ҡ>x\0Mqۨ;`[IS< SipUn~rb??Ҡ?`s4M4zԧp#p? nbE5 f 3d1ͣ:y\"qN}^{oW16򂹟}EOJY?bG\L+s0vxx:mdNSmެ1vcqBc{sȗ#i1vOU8c1v] d,Ύ)5!=c~"1=cd4#CP8%Mi`?m8G -m5e\Y\CFOɈ&\mĹzse1 ʖ&עt6Rg5(|S8=;pw;i"husY\| Wyu]hf{UU^s-Mⵍ#@ B|@+#nGppD0!0IbӼvvПџ̟a.|6|HF gϢ=%dg4-TF+:stʧ/5t-}[bs> 1JCoʈ\ ߑ v8y5سˤ*^kֺU"|PL_FQD9ɽa7e~%;gxIz,q}^fuFz+Y]=O: II=wAdGB[0;Dn/۷7f!7~1DXv4?7~kv7^嘿qo]Ep%y7C[&oSԭD 8+ ~ǂD&|%jy +s2Zs5N~0H^[_HNd/gs qPG-QXf~s'7[ Um lgJ3D[ҝf&Sm{ҙ]kSZGPg9zD8S e|6O!̎MsQ<6כIاȴ1H]c*uGR5i#2.cH$ӧn d)MJT^>ۣ)ۅ}bT'ֵvIaӻ|uu}b0ǰy}&qb@-ge])Vw_ExQ趶GjeX|/c"ݝ2rb{fdy|F)b|%%YnU`g秸|vǨz:vtj ÄZxmY V_ʗJO;~Yhe/9F:{:RzVzUJs[> 1վި>VyMŌrY%m͢}|ZXʷF( bxٰtfjYzPF1֣e8ﳫgW[V_Dy(1Osc915Vc:`RʹZV;Z"s:aɌRGl6eԾPmV?sB&h}DQi{T3^Gzl4QfjW)]oumtK5qvmlV_TReXM}vӊTomKbnw [=sw;O(eLǖydڬg@YOQvΆyѻjsSR`&] who?[8!=K@B쯈?oMMvʃi+4vE]^[?m[& M\Ge[3veO=Y m\Oᶋ_fW۬~Db-FmnnxS1iw{l|5&͇{l|&{l|&m{lλ&mM{l֚&m pۤk.a]3=ܶi:jkih#\˾uݱ?|;CԾ&:ۖvwf OǯW+a][ G>my[T?H/?&F*ZXUvVWݐ6wên5y٭i}9)+Zf[Y>/;jLuufR3$?aWlZ'jlk+veʶ9ۺ:b{岵[YW>[6Gen,YJo!MP͸V'Ұ[U8jqP#(9-mT-GCguEEE5L3rj5䰳鬶SZnckx.UDd}#-B  S A? 2Z.rX˷ P{`!Z.rX˷ ̦!(X0qax] ty3;;ه A~b[ 2qT,,%l,,;dy+ozbtjrq4nsHPEII!m}(IZꖆ" R8)5!6;ww^ڕw#ڟvޝ߹s(x~\%YlOM&|ۋw < *!I#w;akܦG'~wj"Bbtm HC$EIDuW-+`a0[f'a>iyϟ'PLK6r-(?g$B,xOSeB@m!ȕtYtlI0`[ 啂K|n %+G~Nޮ /Ֆjio{;`H<!H0t^ HD5Q%Hp}~AH-K+F npyܠˁ/NI6 BH=) 'h?b?*4πl Z5_deOJ|3jי}ջ7H7E8+M/+'اB}[}Gb d ϫ?׷ޔ^G/2<%!N'!:t|UfH[P@tqXȞ6.)i}µޫLI Wִֿ~ R v6*VC6煴6~.MjI^F'ev 6s%L\S$P*Fo/UcAM>[Ol(_PgbMڅCLv'C=*"J(JjM&H<x(d0Ϥ׮ؾ|ZΕ:zS@h$Ļ.Ώk:w >`GZy뜁^2P~-.2j٠? } 0CyV.zv;>)r3EN5$~d \ \8Ae~% g: FJm. \Yg34%!7! TkovϠ{tmy=+I.Zf\жv [Z7Z_gqg8WѾn?ԗyzJkuR4WR@QV<ƷTgaUx MI(/dE"&,|/!5:)ZGf\{U?E?F$ ?g`p#V6vcx@?Vz{ znAX8#~T,58-!BLq'5*bp]Kǣ4|(4\r ꔄBxB@$Jj< ;HA*Z5(\݃(\D1\SC> ׄZ_vAZͧ\9~6´>ʵnNI?LαOqZZ`:**'gW8y}W@>|}t}X;;:66O2/ׅZGE 'koáO)dLp:G߅ |or{6\r_4"^)*چC-tpwsvuu[|;: Kb_{QB ;A߱iǿe󁻉ylnt6&>czM oVT5ƬzMJv;x]Z*y[t˵dn.3(!'ĩx%}a$AZlju{>onֺ!6V<"5^v^~'~Z>2ޟ 0=yxK}bCKzTnwl,=  _#7 ߠC}u3k[IC%do²꯻q.+u~?G,sQ}OEq;n@'aÚhWΦEsQ|>F(X>vsQRcy$\x 6 1>aky6x¯S;H w猹o:ޜ}y}펭`` c/v-ÞEkؒٗG<#I]v-kͤz$3`G| +GF3mJ(,%#7j۞຦Mh7ݕM ~]Q# 6!%N`-6RϏkHE|:Eo2j3נ~qep-I._lʌ_봵FUb} R˥'-}C@r#^`}WPٮlIamGh!΍Z[ߟS~RI< /ǔT.rӭ(Rikkg ƕ[Jm},F87&λGSԨ fZimg;>h߭gJopJ6I)jX:-Nqolӱk}KB97PΪܭ9wfF5{;e@S⎫o}_@Kb-cn%+tk>N:.[&1xUow5of(͒= Ѵ:YWپҸ0%v3u9Hc%W#g*r|htNS`GY)>Q9XMIs7+%U.J3%Ү\eܱKevqRw`4h.'u%{c/z qʉI,)$Bݑ`@x\!2PN{Nq \zZ;ծ<I3;=_@TB; y0NtHo%+)NȝDA`|!_:xD8`jRB^|l$݀Mp ^I?m q4 \uJ 9g) jUǘyvr|k|^.3 Å~y=>'f4"qPE<'{!2.v=]GY:z0Y~P^i( zӛ]|ʺ=mzB9q-ĊD_~d7_BhW^O3-7 %<#L|?T]1x0gB7Dv G>BkX;,2]0>hhI^Ǜ hBJrp]-(&N׮2WXtg6ÊfDRL]j3 09h@`PE8L8 oK^2$ ys;N8 ;&OK%5p =+yJyᑳЂ*6Sx><߮0G8T#J%y~$lR<_גxIRp nYguZY(7bcgX%=X~2x |n1). ]z䈻Ͷ>7JyLg"B(o}.^Wۋl 薙lR6Bl}&qB'BhGAqSܾN}'ʐ.k p{X v:h)2{Bm,~/7,yO >z?h}h}SiOE h @ЮLJ+ۍ:PlLy)ܮL0nW$2>"Q>40uH%1^ZKAG^p{k9^[ ^y7g鿍R&|XFCT*^#To8Gn)]5|LgG@\CCd*:YIk|\ Ky~5AÍ 3+N})%j/F~!GT J.Ꮒ| HiV m-0y^<f<hpx#\Ia2Q0ÍObީJޯfB@Fww;4Cڠd _p|w \@(+{L]6dDf4S'IB}9\}8J˧>o):ϙ/ IjNށ~39"ީh_YBm9uݖJno gY[n;KZ8WsANr׉ٓ؏Bdǂg"Xuql?A&erV'UsT~!&ĭI18+Yx si󃥍u}\1o7я3d~Ig&nūEڊ]Lπ@K-͘cc%U;#A[d-N&!&E⊶ rVrAJC4Q!}'VmD!oD =9ODHUmp dz5 1 c)}qv+L^wz6Yе󻨧@߃&W CX Jݛpla7Kyu[c\[k7֭_}]II̐4u?[rbqZRދ~`pp n,P_]g~~&'o"zko~Niuɔ1//8ۺӳy[ .  m:'u{'B"cl_ ~K~I@,f+'qLS,?V ]𞟇p,}P7ՏC'ٮ;p>q<3ޯ-x1wt_0ݗ*!=bC!}}a>o!yC;=x9:B ݑ!y?asCw 34݋Z+ ӵ3X9]!FAט}A{P7ڄ_ƙ!f$c}jDZ*A}<}I@XsEŘ_$ 'Ղ@WQ\l✀LG{.'sbvGdjl"\IdTtwZw6yP4!d3 ⯡"5Į{5GN>r2?7i?=$6G,u%L~O[}WVw\dO3ԧ"8g;J=B>%*)6N:( |]f -0|=x|N-1*Hc7q\{]k+aWx ލ)q.8* v;]|>Khہq~*ZaƵ*-~[*~*!ǡbƾF1> v""ⸯw:l'y}|1ZҭuϤk0 #_l}B䨂<("O_5IK 9v#b-a]>;Bm QQDlsi5]jp1V1j pj[_(UvsϪޅJ4V@~knα 1kA{lL ,hc,Xx 1&p {\G uČ~:#*# Qq8("JY(m+fPLz'b%F9^v<<[Ѡ\ȟDS{DA)v^[w- Ȏ!,;rƽ'>lqR:Ӏޟf{Q\}`8;*8'߼ەݿ5Τsҵ]̣kU g=љ H.d /}RRh صoݙk 7MQ9Eri%گ*[{Y^tS}Cmwyv=O12wP?׸42hi_.v_MvtrLj(_Wqq}G^&]1uiө;SHΨUP1-NUsvea_͆\Üwͤr>[m{~v2؁=x1Ʒmow{zo޶b{B]Wcj>`-Ю9ō.cM81ޢ[7Lhk!]<޹2om]Q/zYK󹔃]vpZeZо=y{ rߒڝ2gFH흢z5bϹySdR=W=ճ;כڶ֖o\+9~i ֲy=¥z7߁v;{.t齖5'Ä/qzZCkǽJ^谽~NQ {cȺ0\^=eukQj[u-ҀdZǞOo/#8SĹ|gye'b9O ͣϵc@&}3,D֊9k 2g.56XJr]cvUZ._ /d2c\G&3d2cBG&3V_dc(E&>_dcE&>_dcE&>vd2E&>~d2TZ&o/rYG$~7?r\grƿ\̇q)#/b2)Fb;8k>>3`sr1U'Y;{|˟*V`\Z[Üv{]êCx'=gl.S=k5'n%kvFU;Sоw{ :Hh9Jˤ-r |tZaxuio:7°Su8Ud.n~k*%ae}I4SsIt eRCtjX(7۲XDd5#+2B  S A? 2KI'za'y`!I'zaܵTWo|x]myݝُٯġKtFN >I$8!$$Eq:bK{Zd$J[[ rp!o9!JH vr 3څG7;;>N;==H>",&ɢ7RE(zyn'A8(R eOq(q ~!?I?  l%nMd $Gjy}^R?l2lwf+Q䯥ZQ\w?ۏ Q,TgZ @}ĝD^l󕲻7VA@;: =Dؐ o^ѭ A!~TߪԷ Oet]*q ' t^&nԉa]ddE5 [n"גaQ2 #dc>{Z:% _Nu?ğ F;H~쇃u0!#0e9' m&@FOnh]΀LZcٲ$OմǤ lAjQ~ ,}CqnJˈe 1%7S eo¾t Uı~b4}qqzAq<E|{`g mꋿJqfP@*gmX;`ߨnowL^Fܝ.K`CNIs:mҬ;P_ܨޭ7R9qS}8s 1;R8>-o*~q8Se 89_$q0wOi݈έ.fq:k:2v%ĩf'6{=FȟvXXjm>b7WUk}oip H^F.K9L Ϩ; [5|ekh!Ac0T|xE-sVF=n>~^}ѡW }:?E:$BE=.W EXQ (9TSS{~\b~SY)/#VHe qVjv }op NIVz}_nrTI}uRiQh^FĢe q:ꇾJ/vVmFkԈέwmX^F# `8H.fm{bn؍6 dl# _u]8#6BѾפr% 5Tҗc:s'yz,!&~';KVŝPgڶ?˲ҙ,y03x%L ^u5je>١8,$]Ky ~͵%U+{l\h~;Oop+ټ̖%Ds5W5_je_Gs9zme8Ns29HGDH"{N~q2wd,srybAݼun7r4ű4jEzV+"E4w,3USKci,ñtg M}m;MS[1vL;Ǣv|[>zHǞQql!hbcWkdLke+uQ_>sEXODhnn댹ɗ$anr:7O2 ϳxMϳ`Y2PYB4 R&x:f&exMP=&ި_3%2Z e ,!VЇ-Zm0fA?P c(׫HWD HP+eW^ybxnMwt 5WOLѫB^F,UM;7~OjX?5Ej)0VGVE'" EhVGQcVXZjhe@k^ܫt88X@8A atzߎQ7J5lsU_#/ғ>hh~55GeE;> sϑPqHϑ&#0h͑cY9r\֭㬨݃P8o"v,ͽI ck׺p}vvmi3q k<_JuUVUWEe#tg}V[죰z-k#1]cq_ ڇ;jt>?p/w2oDp,rx:Q6W <|uPOeDd:h69\4Aw2wG#Ꮉ[t>1o˸ħ#qoMXaƯh^F *ՕWw7a#@~/5_Vؼk}֚R;&Y~ϯM-Tp>=TiB>_ v~+þ)} ӯY^c8 9d..e\E`_(览K_d\Ikޔ o' !6yW% R\s$žS\m5;yʍD]ow3x_ + Sz. q*s×ׁOga1v@;f2~?ջnp%{'oů)y%gS~Ƹ>3R4]L/:^oMSJ ' UGZ>c},(d~DVZg'V30Γ/΀}?oPAXt۱ѱz5]JMHв˓3ݹ>^,2,)bYoګtFݓ;2wР3˒'h`.?gpmvϺt AyFJz9^Uꤐޜ/o3VF 0BgRaZzFZ`\U:[)^yK铂C^U=y_ze&۳ =IRc3RsB <'uUYz &s#eaܩ0_{WgX _>˫x]I;Y +R(3ն+[WyT+Ѩ m={N^ŞXP~]xvO9*޽1Ļtgfo}Wguq̶f{\힑>nsLY|yĆNOGn֧øvvFga\-9_]JX' wݭ`Y?}֧ya*wrj_/=8#i}#z*gZD>C֗[吡Sy/ /Wq(5k>ɺxfM;0Y3x0>Cʻ3cMڍ8So[i},3q.ctnb|a)W(<+[ql PeRiګ5Mvu4k.㚢˸֧2kc.㚕˸2k/.㚈˸V_2!k.{Ͷ+%V] }ޱݺukg/W~2Ùw]WTfW"ث8-5d^vNtX#JحnfFx 5~ aPr aյ[[ Y d+<7~=72pprIb]\c*sMLllGMںI[Oawz)%^ʪk"U殺#$4 HT p |  VComponent-based Operating System APIs: A Versioning and Distributed Resource SolutionnCOP Rob Stetsbaob Normalt Galen Hunta9leMicrosoft Word 9.0r@@8je$@| ɾ@r7ɾC'՜.+,0l px  NGalen C. HuntaMicrosoft Researchr VComponent-based Operating System APIs: A Versioning and Distributed Resource Solution Title  FMicrosoft Word Document MSWordDocWord.Document.89q$<@&500000000000000000000000(000000000(00000000000000000(0(0000000000000(0000000000000000000000 i0@0 Normal_H mH sH tH H@H Heading 1$<@&5CJKHOJQJF@F Heading 2$<@&56CJOJQJ@@@ Heading 3$<@& CJOJQJJ@J Heading 4$ & F<@&56CJ_HT@T Heading 5 $ & Fd<@&a$CJOJQJ_HX@X Heading 6 $ & Fd<@&a$6CJOJQJ_HP@P Heading 7 $ & Fd<@&a$ OJQJ_HT@T Heading 8 $ & Fd<@&a$6OJQJ_HX @X Heading 9 $ & Fd<@&a$6CJOJQJ_H<A@< Default Paragraph Font.@. Footnote Text4Z@4 Plain Text CJOJQJ$O$ code CJOJQJ, @", Footer  !&)@1& Page Number8&@A8 Footnote ReferenceH*."@. Caption xx5(U@a( Hyperlink>*B*$Oq$ CODE CJOJQJ*L@* Date$a$CJ_H@O@ Style1@& CJOJQJ\^J_HaJN>@N Title$<@&a$5CJ KHOJQJ\^JaJ >O> Page number1$a$ CJOJQJtOt InterfaceName% 8x<1$^8`"5B*CJOJQJ\_Hhph`O` InterfaceMethod$ 1$`a$B*CJ_HhphJnC'*ik%GpVWh%89:ZrO$ 5 6 rsqrQRUV y!z!$$&&p(q( +,+-+T.U.|0}011p3q3354566788;;<<==== ? ?BBDD4D5DaEEEPGQG>H?H\HIIKMMEQFQBSCS(V)VvXXOYPYdYmYnYZZ|]}]-_._```\b]b_d`dad~deffrkskmmsssss}w~w(z)z]|^|~~./'@A !5623dez{<=GH PQGHбѱRSѳҳ+,st$%Z[WuŽѽ׽)3DZj|վ 3Mgoӿ!7ES[&6DRey2=S^q&?Qcu*8D #2DNZfq| )6COZckt~&19CMXds.?Yn+=Uky->N\s.:K\ex"3?JYh|%5Ck}3Igx%3?NZhy"6Bcs 9N^ju-;^hpy$2@Kkw%7F]q )8D^w *2;DMU^q{ #/=MZfq~ &:LWcn -AVo"6DTgx 0BTbp '6E\z$5G]i%.>P]o2?KWfr %/BR^#2@N\m~")Fau*=JZo  +?Ul6MXq/EWo)@Nmv!2Hgz+DTcu%6GXj|#1=LYgr|3FN]k Yer :Par5EUbcl{ (DYn~+:KZiz /AScs|5DPfoy!=Xs D[p(7G\r0P\hr&>Pq "4Pexy"292BIXis|$4AQbv.:EP[gs4IWgy#.8BMXdy)=M]q-<N]k{0DUdp $+8Ofz2Nb{&7Uan{ 1@Tfv CO`q &;Tex  % 3 A O ] m {          / C R a p z             ' 0 ; J X h w            1 A [ f v             5 > I X f v         +8M_s&8HZijk000000000000000000000`00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000      !"#$%&'()*+,-./0123456789:;<=>?@ABCD00000000000@00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000@00`0L |6YL|hY6ugM3A,/AajX?,F >z q ] 1:?LdeCX+hM05urE42{8a    Zh6777&7(7?HXHZHcHzH|HvXXXXXXadzd|dddd68:SUXqsv't't: : : : :::: !!4 (1,,_-e-000000!1/1|22!3/366g8q899::B<L<@@@@AA9GAGQRjRxR\XdX `(```ijnnppss@tHt'u2u ||~~ ʼn%-/AŒ͟՟ƢʢĤˤt|ا !):AIUŮʮɰϰڰ5;Ʋβô js̷ԷŽн(EY[ik{}¾Ծ־ 4LNfҿԿ 8DFR %'57CEQSdfxz 13<>RT]_p%'>@PRbv)+79C "$13CEMOY[egpr{  (*57BDNPY[bdjlsu}%'028:BDLNWYcert-/>Zmo*,<>TVjlxz,.=?MO[]rt -/9;JL[fwy!#24>@IKXZgi{}$&46Bl|~24HJfhwy&24>@MOY[gix !#57Adrt !8:MO]ktv,.:_gioqx#%13?AJlvx$&68EG\^pr (*7_vx ,14:=CFLOTW]rz} "$.0<>LNY[egpr} '9MVXbdmo ,.@BUWnp !#57CEShwy /1ACSUacoq &(57D]y{#%4H\^hj$?OQ\^np~3>@JLVXegqs $&.CQS]"$1AMO[]ln}!G`btv  )+<>IKYp ,>@TVkm 57LNWYpr.0DXnp(*?Olnuw 3GIfhy{*,CESUbdtv$&57FHWYik{} "$0>KMXZfhqs{} 24E^jlZdfqs !9Q`bqs6DFTVa| ')CEXZm *,9;JLY[hjy{ .0@BRTbdr 6CEOgnpxz "<>WYrtEZ\o')6]qs/Q[]giq%?Or!#3Qdfw!#1 13AJWYhjrt{} #%35@BPRacuw-/9;DFOQZ\fhrt 35HJVXfhxz"$-/79ACLNWYcz(*<>LN\^pr,.;=MO\^jlz|/1CETVceoq #9NPe{ 3MOacz%'6V`bmoz|  02?ASUeguw DNP_apr  %':<SUdfwy    $ & 2 4 @ B N P \ ^ l n z |                3 B D Q S ` b o q y {                       & ( / 1 : < I K W Y g i v x                       0 2 @ B Z \ e g u w                        ! 4 6 = ? H J W Y e g u w                 *,7N^`rt%'79GIY[hllv}//00!10111|22!30366rJsJKK/O0OQRjRyRij(n2nnnoiopp'u3umxxx ||~~́ԁ 0/Bƒa}v7]44|*ڵ۵suŽнp\uCR<ILZ,14:=CFLOTW]}$_r*8 "$02<>KMXZfhqs{} 24E!0!6q1>Qc:H"$-/79ACLNWYcl33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333/NNOe~~6 5op7)7?H[HcH}HXXad}ddd9Xtvjk Galen Hunt*D:\DOCUME~1\galenh\LOCALS~1\Temp\CopTR.doc Galen Hunt>D:\Documents and Settings\galenh\Local Settings\Temp\CopTR.doc Galen Hunt3D:\Docs\Papers\MsrTechnicalReports\MSR-TR-99-24.doc Galen Hunt3D:\Docs\Papers\MsrTechnicalReports\MSR-TR-99-24.doc Galen Hunt3D:\Docs\Papers\MsrTechnicalReports\MSR-TR-99-24.doc Galen Hunt3D:\Docs\Papers\MsrTechnicalReports\MSR-TR-99-24.doc Galen Hunt3D:\Docs\Papers\MsrTechnicalReports\MSR-TR-99-24.doc Galen Hunt3D:\Docs\Papers\MsrTechnicalReports\MSR-TR-99-24.doc Galen Hunt3D:\Docs\Papers\MsrTechnicalReports\MSR-TR-99-24.doc Galen Hunt3D:\Docs\Papers\MsrTechnicalReports\MSR-TR-99-24.docq0 N8*D Y|~  ^`OJQJo(hh^h`.8^`56CJOJQJo(.^`56CJOJQJo(0^`0.0^`0)p0^p`0()@ 0^@ `0()0^`0()0^`0()0^`0()hh^h`o(- hh^h`OJQJo(hh^h`o(.Y|~DN8ݛ > kl@xP@UnknownGz Times New Roman5Symbol3& z Arial;Wingdings;"HelveticaC"MS Sans Serif?5 z Courier New3Times"1hAD7SD7Y, C'rBNI!20dR2QUComponent-based Operating System APIs: A Versioning and Distributed Resource SolutionCOP Rob Stets Galen HuntCompObjSummaryInformationj_974040504FOɾ ɾOle5CompObj6i