• security descriptor

A structure and associated data that contains the security information for a securable object. A security descriptor identifies the object's owner and primary group. It can also contain a DACL that controls access to the object, and a SACL that controls the logging of attempts to access the object.

  • securable object

A securable object is an object that can have a security descriptor. All named Windows objects are securable. Some unnamed objects, such as process and thread objects, can have security descriptors too.For most securable objects, you can specify an object's security descriptor in the function call that creates the object. For example, you can specify a security descriptor in the CreateFile and CreateProcess functions.

Each type of securable object defines its own set of specific access rights and its own mapping of generic access rights.

The following table shows the functions to use to manipulate the security information for some common securable objects.

aaarticlea/png;base64,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" alt="" />

参考:https://msdn.microsoft.com/en-us/library/windows/desktop/aa379557%28v=vs.85%29.aspx

  • security identifier

A security identifier (SID) is a unique value of variable length used to identify a trustee(A trustee is the user account, group account, or logon session to which an access control entry (ACE) applies). Each account has a unique SID issued by an authority, such as a Windows domain controller, and stored in a security database. Each time a user logs on, the system retrieves the SID for that user from the database and places it in the access token for that user. The system uses the SID in the access token to identify the user in all subsequent interactions with Windows security. When a SID has been used as the unique identifier for a user or group, it cannot ever be used again to identify another user or group.

Windows security uses SIDs in the following security elements:

  In security descriptors to identify the owner of an object and primary group

  In access control entries, to identify the trustee for whom access is allowed, denied, or audited

  In access tokens, to identify the user and the groups to which the user belongs

参考:https://msdn.microsoft.com/en-us/library/windows/desktop/aa379571%28v=vs.85%29.aspx

  • privileges

A privilege is the right of an account, such as a user or group account, to perform various system-related operations on the local computer, such as shutting down the system, loading device drivers, or changing the system time. Privileges differ from access rights in two ways:

  Privileges control access to system resources and system-related tasks, whereas access rights control access to securable objects.

  A system administrator assigns privileges to user and group accounts, whereas the system grants or denies access to a securable object based on the access rights granted in the ACEs in the object's DACL.

Each system has an account database that stores the privileges held by user and group accounts. When a user logs on, the system produces an access token that contains a list of the user's privileges, including those granted to the user or to groups to which the user belongs. Note that the privileges apply only to the local computer; a domain account can have different privileges on different computers.

When the user tries to perform a privileged operation, the system checks the user's access token to determine whether the user holds the necessary privileges, and if so, it checks whether the privileges are enabled. If the user fails these tests, the system does not perform the operation.

To determine the privileges held in an access token, call the GetTokenInformation function, which also indicates which privileges are enabled. Most privileges are disabled by default.

The Windows API defines a set of string constants, such as SE_ASSIGNPRIMARYTOKEN_NAME, to identify the various privileges. These constants are the same on all systems and are defined in Winnt.h. For a table of the privileges defined by Windows, see Privilege Constants. However, the functions that get and adjust the privileges in an access token use the LUID type to identify privileges. The LUID values for a privilege can differ from one computer to another, and from one boot to another on the same computer. To get the current LUID that corresponds to one of the string constants, use the LookupPrivilegeValue function. Use the LookupPrivilegeName function to convert a LUID to its corresponding string constant.

参考:https://msdn.microsoft.com/en-us/library/windows/desktop/aa379306%28v=vs.85%29.aspx

  • Access Token

An access token is an object that describes the security context of a process or thread. The information in a token includes the identity and privileges of the user account associated with the process or thread. When a user logs on, the system verifies the user's password by comparing it with information stored in a security database. If the password is authenticated, the system produces an access token. Every process executed on behalf of this user has a copy of this access token.

The system uses an access token to identify the user when a thread interacts with a securable object or tries to perform a system task that requires privileges. Access tokens contain the following information:

  The security identifier (SID) for the user's account

  SIDs for the groups of which the user is a member

  A logon SID that identifies the current logon session

  A list of the privileges held by either the user or the user's groups

  An owner SID

  The SID for the primary group

  The default DACL that the system uses when the user creates a securable object without specifying a security descriptor

  The source of the access token

  Whether the token is a primary or impersonation token

  An optional list of restricting SIDs

  Current impersonation levels

  Other statistics

Every process has a primary token that describes the security context of the user account associated with the process. By default, the system uses the primary token when a thread of the process interacts with a securable object. Moreover, a thread can impersonate a client account. Impersonation allows the thread to interact with securable objects using the client's security context. A thread that is impersonating a client has both a primary token and an impersonation token.

Every process has a primary token that describes the security context of the user account associated with the process. By default, the system uses the primary token when a thread of the process interacts with a securable object. Moreover, a thread can impersonate a client account. Impersonation allows the thread to interact with securable objects using the client's security context. A thread that is impersonating a client has both a primary token and an impersonation token.

Use the OpenProcessToken function to retrieve a handle to the primary token of a process. Use the OpenThreadToken function to retrieve a handle to the impersonation token of a thread.

参考:https://msdn.microsoft.com/en-us/library/windows/desktop/aa374909%28v=vs.85%29.aspx

有一篇微软的文章《What's in a token》:http://blogs.technet.com/b/askds/archive/2007/11/02/what-s-in-a-token.aspx

再来看看国内的几篇讲解:

  • 用户、认证和对象安全:

Windows系统具有很完善的安全和认证机制,称作访问控制机制。程序的执行主体(线程)在访问对象(文件、事件等)时,系统会根据线程的“权限”和线 程需要访问的对象所具有的访问控制列表(ACL)中的“安全描述符”是否匹配来进行认证,决定一个线程是否可以操作一个对象

1. 关于权限、访问控制列表、安全描述符等在安全认证中所依赖的数据结构,并重点讲解安全认证的过程

A需要访问(Access)B,A就是访问的主体,B就是访问的客体。A的“访问令牌”和B的安全描述符共同决定了A是否可以访问B.

访问的主体是进程。在系统中,线程才是程序执行的流程,因此只有线程才能操作对象。每个线程都是属于一个进程的,线程并没有属于自己的权限,而是来源于线 程所属于的进程。一个进程中的所有线程都具有同样的权限,可以把进程看作访问的主体。一个线程能访问哪些对象,能进行哪此操作,是由线程权限决定的。访问 的客体是安全对象,所有被访问的对象都具有安全描述符,包括了文件、注册表、事件(Event)、互斥(Mutex)、管道等。

1.1 访问令牌、权限和用户标识

进程的权限继承自创建进程用户和用户所属的用户组。用户有专用数据结构来表示权限—访问令牌(Access Token)。访问令牌包括两个部分:一个是令牌所表示的用户,包括用户标识符(SID),用户所属的用户组等;另一部分是“权限” (Privilege)

  在进程访问安全对象时,会用到SID。每个安全对象都有访问控制列表(ACL),ACL说明了哪些用户( SID)能访问本对象,哪些不能,以及能进行哪种访问等。而“权限”在访问某个具体的安全对象时并没有作用,“权限”是表示进程是否能够进行特定的系统操 作,如关闭系统、修改系统时间、加载设备驱动等

  创建进程的API函数是CreateProcess,CreateProcess函数所创建的进程使用的访问令牌是当前登录用户的访问令牌。 此外还可以指定进程的用户。使用CreateProcessAsUser和CreateProcessWithTokenW等API函数,在创建前需要先 得到用户的令牌,可以使用LogonUser登录用户(是否可以同时登录多个用户受操作系统版本限制),LogonUser函数用返回用户的令牌。 如果需要得到进程和线程的访问令牌,可以使用OpenProcessToken、 OpenThreadToken等函数。获取令牌中的信息可以使用API函数GetTokenInformation。如果需要修改权限,可以使用 AdjustTokenPrivileges等函数。

1.2 进程的系统操作权限

进程的权限特指进程是否能够进行各种系统操作,例如是否可以关闭系统,是否能够修改系统时间,是否能够加载设备驱动等。权限是一个列表,每种权限是列表中的一项。权限列表存在于进程的访问令牌中。权限有很多种,每一种表示了一个特定的操作是否能够进行,如果进程的访问令牌中的权限列表中有这个权限,则表示进程可以进行这种操作,比如SE_LOAD_DRIVER_ NAME表示进程可以加载驱动。

aaarticlea/png;base64,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" alt="" />

1.3 安全对象

Windows系统几乎所有的对象都有安全属性,包括文件、文件夹、注册表、线程同步对象、进程间通信对象、网络 共享等,进程和线程也可以是其他进程的操作对象,所以进程和线程也是安全对象。在创建对象时都可以指定对象的安全属性,比如CreateFile、 CreatePipe、CreateProcess、RegCreateKeyEx和RegSaveKeyEx 等,SECURITY_ATTRIBUTES结构用于指定对象的安全属性。GetNamedSecurityInfo、GetSecurityInfo、 SetSecurityInfo、 SetKernelObjectSecurity、SetNamedSecurityInfo等API函数可以获取和设置对象的安全属性。对象的安全属性 是以安全描述符(Security Descriptor)的形式存在的,安全描述符中包括了访问控制列表。

安全描述符结构:

aaarticlea/png;base64,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" alt="" />

一个安全描述符包含以下安全信息:

  • 两个安全标识符(Security identifiers),简称为SID,分别是OwnerSid和GroupSid. 所谓SID就是每次当我们创建一个用户或一个组的时候,系统会分配给改用户或组一个唯一SID,当你重新安装系统后,也会得到一个唯一的SID。SID是唯一的,不随用户的删除而分配到另外的用户使用。
    请记住,SID永远都是唯一的SIF是由计算机名、当前时间、当前用户态线程的CPU耗费时间的总和三个参数决定以保证它的唯一性。
      例:   S-1-5-21-1763234323-3212657521-1234321321-500
  • 一个DACL(Discretionary Access
    Control List),其指出了允许和拒绝某用户或用户组的存取控制列表。 当一个进程需要访问安全对象,系统就会检查DACL来决定进程的访问权。如果一个对象没有DACL,那么就是说这个对象是任何人都可以拥有完全的访问权限。
  • 一个SACL(System Access Control
    List),其指出了在该对象上的一组存取方式(如,读、写、运行等)的存取控制权限细节的列表。
  • 还有其自身的一些控制位。SECURITY_DESCRIPTOR_CONTROL

DACL和SACL构成了整个存取控制列表Access Control List,简称ACL,ACL中的每一项,我们叫做ACE(Access Control Entry),ACL中的每一个ACE。

1.4 访问控制列表(ACL)

每个安全对象都有访问控制列表。其结构如下:

aaarticlea/png;base64,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" alt="" />

访问控制列表有两种,一种是选择访问控制列表(discretionary access control list,DACL),另一种是系统访问控制列表(system access controllist,SACL)。DACL决定了用户或用户组是否能访问这个对象,SACL控制了尝试访问安全对象的检测信息的继承关系。DACL是访问控制的关键,DACL中包括一个访问控制入口(AccessControl Entries,ACE)列表。ACE表明了用户(通过用户SID或用户组SID)是否能进行操作以及能进行哪种操作。在进行访问控制检测时,会依次检测 DACL中的ACE,直到被允许或被拒绝

aaarticlea/png;base64,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" alt="" />

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAagAAAEsCAIAAAAZ8bBZAAAgAElEQVR4nOy9W3McWXottuteKKAAEiAJotnNZndPa0Y3n3mQHeEXh2w/+A/42f/LDj/4QRFWhBySrKOjc3yOJR1pdHTp8Vx7ND3DZjfZJEhc65KVVXnf+flhda75kACKJFiVVQXkCgajKpGVuXPn3mt/+7saKVGiRIkbBrPoBpQoUaJE0SiJr0SJEjcOJfGVKFHixqEkvhIlStw4lMRXokSJG4eS+EqUKHHjUBJfiRIlbhxK4itRosSNQ0l8JUqUuHEoia9EiRI3DiXxlShR4sahJL4SJUrcOJTEV6JEiRuHkvhKlChx41ASX4kSJW4cSuIrUaLEjUNJfCVKlLhxKImvRIkSNw4l8ZUoUeLGoSS+EiVK3Dgskvhc18WH0WiUJMkCW3K9Ya31fV9EhsMhD0ZRFAQBPvOD53nzbUoqYkXCVOJYkmjijwORQSoTkclYJJFJmPgS7Sev+nLsy7EvTiCSpCKRSCDDMPVFrC8SiExEgjCVgTN5IklfEuun4orE832AaUAnR1Gkv5YgrLUYgUEQWGtxRER834/jWET4P47PFYskvjRNRU02dIotMVMcHR2he60aTJycURSh/09PTwt55SKxjE+G4gepjWOxvoibSiggREm9sdixJD3xX0n/Gzl6KSeOfP1KDh3pjWUSiRdHYxErkoikce/4S5GBpOMkDkGGC1w/rbWj0cha2+/39cES1trBYIAOIesBWB7iOA6CwHEccF8BWCTxhWEYRRHnXrPZrFartRKzxs7OjjGmVqsZY8IwHI/HInJwcEApGx+KELpTkVgkkURklCb9NB5K0vc9EZE0Fn8ofk8Gr+TXj+XHv/rl9/77X9z57WeffPez21v/cmfvP37wHfnHf5HTQ0lOXwb7J/6RiCdhIKNR3+0NJQpEYpF07s9wMSaTif46Ho9brRa6vUStVut0OvV6vVqtGmOMMSLy6tWr891orXUcp4D3tTDi0xsB9MXx8bGIxCVmjZOTE8kUC+vr67VajT1PQQ/ahgK2ut5wLKn4IodRNEzTQCSRWGQs6an4+3L4pTx5/O+3Hz17/w/+wWy/aL//a2OOOubZeuObDx7+4ru//X/+1kfy6qcSfCXBvpw8l+ORTERSCURSiZ3hicjcd0mXATPWcZxGo1GtVkejkZTjOYOITCYTynrGmJ2dHc/z0jTF+IzjGMMvDMMCXtbCiA/yxWQyAf1LqROZDzDmTk5OsL0Nw9Baa4yJ4xivgHvhYgacHwahiCMyFklTSGjjcPJEwi9k+PkfvXfrJ7fuP6vu/ar96Md/8Id/+sn7n33a+vxT8+NPN/+yaj5vdT6vtp68v/sfbq/98UcP5JsX8mosLwMZiQQijiOJJ+litHyQ+NI03draCsMQalOtVC2B8Zam6XA4hJqLc9+eVeoVQAULNm50u10RoaxRDpSZA6MN29ter4eDGHC+74PsTk9PrbVJkhRiYrKJiGclFAkTGQ8dsT0Jv5LBj/73T7v/fLs7+vB7T7Y//vPNPXn1VF78VJ7+QH791/LsM/n1Zz/YaMun3/nGmFG3/Vmn9W+/+z35+lAckZGILxLFEk4kXZjEJyKj0Qh9Cx4sZi1ZFWDphSAs2RakUqmISBiG2HxEUWTnb9mQxRJfs9kk0xXztDcT3MDGcUz9sTEGUgnW3liZ1eaI1Io/sY4jE0lTOfZtEPniH8ov/u4/7W3+a6d+svfe32925cc/EOep2FciAxl70hvLN0/l9IU8/dlf7dafb5nnxrx479af3OnK4SvxAgkkiCUVmfhz3qq/DpjGBa4iKwNMcA7Fg4MDEfF9n0If/pokSTHctzDig95XMikviiKMlbTErCHKo0WUGr7dbvMg1+H5wsYSjiUMJJZYBN4f8tPP/uH3vvtNoxFsbv1ofU1++SNxn/rx/lHwciwSpJIkEgciE0e++KH8/B+e76293DCfd8zPvvfJ//bxJ3J4KpMo8MKxyGhx7ixBEGxublprIcjYzHVj0S9/WQDh1/d9+k6l6beGKJo7eIQf5ociiA9KX8wxLIPD4bDb7eI4BGCMkrkr1y8HhJ2ca5s+yAVc2++4ecR71Q6Jo9EojuM0Tek7slTwfT9Jknq9LmefCK8As3c8HtPXciajX+JQxo747jBJhiJiRZ4e/+nGnr/3W2Fz40mz/me//VB6X0l4kkgkkZVIXok8F3kViLhj+dcnv77z4OnW1q/XWl/c3flb03i+97s//Pi/ll+/FHfcF/lKUm/OXMOOCsMQAxhrBqZuHMfszKtZJzGQoJrApUajUZqmGIQ4jv/lrCGeb8paq500cQ6/ikgURWmaQqrC8clkooV9a22apnoy8q85X8V3R5op+/DguGl6DYiPMoXv++jro6OjjY0NDAt2KN18Fgho/SuVSqVSMcagtRTFtb4GZ+qvGApc0MDjGLJ6R79suPApMIXojJam6cx2bUkkvX2JncN4MhERJ5Wves93f3ffmHGn+5P72/L8FxKdhhKHIvJyIhN5JfJKRBKRH/3sl9//7/7BbPzn996Tn/9IfvyjZ5/8zrG5+wtz+9/9m/9G+sfjeHwiErymBe/8BElC3hGROI7hf3v37l1tJgqC4GovPU1T9DzeRRzHW1tba2tr7XbbGNPtdvFXYwxeShiGlNZTtcqS2iR7ofif3rJ6AmIYuK6bc8rRtkdRTu+zJSa4tdVqNT7R9dnqYqwEQZAqaw7XKIDL2kLgeR5aRe2MMcbzvHa7LSLwNxSRfr/PtwIqHAwGGC56oAdB8NVXX+GzHjrLgzAMOeixOGEm4KUYY27fvg2JVWa3wicSBeL44vQ8VzyR/eBP3v/+4833nO27j+9v/fH7W3L6jef2j5M0EJGRyDDybSiJK/sv/uKj73z23nf+4v0P5NnP5OmP5Mtf/2V3d3z7O0+a23/00a68+kImQ4njYowbo9EoiqLxeMyhAqUVBBYu9lfut8PDQ8l8fV3Xhc0EqkNMEwwq7fyPm2pV2mQy8TyP53DccjcTxzEG9p07d8ie8CqLoigMw1arlVvjT05ORqNRjh/fBVxFcBfHcWZ48SkoYk5S8SGZHFGv18MwxBPGmaOZFKBcnwrs+3JfTYZqtcqhE8exMQbvzBizublZrVZFxHEcDJSNjY1KpRKGIX9e+NO8HiBuMLtkG6tGo7G2tgbnWxzPrU/vdEeJ++I+Tw9DERmLfPb0Z9//H37Z6Jzcu/VP76/Ls5/I6DQU2Z/YJBV5eSqDUxk+lec//quPPvjBnb3/+PBjefZE4ldiD+XFN//8u3/wuakOdz/8v7/7nhz9UgaH4gzEzncIURDm/Nzf39/c3BSRJEkwQiggX00yooitKYBbEFItxqQxhsLE2tqaMQbqF2PM7u4uXiLGZL1ex69Aka7rYqByfFI7OR6PcQ6Odzqdo6Mj0O4VHmc6wL/W2kajIRkDXAeJD7NL60f0GhJncXnLYAVrtVqk4JOTk1arJSK3bt168eIFDmr+gv1OL7ydTgdMJ9k6hne5sbFR5FO8IdI0xbyCeTcMw/X1daPQarUog/d6vZl4sQY2dMVzJHBEJLTy9OTPN/fcvftPq+Yvt4x89WPxRpNUQpHEDWRyLE9//P882v7F3q0f3d7+6/sfyhdP5MUz8Q/F3Zf9b/724XeeV24/M+t//fA9efq5+IeSOknsz6SplwG9h26BLBYEQavVcl1Xi/yMkLkCcBcqfx4/fiwirVYLEwQ7jG63e3p6iiP1et3zPAxIEhYbk7MbhGG4sbHheV6z2ZTMgx1rfBAEGBIYz7u7u/jJ6enpvXv30jSlVEjV9kzAzTuF0yt33Ztj7sQXKy0eP3e7XWrBcCSKonih4l6SJDm5DGqUer3OfXqz2cTI6PV6OHlzc1OThYhUq1VqteE7wjV5qYDlfTKZ3Llzp1qtNhoNPEKtVtPSAVRLm5ubM4lbqtYrpmnq3bap17eM+Z+M+cGjT74yZrzd/OnDW/+LMXvGGLN+e+3efWP+W2P+6vffe7Jef7XV/U/vffg/G/NvjLljzN3b7R1j/tCYv/nkI+fWw8PmnZ/+/vf/R2N2jTE1U63PPUoMPQNFcL1exxhAr8ZxTJHwanobxnvgq94Jwigh2YYDLzFNU/wJxIc4ML7B27dvVyoV7Li5nuG3jUaDG2oc0Xr28XjMUY2xwT/pSOR3B57o+Ph4a2tLCvTkLULi04LrZDLp9/uU2yWLk18GV09jTBzHEE45tvSY0K8fdGaMYdQXBisW0ljpjLe3t2e4W5wVUuVMwA+ItSL9YcIcHBzMMFg9CkJJRCYig1i++Po/f/zh/oYZts2XG035+3+Qo0gmIvuuHA7+7FbncO/2s3r9hw8fyenp5NSJv3VXicV/Icc/+78edA67d082P/yjzV05eCWhk0iQpPEMW3seug+xt8WKCDrQu5Yr72Acx0HPaxXe2tqaKF6AfARxYW1tLUmS9fV1jNJ+v4+tN3+r37LjOGtra/as5q5arYKmfd+HNOc4zt7eHk8wxlBGme3OLOdUL5lNeYa3uBAF6Z7wCuNMWW7OGjfOr2/FQ6tOKL4lSdJsNkEEzWbTZrty6H2xraBw1Ol0YODD13q9nqYpNr8YtUsFtC2Koo2NDZ0miI/f7XbTNNVOSLO5r4hEImOR5z15tf9Hj+48v9/p1427devv1nbk6xM5juSl978++O7Ro+99ZRr/+vBj+cnPJY6PRcYicSqh54j/Ql5+9rff3X5ea79q7f31x9+X/Z5MfMfGBahLKCzjKzrNnnXQ5Z/e9uKc83Gm7eLIxHHMkWq1ypeiV2j8HLtvjNtWq4VW4bVWq1VsbJMkoZiP35LaMIbjLKhRr+K4+2zFFG7Y0YBrEqurY9GwjjmO0+12c0LQwhV8l+Eyv6pl80O8DPSKkMxuy6BdUdOJOdEg8ILNZdbvJRYZi0wiK54V15XjL+Tw818+ev+40vCbW4/XtuQXP5UnT/6k8/7+b/3hD83dz/Z+X56/kqffSCRJKoORxKFI7MroqTz+x3+62zqsNnrNe/9l+3vyxPUO/Z7IojYO1WpVd7KoCbxUC/wCwb3/eDxG51jlQaVl0gIaU5DER/UBB8fe3h78nuA86TjOEirC5HK/qiX0Q7wMvu/TwUKnour3+9Bz8ymgrcdn7cI9K0KPRRyRXhBJGEvgSPhM9v+/f3//7vHGrnT2vjbmnx/c+cdPP/j59gc/MLf/6cP/Sr58ISNXxNpEhsNIUpHIyuNfyv7jH3z3wYsP7jxrVQ/f//DPd96X5wOJ5Wj+fnyXIafJPR+LuTwqnYWAD04VIQ2Jki3AvV7vvDl7Tpg78dF3j6CnGKdTcRmAr4rzflWyZH6IlwGMbK0dj8dxHIMBufeRbIMTRRG5W/u+ykxXYEh8B5NArEQn+2IPZfjVH793/8vt935ljHz4u58b88Xunb/eXPuL7z2Q45+I/1iG3yQSvUxGjki/fyqjsXy9/7cPv/OjSv2bjfbPdtv/9tMtefljOfzXMO6P5+3MMhW3b98ej8eTyYRO7GEYLpsRb4GgnKt940VkMBjUajXP8zDSrokfH1/zyclJnKXlgvdso9GgH3mSJLO1kc8QF/pVLaEf4oWI4xjzkKSMSQgfBVG8BpEWbi5U7Z0PeHqnxoi8CpKxiKQiSTQ6+pVMXsizX/67D97/1c57B52dk/bWV601+ee/k5//rRz9F3n5d9J7KgfPxDuWgy/l4IU8ff4393/ry42H4d53vt7e+dMHa/L07yX4paTPEhm4dpQuKB8fPZn4VZS4Fy+T29YyALu9IAiiKNLaycLMgEVsdfmyrbWaGkwW3sj/l3NMXOhXxT+txIDWKR7hed/pdDzPgwUtDEM8nZbNdYzKrCI3QpGhyL5vfS+RxIqMxX8up1/I4b/+H9957+/f2321s/fCNAad7pNG9V+6lV98eOeHW5s/uXv/z+v1zx49+vz9R19s3j9o3u+vffBTs/aPDz6Sb34lo6/Hp1/E4ozDUZQsbCMJMZlWjuFwGMcx4h9WYoGcN+D8gAGmnQq5WoxGI6zBxVRBKIL4MALwGeLGcDjE5pFeRTi+hGq+y/yqVmULA9mN9llMQqRBZG/rnH26NoKIxHH8zTffzKoxociJyAifAkliz8pI5FjCF9J7LL/87D/s3H5194Ht3o9MZ2Bq43bnxBjZuS937+0b45q63HnvdO3Ozxq3f/y9P5Cffym9UwnciTd0E19ExC4u97yInHXO55hfCZVIYWBEc6/XazQatVotCIKCkgMpFGTcCMMQbkf4ilVRhzri+HJauy70q1ohpfVwOET7MeZardZwOHQcB34M6+vr9Xr95cuXora9DNjE1yu4ZVyIUKSHbFRDkadjiaxI9MUXP5S0J6OnMnwqTz//i/cf/MqsDUzLa97uN9a8W7e+MkZ2tgbGyNb6i07tL1uVP/v+78jjL8QZRy/7Eks0kqAXSyjiLSzzfBRFmL2DwQDjGfEwK2QEmysQ3SzZGGP6A/rf4LTC9F1zJz5ymTYdylnbtmRORksY3XWZX5WsiJsC3Vbg1dXpdLi6ajcu+K/Ab1kU5WHfMStaj0V6KIR2LNIT76Dvx1EisecPxA5k8EzG+/L08Q8/+f6v73z6L3f2/v7+/b+5u/2jh3v/1Kw829v+/Hbr/73Xka9/IgePJXCDIApFxr5ILBKIjBOJ7AIlPp3wFVETcIdcCbenAgDHQAQUt9tthJ1IthhohXIBm6elC543KwJELAEIWmIFqWVDs9kkWWP68X+TBSTVajXyILke+/crj0L6Rfu+/62S0SZuGkkq4qQykVDkVFJfJEpFUiuhF4+OxB/IwbF8/ZX0vxHnhfRP5fhUfvVLef5EvvyJPPmJDF/I8EBEhiJDkbHIaBJJGosMRAZig5xJYbH6k+FwiEQAWFS63a7J4sbmCgZTIuhwGbC1tWWMoYVwsTrxpSO+FQJChSRbyhbdnEvx5ZdfiojrugjVwEFmKDBqkhhjQHPYmFDQu1rxF+j7z2q47Mjtv7d3V7wwTaUv8kqkLxKKhIFIKomIDT0JAwkcEac3eeUHkQRW/EBOXsr4WLxjCR2xUSAyEHFEDj0JRGLxB86XIr/JyHd6eppLLLgoQJ0tSnAuYLTkHGM7nc4y6KDpXMUsD4tqydIR31wDLWcIyVSToBJIN+PxeNHtygO9qucA9xTQXWLrsb6+3ul0jDG1Ws0qjR4m7RUGKBd2pucZjUZR6N+73X118I1pmWORX6fegchXE39oxfNEEondb6vunoydWGwoIDURK+7hKwkcCRznxXOxcnzoxVbGoTiBhCKDwA1kHIqbSsxsOrIEm0ooFpIkQcprWNJl/uMcd3ddlwFn1losRQuB53k6fGvhLLx0xLcqGI1GDx8+zBmkltBa9/z5c1HKxzAMKW5g8GEj1m63+SDYj/T7fbhbXk1xqR0XfN//lnlT2zJGJDJd81JsX2QsEoi01++sN3ZaZkMCsZGcpmKaLVNrmErruRM4Iv0gvPf+fVM1rbZJxTojL0nFmO169b4x2xWzedQfD2Pf1I2pmHv37mFNgqwXx/HCTU+UOj3PK6aMKt+ytbbX6z18+HDh5Vtzy+diM3eUxHd1mLOFApaQ9TSwz+V8gN0WAggyGgFwfNne3pZs8lyZNRDULCobY80YSWwa+ROxpmEkSsWTLVMXJxVfJJQ1005TMffv9kQikTiR+t1uT3zTMr20P5HxWDyzZgaSmrW1QOTkMJZQJBSJpFnfDmKJIxGRwWBg55/M8k3guu55L8gCtrq4KTvBLEcqXGzA6am3QPXrUnSHxqJE8beFqMGE0A7m/l4qSFbKT082nXkBx13XHQwGsGaAwaH4g0XyalFr+/v7ohb2w8PDvd37TWPqxpiKqVWq4sYyljvGiC/iRvBEeXZ8ZNrVvlibiKQSStyzQ7NZMS1jWsa0jWmbkURO6ptGrd1cr5uWRDJ8ORn3bKe1Xa+1+V44wRZrbbfZ3pa+LMW8d1HKWZP5jhRw6wuREwvAywt8L0tHfKuCwWCAcoLYIc48fdOsYLPCktbaJElyuhVQw4XRkdiddTqdXHWxtwLkymfPnuFrxRixkkwSSaRpjKQicXRrY23onIQSDWVi1owjcWWjLhLHzkgi2zZVScSYaiISi6QSSxpIMhHrTnrPbHwq4pqaEQkkjSeDgdgUSZlwx1yowELQ6/X0NlPL3fOD1sAcHx+vr68v3NcqDEMqfBducSqJ7+poNBqe570LLxQA5uylFIDUsFaFD+IDjmNlxslxHLuuC+vH2973vKX7W6EjEbEisYgXmooJxZ6MTpq3WqZjzJrpSzSSaDQeNI15sLXVMUZCkYmIFWPqxlRrxmzXazIedo3Zqpla1Zi6ScSxMmrVTLtm4GQkKmSlmKD3y4BOQJ1sEQmCoLDV0VrLNMAbGxvknUWBDUAPRFG0QLVjSXxXh8lc3nQmu0U3al4g95FAQZGoe48HZ9Ho6f0wGrqSiqTiOE4qkor1Qy8RG4sNJInFitgkDsUmNozESjgOJBXPC0REUhn1e5LGkgQiEf6N/eHEc0Rixm2gVbzjwo0bCwF6QKf+tcuh91wGlMR3ddwo4hORZrNJL7/cnyBRvsm84iKPgEX+ylrLHHY5fdBwOETHMsifOkptN4iiKFcZFkFjb/eQ1wgl8U1BSXxXx40iPjAIMzNLFlbJ/bLewb024vK8GxcZip1Jv19tGMVfGdWEm+byeWCHzgsi/cybP+m1QUl8U1AS39Vxo4hPRMbjMR6wXq/rYPvT01MIa2mavrZKFsxBkPviONbpHnCLnAWZpuc4jmEq0blUdZroJElQIJG10q21EANn8fSrh5L4pqAkvqvjRhEfQyB6vZ619u7du8aY3GZTMllsSj/wOlTDIRwY+fFxJAgCEChIkLtjbGNz+brxk5OTk1xIAM0ICw8SWBRK4puCkviujhtFfHonG8cxNrMoY2ithXeC4ziYWq/1+7OZIyST/fH67FJmqI3j+PT0FB4qzKWqCVd3uzGGmWJtliN24UELC0FJfFNQEt/VcaOITy6KMUK5Im5vwUrTWQ/6OHgXIj6EUVzY1SK/4fnrjEajXANgGMFN4Srhui5Lyrquu/BA3cWiJL4pKInv6rhpxCdqo4p4exHxfR/RvjgOGpruOmeMQbViRM6jILcxBvVePc/b3t42We4mydSCiKtDJyMn2P379z3Pw87XGFOpVPgTbTueVd78lUNJfFPw1sSHvtODid7YNwqSDSamX2b2/BsFcFySJPV6PeeaC2ZM05TxLWmamqy6Huot4IiozW+aptVqNU1T13WttWBD9naSJJ1O5zfD15ggCHZ2doIggMDYbDZpw31HiY+Ppg8utLPfAvSp1L1Hf/vlB1ueZsLEbB3RryLxpUquKaYyyBLCWru7u8vXQ2/ehTZqMbDWOo4TBAFSmdLjJM1Ss+iTMQPhbrK5uRlFEcQ9pHGt1WpRFJHsJMunFAQBJT6d2xIbW8qbvu8bY3RkHqo2X+Gh9K8Gg0GSJIuNALkCGBoxGAw++uij1Wo/FkKEkDPYboa6i7cmPtrU0DL05mg0Sm4YRM03pj+SLNvdzQHYLUkSyVZEkBdXRzDgyckJRs69e/e4WIKk1tbWRqMRxUPdsS9fvuRnZkyo1WocjfjVgwcPoP6L45iZZrSK8AoTJjlXUDRNUyT1WhXox+F6s+hGvSlyr0OXypoJ3pr4fN+n++iNdRQQkSiKut1umu31fN9f2rrAc0XOwKorqIgItqv8K4pGG2Nu3brFc9CTyJDeaDQQHcxFvtvtuq7rOA74DgkQKfFBNjw4OEAWVYicDIBPMkXk1XRb1JHFcUxv6hXCaDRCV/i+n6urtxKAwQrOmDPP+XaVrS6aIlmKN+aYvVGQsznO6Em76HYVDclWY1I/RS32T5IkPIi5x6+IQiN74lIc5Y7j6Jwi9JvhZSVTMdO+hD9pm4a9atkN7aRNr+lF9/ebQj8IlgpdJH75wbWq3+9TZ5LMLr/DWxMffBdyWWVupujXbrdFxPd9RBTI0ucinQf6/b7W4unNCAstAhjQktWVt9biZA5xps9ithgcD4IALEYLCT2c6UlD32ZrLUVvFHS+2kuJogg3HQwGq+gWw55BV7fb7TRNr5ZXcSGgNzsXrdnW3r2KxId8Z0jwjXINcCa4UUDUKvA7v/M7+NButxfdrqKBzSby1IuI7/uoUsSJZ4zZ29tjmcrJZMKhnCinZQpoXEX4IY5jz/NwhZz5CFvp5KJM0Sztdv5Xb46XL192Oh0UigQW3d9vCra5Wq1SD7C9vb3odr0p6PDEKnF7e3vm7dOjXYar5FkTEWOM3kokSVKkqXsZwJwiojx7odS/UahUKtppDh/AROS+4+PjjY2NXGFlSB9BEPDniLHV25zJZKJFyCQz10KI00pVcBzTR3NbdOUEsbDJpGna7XYZUIxovJUAlwHdgdj1rwTwQnV9IsdxoKmcCa7ox2dUFfTr4RWZZql6MXN0jwMXeocxq5LneTk1kyhHtgLavyhUKhVuYHEEz6sL+IpIkiRYw3EaKFKzmCxZgfY0c03PlZ2bIZhJQdQioctCpmnK0D0wOHXrkq0cum25dUKytYRaTj1hdZYH9HOaec9x7aEZUw9+6iiSJJlMJlqTMFt3LvYDQw8rqjjMO6Ikvm+hZTetXOC7zM1kpCpJMn8OyfT0+O2TJ09k1i6Xy4nLiA/Athe9ivK+UIzq86Gw41eErC08kdS8iQ+WE+0jrW0paZoeHR1xAaAzR5LZqQFWrjifl5CcJcqVEgm+ePKrV6/4Kz4jKVhnwUmSROe5oXxAYPCXxLd6YC9jIU3TFM6J7HTJhiYq8mCfhTfNsYiLQDnFjdjC5/BccRnx0ZShD4qI53n0McbM1JsaKrDRycU9xjnMm/gYYiyKYuhyrJ+dsh65hm6PorxH5aJoAt/3eZAGSegTeAXG1TNDmbAAACAASURBVNBlJ8nSOmAk61tYa5lXQkRc150H5QEl8RUEjIzzPKU3XLpq38uXLyXLD4xfcRcAcEBfY9FvisSXJAk7E32IIr9JkqCEG4yw+iesDZLjzeJRwFaXibPCMMzpQ7BqotP0gNS+O2jkZXkJSWc8IuodcUBiDBM0KNH+i5/0ej3dDFyZVUQki96Z7Ssria8I4ClAVb1eD2NI+1tYa5n6XC+koira4ASdkG7hksu8MX2riy1Sbi0Zj8c4QgdmUCT6MI5j9vMCu27exIdVFop8HIHXTi4IMs1c2CjukWjYORfmJQTCMNR73levXpHykFeRZ04mE34F/Y3HY60NFJHRaKRfJfc0c4rULImvCPDl0UEHz6irR8q5wsxBEBhjkJ5EL3c4jQPu6dOnc3+ABeEy4tMzBCegvC+1qNBYoYRbzjjO6yzQL7IAie/rr78WNUg4ZmxW6w5jkqoDyTgI/2tli27z+c9y9nVAkFxfX+eCresH4IcvX74Ey5x3CcIWhwFLOIg8srPd2ZTEVwRovWo2m5oEJVuckyTB11qthpMHg8Hu7i7LpBpjEMspih9fm4p91TFd4tPuKXRJFdUt0K8zDpczUGv6F4JidHy5BVUvqzrXGdhnMBjkDG6cgOfzEooKIcdX+DzitCiKMFx5O9wCyzwzfTFLNqknR20QPCGhz9zNuyS+IsB1tV6vW2vxFrXgZq1F0qRarZZkZVKZK4nXgeuA9nOUi1J4XhtcRnycY6L2ZfDPoP5eK6G63S64D/0GZlxgyMS8iY9+13pCQe+ZZpkaWq1Wp9OBzSFN03a7jRw2konD+DolLyEIrl6vw4cZt0a4dKPRAI9Aw1ir1eAtzHQPOj2EZG503AnheL1eh8w+8yQCUhJfMYBviog0m00cYSokvFQMSvwJAfOj0QgnYwJrGwiGAjU4qxjz9IaYLvG9ObDtrVQqdH683lZdfU2m4QrDEA7h1WpVRHq9Hvwf0yxrIdlNzoqHGJzIzi/ZQovxyeVHl53TPx+Px8YYchbXbJzQ6XSglECSRG5okAiH9o1GozFzf9WS+IpDv98/P8Ikm5ZYSOGIi+Mmy0GCr0hL5/s+vdWuty+LzI748PPRaIRFJXfN4lGAji9NU+jpjDEQuJC0RkRqtRo3+xB+jcosDQUCY7mq1So6Dbld79y5s7m5yWWDsV+i6uEdHR3du3ePtwDPogwxb/Tw4UOtua5UKibLfwMCyjHvPPoHH0rimyO0tuX09BSeehsbG9Sw6EfmCkkxkIzJi0wmEyhZcjlFrhlmRXwU8ZrNJmRnenssBAUQHy/bbrcxQpjWwRiDThgMBvV6PQzDtbU1yfyBcM7a2pqOx4CiAFrmXq93nol4hEOXCXX4J9d1W60WvBpwsNlsuq7r+z42N9zEQAiFM2YYhiwbMMP+KYmvCPi+f3BwAAsGwqG1/g7pzrEk4nyOFb0GxnE8Ho+RB3htbQ3eate7xNesiE9E9vf3tWppttk43hbzJj5kuILiWFTv8QiyYGxuboIBUXXkzp072iiBUUqNHnQFxhjGtGJkaheFXq+HDUqj0VhfX+eTYhhvbW2xhRT9dnd3yY+EnNssyzu8+gtREl/RwI5VRJhKhJ5NogyOg8EACzXdDjQz0pk5F894zTBD4gP0nm6BKEDiI+I41gmjMIQwZhAby8wLoEvJRiY9k+VsMhua4zBWzw8/BAXSyTkIAhZCAS2enJxQ3MaVh8Ph+aWIRhXJcoLNqEtESuIrBpTS6VcBIqOVTVtpcTJ4DRlZchOVG2SWTCzoMQrHrIgviiKkp3///fdHo5GOZlsICpD4RETn74Jf1PShostaEbmxBx+UwWCgm80CnlO0ByybxyPMdgPQ3fJ8Xr/cmTNBSXwFAWMCIy9XbEEyJ3jqOPCa9TByXZd/ffHihaikF0U+RcGYk8QHXG/jBuMi0IH7+/s4zrBc0pzruqPRKBfGC6LEb7EVZSpsXh/pi3UWHPxVhxJeWCfLdV0GIPGFUvcqKkgOadhxwmwN8SXxFQR6pSRZ6Ry8+0RV7ZIsjJRRpZJtfnVSQhx/l4IPq4JZER/zPrCW0GIN4sVsdXll7gxIIlh6dSoBUbSlV9xcdn6dxJ9H8PPz1VFEheViac9VE8N4JhfTXV/OrvqMVX+n7jiL5SI+EXFdt9FowE9NVNa5EjcQM7TqSlE6tTdsD5oB/zVd5rVEAWDAD/deJycn9BJ7d1zR+wbWa6SvQezerBpUYrVwXYmPoVo5L5AShSEn/MpMvQXf+kKsH4ivC7e+lVgsrivxAUhCIedM9iXmDdiIWUNKp/OZCa54IcS1XO+ESyXeBNeY+KDDWVtbY8qsEgtBkiRI9gfHw5ngrYkPrkOgXljikW4oLnEjce2Jz6gMPci2UKIAiLINnq/U/O64yoV834efN/LQffrppwg2LHEDcY2JT0TG4/HW1hYDtMtxXhgYF2yM+fjjj/l1Vm/2Ku4scRy3Wq0kSUaj0WQygdbPlriRuK7ER18FreOTcpwXBVHGDWY7XwodH4Z7fLb6XImbhutKfCJirQ2CoF6vz8lBt8QUYHuL+vSSeReVDswllgXXlfiWrT2iejiO41zGearD0izWIlYFifABOzP8f76IB2PadP22Zaj3JEviwFwSXwmNkvgKAzNUW1UDSFcCwgcUTiNnjcfj+Gw1VJ1fHuWhczs2lOUt4pGmoiS+EsuLkviKbI+ojHhxlsT/6OgIf8qVyEAkZayKsSEi4sJ8X1EU5eqcDIfDUuL7DUriK6FREl9hgOwGekrTdGNjg39icUgWBcduN4oiJsvT4bTIajUYDLT0x+0zM1wtFiXxlVhelMRXJJhZwBgzGo2QlJRSHvV0uVrGSCouIr7vj8djuN9CEvR9n2IdjoP+UP2ulPh+g5L4SmiUxFcMuA+FdIYqGXSuQDU1JFvmT6y18INDbH+/39/e3u50OvAQRnkN/Akcil8xw/PCk4eXxFdieVESX2F4+fKlrtqsixCJSKVS4dzUpbLG43GlUtGxrvqvNsvCYIzxPE/nlJ9H/aC3Qkl8JZYXJfEVA1okgiBAKVsU5VhfX8fGFrKb67qbm5uwclSr1Vz1Z5KjiFQqFZTlBZu0Wi1UicSfoihaW1srt7q/wWXEhyWF1Yjh8o6YtsLAgnuo8oMYl1qtxtgXvmljTLPZRBwSvlYqFYykarWK0+r1Og/if1RlZvWWZrOJIdhsNs8/6cbGBsst81e4MttjVCxUo9HAcdyL5+hRXgDQQmMMQrXw0qdwWUl8hYEdazIiQ20sHsylMDHZXtVkO2KTVQfUP4zjmL7BxhjM3DRNF/7gq0F8IhJFkV6XHjx4wHoCc0Ucx6iCBqRpCo+nwWDAgGcsfbqMy8nJycnJiagk8sypzQ+MTsGTDgaD3KyGztjzvPOlEpIk+frrr0VpZ3LeUlbl1BVlU2NINh0XpMD0X9r7YX19PY7j6YUvSuIrsj3Hx8eYesfHx9rQ4Xkeq5LjK0SQVqtVrVbBFzDvYiBhjFEyEJHhcNhoNPiuzdnabwvBahAfk1MDXFLeLkLv7YFYFtwrjmPW9iZYQTkMQzaYLEPXJ4DEzQ8YKNZaiv3wh5KMqnipMAzhO6qtZvgVyTRHIs+ePcMH13Vd1+Wl0jRFA7QLAgbrvPsTLQehUyiYUgGnJL5iYK3lwokFW0QmkwmGGf4fjUbaRw+fLxvSopZkruu5M5ch+78sOfFxcJyenvKcYvy/UfW91+uxDahWFYYhXqGek7liK/iAwn060yTqD4CnMLGPjo7wAefgfxJZzvkTAAuzvCR8rFheCwfPMzXviNGMGtJAMaVmSfHcIk2ZACXxFdkeyUaa4zgce7rDIQYygo3yO4cZT2CGQa2kghwAPz4EeywQq0F8okQhpLJotVqzauVrQdnEns3rsLW19eLFC7xsve++sGBKmlVTw1DAVwwIfB6NRhhSWhyTzHUeFYiGw+G9e/co/eXAV2it9TzP9/1Op4Mag7n1GUMQ+uY4jieTSTG5MFn0K0mSRqPx2puWxFcYdBE1FDXFRoSkBuc7DRbhlUzzwz9Za8fjMSUDDGz6P8uinfhkhYhvMpmws/r9fr1eR3HPuQJtIPFRjA+CoN1u9/v9W7du8XgQBFEU5fab1NCBH1myL1cckrlxcBAFseI4But5nqd1LroftLgURVFO5NTDC7ega7722AJc1513f+JGKKnebDZFVSC8ECXxFQOb1TyTrMo4/xTHcRAEsaohifEJvoOGhIpsaMAx0nhNMiOviQGw2AdfGeKTrPwQZsLdu3eLWTTG4/H6+rqOsxmNRlY5KJGSkiSBeVRUKT9jTL1ep2gDqy4+TyaTSqUCwyuOmMw+qwciACdSXB/Hfd+/desWf9vr9Ywx29vbYEZrLcOJ4EGKICTm4cF9a7VakiTFmIlEzRzJ3vL0XEwl8RUDjGFuCGi+44aULw6ERTU0znRdF3V7uYahjGpOe4thdqH6pXisBvExcxY3SqYQB0jsTEEZ1lpG8FQqFW5d2+12mqbD4ZDl6TSR4QOkG3BWmqWfxEGOFXoMwM5L87G1djKZ4GQSrrW2Wq3SnwCxk2tra9Zax3G2trYgeNbr9fF4DJPcZDLRPIiebLVaHJ3FLCTatHe+bnoOJfEVBnJZtVrVWQIRiCYi1loyo34LfH30bcC4ZcFyns8NE4WDAp7rMqwG8dH3AgICuWM6ILTrisi0veKz7/ta4xarMt7kuOPj47W1NVFbAAhf6+vrcEnj2KUfk2Tvu9lsUsJ3XZfubDs7OzjBGAO2QjNwTZaRp+nWdd1ut6v9RUUEGbThiIfBR1kSH7g8GGM6nQ6kRe2dn6Yp3RTknFF4rrDW1mo1vs3LTiuJrzBAEDPGYJhB+SsiUAHzNG30sNbCaidKh4PjGN7nS4b1+/1ms5kkSbvdppsEXQ6KHIHXk/ioMqO2i1otyFOUtylVac8Svi2KVLxIjn329/fxudfrgR/lnMTnOA5cnCASHh8f6xdMIQ5G4TAMcR20lmsszhkMBjyZO2IgiqJKpQKfAzjHi8jt27cHg8HOzo4oJQtFP93UCw3H80NJfEvVHkB7HSdJ4nkeHQ+wYPM0rfW+f/8+JwV8FZrNplbCiHJd4F34V9q7oCKXoujvehKfqKmiLQN6+cJUp5IV5dz0tos+Jd1uV0SePHmCK0CeooKDDUZgNviIkmalUuEWeDgcUlS0WYx3p9MZDoe+7yOqASdrfT88t1F8zhjze7/3e2gqr0AGzNEZtsOe5/X7fWgP19fXySPwL93d3SXL83EKQEl8S9UeqJL0+FlfXycRBEFQrVYhoMEhGUOdJydJEoYhzz+/rBLGGHrs43y9JZrfA57H9SS+8XhMazr4i3K4ZBnBLvSlCMMwiqKc1on3Qv1NOfuSNGNSoQtREXYu7AK03VYun8C8xYWW2SRJoEXWsRZW5QQfDAaMAKFBTTJ+R9oMUc7YXF2LZD0piW/J2gNQBcyvHISckjl26/f7WrXt+z7WYyz89DmjVykWYGhpjDFauMMcz/n8zw/Xk/ioNyULMMGOnKUSWJrgx0vBMAxDnjMajRqNhv6JzspN0UzrMsAp5+PAwjCENyLFexHp9/vMdCZqhjOyDV9PT08xqrSHMxXJcm6viq/gca1FzpVTkLOeNIWhJL6las/5aaVt7iiKJErQw5kYt9vb271ej8lX4OklIkmS3Lt3j757NKbxjrwUxQh8KInvnba62kUDJAXxB+Ke3qgSOVsVVQ/NZpPGKdR+BtAYmPyhv4B5F38FN+HF45ycIDkYDIbDIW/KbTg1vrxsHMcMJAKYFFdzR24AQdjEETQA3ErtIZsKNiyyyldJfEvVHlELp1bhAUEQMPeU1vchfXy/3280GtVqFfY33/eZU4N6c1E6Iiy0ePXVahV/ffz4Me51tfd7BVxP4tP+YvpzbnsLggADfvnllzgCKQkn4EOlUgF1Ite2ZLvLNPNowclkmTAMj4+POaBxl8PDQ5uVbXddV5PgyclJmqaMAOFdcHdwFq4GBTA3467rYnfAlRm2YJpx8EO9Med92bF0Ty0mZI13L4lvedqD8QYtCoFgDEyZNAsukkteARz108xDMxeGqH368Lzwlpez0gCIshhl3/UkPkjm3LqORiMkfTJZyh10MQ7C2gArO87XCQLoFJIkCWkrTVMGn8VxzAGR296i+IBcJL2jZAGvgJ9rlYd2oNdbANKZdtORc15ROiWBnBUMrcpKwD8VyXpSEt+StUeUtjfnzZ6qlBl6LNE2qHdO+FOtVsPSG4bh+R2S9tPiZfVUndcTnsXKE5+Ogkb2p3q9bq2FjzEveGHIFzIj0klFcwf3fYPBoNFoIAefUanr2u22znyHE5gRr1KpVCoVnFCtVlutFhW6OMjf1uv1drvNxHmtVgv/MzGfzqO36ijz8S1ne1gPSLuycgrkVmhMk1w5SkDTFmeT53k4zshfradeFFab+LRaimpUY4x2VXMcB2EPGljfjDE6S4R+hXDo833/9PS00+kgBEfUZhn+zzyfVfhwAuVBfNWWYph69W5aDxe0B78iWRfsZDc/lPn4lrM9ojTC3N56nnc+h0ou2wpO0OMTDgNUDfG467q47GQy0dqkRWG1iU8yyVwnO/rN7bPPGxsb0OUjlxTVXsaYjz76iPIITqbPx/nr8Eakv4ODA3qfxFkJ+pyKkF+ZAwpPgTbQbstNAdZS3IIjz1oLg8ZKQ8p8fEvZHow9z/MODw83NzdhlmVX0+6v3WA5Mukv4fu+DmnXYgG3z5ho2NCUIWu/gb2Sjm84HOL4/v4+t4TQ333bjrPaVrwqBFRYlTdUVHfgIJYyk9XZw114Kc1K+MB0ePhKF2hdat6qpI9xVoUPZEd1IU8ejUbcsF8P6CUq57F4HiXxFQnXdT/44ANrLRJeiMqGSQ8HUZNRRMbjMWOfeB29X5azyzynpM0ClhaF1SY+7RCH+bO5uSkZAbXb7YODA9d1O50OLBK0VIDRkF9ANyBHfCApumiORiNE+9Jyql3/KMmLiOM4WnCzWZAvBwQS6mGl5UYYiyT3g5QQi0m5WgDKfHzL2R6MapP5JOPgYDCAt4rNYoQwpPGZvgS1Wo3yQRRFCBPSaYSOj49x5sHBAcmOEZyLwmoTn2TRNucL3MFLY2trS0Rc14U2vdPpMKZCsldItyNcMLfV9X0fbzTnvCIqLQqjcHTKA34Iw7BarWLQ0DQsaotHptNhIbkZbq1F9MVKA89S5uNbtvZI5vmAFd0Ys7a2Vq1WKVWg7EwURbdu3bLZJIV4sb6+Ltk0wckm84I4L9PRxAdyLOrhLsDKE5+uFUA/YU1PKD2RS0FsM5c6bVvQQ9Bam2QVguB4aTOpDXKKUbHWdIXjabTZ42vuHUP29H0/VR7RyHBL1k7TFN4wnuct1v41Q5T5+JazPahpo98IkzlifFI8N1lGKQSw4zRdhNdxnA8//LDX6yVJ0mq1YMrAdTzPQ1IWPQAWhdUmPloPaFfSvnhUr9KaLiKsnqE3npe5s9C/HB+0y1K1WmWaPL0F4MmSeatrcRKfkyTBHhlLKwwj+KAN1nxG7cm86ijz8S1hewgOOZ0sEhk0MKqhFsfg1Okgcx/01VgBhj8XkclkUkp8v8EVJL7LQJuAzVSz7HER8X2fDuLThQ7P8zY3NynBASypJ2dfMwcHVjmkssAosdaGYYhU9XSm4Q49SZL19XXuF/i/Nhm/cS+uAGzpwLxM7QEo02mVEZBzluBmNhcIICKnp6c03Urmh59mMVTQOCGJ5GIf/HoSH96ZzaqcAGmauq6bC9HNVRg4jyiKkJ9dlEG20Wgg3oO55h3H2d7eFpFnz54hod7BwUG324V/HwYB7MgUPzudjo4n0f9vbGwMh0MoVtjgJcnZPROUxLdU7YGfShRFdEcFWFKDplttsiMY+glRYG1tDZuw8w4rHMwLt9ddT+IT1cW0SxAMhp2yydLIecPAO5q/vSwNWRiGdJzO/UlEDg8Pm82mfv3dbjdROZNFbQbfvKmrgpL4lqo9udFFRTahTYLAZck+qKJh/DjmGusCBkGATG6LxbUlPhFhSj7Add1ms/mrX/1KnyBT5xISScFFBiq2fr8PSzEKqlGpYa1lqolqtcpkLRDout0uWt5oNKIoQqoV5hbVe2S2ihoQGDrOJ7laaZTEt1TtEZEgCMBlHGl0SrXWggeTrEDgZendyIb6CvrMVAWkF1PR9DJcT+JjLBRH1Wg0unXrFtQQcja9tY6jzoE6uDjLQAV/QH1ZnkzpDPbZXLg1bCm5apC5B2fuqVz5XXxY7ECZLUriW6r25EAXCBb5krM+s3TQk7P8hePw8WJR3TRNIeIdHh6mFyVJWgiuJ/GBNbB20buSBnsgVRkQpwBpY0VxJdN/Mq8J/DblrBWC1+drxod+vz+ZTHQ5Pk2RZOHJZIK7QNIsjRs4UhLfnKBVyXTJkqzn9SA8OjqKLy/hgL0Ow35zmXqxm1kGbfX1JD7JEtvpy4rI+vp6GIbj8ZiSF01Ol6Hf71NOdByHuQmCIMjZhakJxn31spYLYtO/Yr+zZLDmwTgrNSmLLsc3W5TEt1TtAT15nod6ftrkGkURxzn3vJKNzFzRLlxEZ/zFFpiuFCJijLl3754xZrH0dz2Jj3oKZsJBWJjJqufJuSwplyFJknq9Th86JpVFw7ig4TXrTPGiMo5ROcLPbCGvjB20/iuzXMi5LGmrjpL4lqo9IjKZTOBTRadUnS9Pznq2XlamVeuX6H9KVhURpIyD637px/cbzNa4cUGDMnsTF67XFtmx1jYaDWstRHr8Dy0Gm6e3txciF9dBVfFl518GUYIk5VabpYMuHsw3iSaB7mGNuRA4TccAlGmplqE9ouppMPAJEsNoNEJMJxbjNE2RIBK/og3X9/1ms0kbnfb1w5kYKp1OR0cTLBDpjSK+u3fv0lMJDuWvlaRQdm9zcxOv/5NPPoFzJkIyms3m2toakoa22+3KJWB60Xa7Ddc/HLns/MsAz08APoDVanXKfecNzAF4pTYaDTRvSnuMAgzc0zu/UhJfUaD3gmQRtevr62manpycmCxTC8gRzgzNZhO2vlu3bqVp6roua3Jp560gCBD6eX5q51KIF4ybRXywLkHK4GZzyvTzfR/FU+jhSaJk0gEq9aboLBijJiInJydX9t6kUYWN1/rj4kGNNZ4Olpnpnjc6eilRNT8vREl8xQBSGBVBjL2lVwMri+dcU1HhPlWRalEUVavVNE2Pj491/hWMjU6ng7KCCzfW3SziE5EkSfioODJ9LtmzicMutMT7vs/d64WQs2oRXAfWjLeCnK2QySu/7XVmBVGmGJ3rYcr5dHRgr5b5+BbdnG+RqMnfbrfpporcQnDSQj0NneGcH5iCiAolhDBBAUKBESePRqMrT+GZ4GYRn+u6em8LC++U8x3H8Tyv2+3ijaZZmikodLXWVqaqLagkZm3cK4tpk8mE2r3zHvYFg8IyyypNr9JLjhsMBtvb257nTe+HkviKAT0KDg8Poa9gCfA4KwspmZ8plDyS7Z+g5qNSD3teYwwC1RNlrEuSBNwHPc9ihb6bRXxAHMd0l3sTAmII2mg0yjmpsPuosp0i7Eg283HTo6OjK0hYvAhc6nHrt73OrAANQKIU2K+VfCeTiQ5Tkam6npL4CgNzKdM+y9cK+yxMsZKt9LpsUJr5LeN8YwzmV5qmKDuZy3uEATDdrjVv3Cziw/tIlGiWTLUuIfN7tVrVLwkuzayLJmd9nS4DKn5Q5Dk6Orp79+7bth9DUydxWezoEREE8InIV199hQ9TdKZ62ahUKq/ttJL4ikGS6X9EhQ+Bs7T2ViNXeo0D+3yYAD7AHQJ1YxJVZndRuFnEh6vlyOK1I08b5nVWMq3TBaa4cWCLnaYpQx2hFX4r6FYhsbNkgudCwMdnMTlu6i87X7JZRHeW9HIuK4mvyPaw+FlugnCbguPMJMof0rlV1HYEJ6fKB0vXGiyJ7wyK2eq+e3t4hC3RxkqtwcURiIc4CIERtXcT5dgcZ0XaoGGJ4xgWNDhSwZ2Qypd2u40bIeFVkiS4i6gtMAcohmAQBLVajdmkW62WrjWMBRkeJziIzM+3b9+GOgZb1GaziYtvbGy4rlutVvFoSZKkZz28XtuxN9mBmfMf3cWw1kW26UZCu3acL0J7ZVxb4mMtN9itGMemTV2gFcdxIAdtbGxI5g4tWW4+3gibvsFgMBwOcU3QDbe0tIi5rhtFUavV8n2/0Wi4rqtdT5k6MDkbH5IkCXKFs5Fw0zlvnnv58iUSC+IIFNhQVLMlbJh+EXRPeZNXc8OJD3Bdl1IGlWUlCoCcDTmFqDtDSrm2xGeMYfgBJ5LnefD8RLQjL9JoNOBsTPeoVG0SgyA4PT3VSmK4U1UqlSiKGo2Gpj/YMfhbXmpzc1Nb1gDcDmrB8XhMj+t6vc6wk62tLbTfWgtz3oMHD/B0zM5A8WQ4HGJVjOO43W6jzevr6zpzb64NUzr2JhMfdMdYdXRcV4lioPfyjN0qt7qvb0+n0+EMNFk0z3g8Rt+NRiNmYWQ7IfElWapRz/MqlQovov1CUHyj1WrFcVyv11Eek/THmx4dHeGakPi0cwACh3N2G3AW3E3irDAgigFqcVXH8FE2hAALrSKmKGYsH5Af3tDYcsOJj+h2u7lC8iUKAHX9nCPwxJ7V9a8t8XHXGYZhRdXfAK8ZY+r1OigAOjKAmSogfMEeih7Hn05PT7UwiCMfffTRcDh89eoVSn/gJzs7O3JWn4hrIvAbcnua5Q08PT1lbi7IpHJ2Q9putymNAvA3FJFGo4GySpKxM4Pt8FtE8rFbqGp8bcfecOLzfX80GlWycEajypyWKAbVapVhlDs7O3RXfHdcW+LLYTAYaElHJx3TDr1MYgFl9nA4xF+1qyd+Dp8pboLSzHbGaY9b6BLm1lpr7Xg87GaHSgAAIABJREFUZiUjOWs78zyP6VRzT3FycoIrsw3sdjqpoqm0w4gSbJlVXBu+X9uxN5n4rLXc29oszc9iY1dvGmBi5nBimcaZ4DoT32g0sio9mYgMh0MaNHK5D7iLyaVlFuU2hQuSesA1zPLI809PTzFtNAUw8wIpUjIdHxsJQsTnNE3jOEaMLcmRG3bNsHJ294qUbZIxIPbUolJGv2EkyQ0nPgC9h/+58JQoADT6jcfjecQ+XVviI1nwILmJnpwMA0Iv9/t9ahZsloNeB97yhzprFoDTwjDkuoTbgbxwBH+y1uaKK9G1hV+1572olIUUPfhXPhTrDqOpOgE1NH1WpdsqJb7XgsXs8VX3fInCwP7HhxmG0M2M+EQNi1zAUwEwWYBEYZuR3ORERoNibj1vcD0wZ/0fL8R1Jb4S1xszIz49WOEZ98knnxweHto5A2Lazs6Otrjh4FxB93c5Sw3zvu+8wXTTktUaRpKiy8ZDSXwlVhGzlPjiOObubDgcGmNq88fm5ibMoMYYBkvg4FxBS1+1WoV7HYy2877vvEF/w5yr42Uoia/EKmJmxEebQJqmkIPojzZXaKsokpKiSfO+L7z8RCRJEhoQCnjeeSNRroUUom9gdpYS1xuzlPhExPM8FPpMVdj/XJEkSa6YpBRVHE93gu/7MOYWcN95Ax6CWMn6/X5y1ss6h5L4SqwiZkZ8k8lkUTYv0CvETG0Inze4EwTtztbPaFGAjSiXnW3K+SXxlVhFzFjiExHkPXYcp5jhC7579uyZnHM+mCv6/f6jR496vR5z+1yP6YqncBwnCAIsIXTqvhAl8ZVYRczSqgvRgDuj6XnfZgXJNFDcVmOPVsB9KfHZzElwStnGVYEmHdh5S4mvxPXDjK26OsurTC1SMytgrtoswyLTTwE67GHm7TEqwScsA5JtDHNKxvPRIK8Fn4I8UmTtDsQ44/P51L4aJfGVWEXMUseHE1gZgLkb5wo2jJJmkiQMc6E5krN3VvdNVPq8x48f44OOJAPhXvm+vKDrujo8Y1btvwzalKGt1ZehJL4Sq4jZ6/gA1KYrwK8Nd0FiYWJ3dxd+diykzfobs70vLri3t4fPzWYTN6pWqzjn1q1bV7svE6lub2/jM/6fVfsvA7wR4RS5vr4Of+YpWchL4iuxipgZ8Q2HQ4bKIyX6o0eP+v3+vP3OcEfmesLXFy9eSLbdHg6H1to4S/I+q/tSMuKeFMKdDqQVNZ+v8FwoFmOtZdWYGbZ/yn2BwWDQarX0rS9ESXwlVhEzlvj0RqmwWF2dnD2XZXN/fx8f5lE5hf4r/KDvYq0NgiBJkvhKkdXs1V6vl2augle71FsBaQ5YWkRU1v4LURJfiVXELCU+lHpI05QZgGfc2IvApOoi4vs+M99JZsogWby2NvlbgWQEUtDJPHSOKeAKFSaZZ5Q8cgULydWAp7DWmjcoKV0SX4lVxCzTUvEcME5hEp/jOHCpkyyNHWUWsBIqos38vkixR1KLz2ZwwofpJtHpSNOUVZ/RpQVEwmjSqdfr4/E4juNS4itxzTAz4ktUGcZvL21MAfVk9b1yjYyzIhhxFtKLbeNMoLOzSBaYrLM3S1ZpCJqyt70++FSH4o1Go263O6v2XwYqRvmWp9NQSXwlVhErn4hUVHmgJEnAFK7rjkajTqcjItVqFXx0eHjINtNBRFfLzuWY0kIizDWSSZTw/BBVclD7LTKtqclKZ2g3F2staEWLb1o5SFlVdy+uX8tqSBYAe7MTkV4BGBuidhhX64rrCvSJrmKeZg7zOV1QAQNg5YkPNFGpVBhkqotwS1ZMlrIYfDVEZDKZvHr1CidUq9Ukq3ULfw7JiAlfUTnI9/1arQafEtyXxYlExPM8Op3gSKfTOTg4AP+enJygVI1WgKZni96yS+GIwxzLKH5Uy4oQFYOS+N4WekiIKm5VIkkSEaEyil0URRGUOYkyiiZTk2LMCitPfCISBEGz2WSkGrqy1WqxOgxbAg5KkqTRaKC1qDfGWsWVSkUrKPlDVBzXhMg1isFqsO2GYbizs5MkCW3NjUbD87w7d+7QVJpkIiokOHze2tpCMQ1UK/d9n7XT6vU67DZ7e3vz785vURLfFYCWj8djPA4LrZRgijNubiB2AHEcUxteTK6T60B8o9Go0WjohQLCV6fTQYpQYwy8+WimtNYijYIxBltgETk5OaHPsxbETFYU3FpbqVRQQVxEJpOJtVZHpxljcEd+RUVd9AYCIfBXlAxHRr9qtaqrxMN5eGtri/n+WCiylPiWFsPhUI9ATO+yHCVB3/i1tTXXdSE39Pt913W1zme2rhdTcB2ITxQjOI6D8ddsNule12630aRGowF5G4JemqY5TtnZ2UG/62VnNBptbW2RHyWzWkimzsMjo+gnyFREJpMJYtq2t7d5ffAgSyMbJf3h88nJyfr6Op9FlAbz6Ojo3r17s++7S1AS3xUQx/FoNMKWAi900S1aIlBEQKlcHk+SRBtIpRDd6HUgPs/zQDFPnjxBA6rVKviLJgI0xvM8pFbXQSZYkfAVklen0+l2u/xTu90G63H5wl1AjryUybLP37t3LwgCz/Pq9TqYLslq9zSbTb5+Y4y1NgzDJElQuRxdNx6PcZe7d+/SaZkXL6ZLpSS+t0QUReirVqvVaDQW3ZwlBQQFrA0Y5KgKjUlEr6l5hBvksPLEh87ivdKsyLcoNTNULTYrO0mLUr/fpyVOlG/KhXlQ9HyeTCZplhErjmPeKOdSo6VCJunSt2BTHceZTCbILpNmvjKSWTbwWYucBaAkvrcFlyjJXJqw7pZIlfsX9jEUF+7evUtNaBiGQRAU4Kwq14D4ROT4+BgGAdTDlaySLP6aCzWFM0ruCizUja9cvXVUBr/qsry8go4S4XVy2Yy1PM+3m2QWZ8mUhrkz9RWKrGBZEt9bgQswB15p2bgMGM9YG7h/4gKvyyXOD3MnPu0NByEIdMBM8QwO1cNd+xvzIIYUzqQDHQZctVrFmbg4/Ox4i3lMJNwOb6vITHnzhl4nKpVKYSFreHFxHLfbbV2sqlCx5A0gSlcFhTIfvNPpJKrw/JVXKR12KZdUekJLmMPCZkXoRQlTaABbi69cTYfDYZrtSLg74X4IN6W/qvZa5ckzAXXiAMbbu8Q7vSGKkPhc181RA109eNz3fWaOkozdJNODViqVarWKFCyEFol1311Ic0mSBEEAkp0Jzm+oYSme1fUXBTwLSIfvQhfbzWFWxMffwtx0hejmYoCnOzk5wVe0E6oPmLx0GsorXB8zwnEcUhs+J0kCvYqcXWghDYApTk5OUNg+VdoSsnAYhniPum3apU7OzikGIMVxDNcT3Gu20Z/kE9/3cccCFHxSAPGx++DMgTRHqFRtsogo+L7xdTYaDRZ80Mq7k5OTMAx1CgCEkYZhuLa2liQJDnKF9H0fWjxkT5BZZ2DWK/+VB/qyQesi30RZMSviGw6HeEcgPkori10GzkNEkiQBE3mehyOTyUQbNGCwkqvOYeyRObq63W6lUoH7Ooxgoox1cm7bgYNoANw/c55xeFNfffUV3xRftM2SCidJsru7C0EE7gr65zOU+ESJQcwDdH0kPpwGB13JCL7VavEJjTGQMqinC4IAFJlkjJbrbloYPM+rVquVSgUy48cff0zz6/b29p07d17jYvRuYKrR6wGI2LB9VyoVettfNh5mK/FpI7gU5cv6VqAoSqLR+YGQIIPNvkL7IR/owgPwyjLGWGuDINCqMYBiGuIvIfTJRWLpaDTCn/SEwmaTPEsBhU+Ez3rHPUOhTDs5SCHBat/e7m1/cAXio2kS3b27u8urPXz48Pnz5yIC6wSlaGr3MBux3LVardFoNJlMMLw4weI4xi4YY+Lly5e8fqKqfc+2/CNeWBRFHF4ytfD2CmE0GmFB4htMLvdHmyHxYZBQvsBCuAipbhoYqMNtxHA4REflMvXzhLcFBMacK29O7DLGdLtdzA5MB2NMvV5vt9ucoZg45OW7d+9iMZPsheKcjY0N7MByE2Rzc1Oy1wpPWFHSxgyRC69CFuF5owji0x1KJzV4eCJmi/H8COBPMlJzHEevbNqfA53leR485mq1ms5RnEvixIV35usJrnxyclKMYqIAaE+adrsdRREI6DLMiviSJCHbUqoqoFjVFUCzI3umUqlgAJyenkZRhAU4uZL3chzHWr+JAeb7/ubm5snJCVbZOI6bzSYUyp7nbWxsiIgxhoOQfZimKTXjnA5GhWPqAM1cgjVuAjY3N6nknUf5bDwF2gCumDm3nsfciY9vDn3nOA4CThmrr4ULZkPiiDdKUUiywwvOxYqJSBRFzAyKc8i59JB8B4PeGbC19DHmUFtpUMmN2SWvWy1mRXwUjowxNHNBQlkqoFVwJr99+zbbKRdtbK+QOxbdyP0EBzMlAJSQ1ipFY8xwOHzw4AEzJ0KkYGvhHMrwzVqtFgRBvV5ng1utFmZKv9+HHSOO43v37qVZTsm9vT3tnTNDN4YksxPC2z/JVJOzuv5lKELi0+YhSuaSDZR6ve55Hv7UaDSq1Srfh+/7EAzx/wcffMDAZg4IyN61Wk13mc4hvL6+jpc6W6GMZn4+ZgEa2WLAYUfBoYBiQ3SYsNZqD/4F8f+lYIPp+SEi9XqdimlGMabvILZghcZKr0O8yTiaajudDnSj/HlOgsvR3NraGvJ6YPPO8ylJ4NH0RXhxLPbv8mgXPqy+xTXx47sMLEdLWkyShN7FfAfaQemt2iPZBmQymWAvANWv3oDwTIobfKM4Lc3cAviMoAD+j/t2Op1cYMY1QMEOzKsCjEbMf7x0x3EQ4Ii/osdmPnuhFOKmB8I46kNBAZeTM6ATN8Zsb2+jbazbh82v53nb29s8TQ9sEUmShHI3KBLHc6e9OehXi896XKEzt7e3ueBdTUvwVlhk5AZ1t7RV6VvowoZTjAaXtUcbqqy1OiuyMSbJagBxHOTabIzhQkSVsH7feDe5Mbe03mdXQEl8U0AVCmluY2MDAwa2V5l1nQDEt4rKagcNI7r9+Pg4USFA+MDgsNwkwocoinSWbwDeZpg4X375JQ7iA2rMv+O2Cbs9tBmO0zmllm7YXLEw4huNRvB90wZf2gpwkZxD01u1p9lsUnEL0xWsbDAf490zoTFWvPF4DNtZFEXtdhvjGEsrLXdoJxpmsrTPIrKzs1OMiF4YSuK7EEEQ5B4Q49MYwwEwGo1w2swnsFZ+nRe+8DlXiVTO7mMoTHG24hz9Jzn3EvXX3JlvCG2nws+RngB6vUpmHSoMC47Vpd4hzfyVfN+nsYyuA1doD7yg8dv0XKJjyUpYgMKoKt7c3MRQMFniKf1DaHDQzslkQm13wXlTikFJfBeCWhEuz8guISpQl+q5GXaF67p6sjCkTEQgiMHNi9MQLDwcDvEraE4JaiQhljIBGukJ13/+/Dm8zSgt0v5wNcCUcd5Yz+kGlX0BbmGLJD54RfX7/QsXRvbvdJ+Gy9rj+z5UeyICL+goilzXNVleeN/3KbIZY6BMhAkMjtOMmcsxoIi4rmut3djYYI0FUOd1Ctotie8yUOShrkpU+AGXbdd1Z9sVICm9ATofL5TL+gM4jpOjkvF4fOEG5TJikoxe35H1zhNrv9/f2trixAFNF1BJdWHERy0JXiRc+aBnhcpPv7wpQt8U40aapjAHU+0iZyOiRKn80PVBEMB8bLJKHWgSrs+FUVTeULbkmgl9JfFdhjgr2ifZFM25yMHjZLbQ5VKttaxzkKYpzL463w8+HB4e6imJ8/VGWETSNIV77GVbUX7QlHcF/8rLttLdbhdTD04R/X6/mOCNRUp8oLwkSaAbDoJAX1yyUXW1ra6cSyeFq+n8UZPJRPvK0u0Zb1oXNssN9ByOjo5yvg7XACXxTUEYhjQaSGbQGAwGtLeiT2YYz09tOKFL90HM5EzRFMODqL5gsyJ/ctHMOm98oHeRtZYmwSvjvPHEqBxOTGI42zwIF2JhxIdfkZvwAQlUut0uotNFKV/ftj2U6Uiv5x1Z6PrHAcRVLs2SldJhKs1SYOEclB8StfrpmXANUBLfheCekcOSoeiSKT2gsZq5TwYuyPGMwXY+75FkflepSrJ7mbECakGd6k3OuptwUvP9wtfybRt/mbsM52Au9+W8sTDiy8XbQvJyXRfOJVyUzufhyWGKA3OJq2EhDsyrDgxR7ZwBB5d0Qbgwnbi1dlHtobQ4GAwajQbCFgp/S7/BIre6nE5Qmrque/fuXR7E0vqGK4A5F7K2qBe86lhUyNo1AMYqGWc4HG5sbBQaT6fAcLpqtdrpdBD+tL29vaj2VCqVWq3WbDbh+opMIgvkvoURX5Ik4/GYGwQRuXfv3rNnz3TEEjDdoXFKkoISV8CikhSsOsB61lp8KExJfxn0nsla22630zRdrKspLIFpmmq/nEU1ZsE6Prihw7Ok2Wzu7OwguhbXgTpWXrd1nZKWqsQVsKi0VCuNNE3jrPAeMcOM328L3YzRaMRIpIW3h1vvKWm9C8DCiA8VlSTb0nI5SpIkTVMkI0hVXYspmJKItMTborLQRKSrDhayGA6H0yXlAsAFzPd91F9d4KtBLmg5a8CdHpQ1Vyw4ciNXISU9W9AAbkrT39aU1PMlroBFpZ5fdWj5hQIOLHgLF7JE5V9ZVGOsSmovS2B+XLxxgxo9mMnhLIKVinMpeZ1ngL4XXVVKXAHow0UVG7oGgO9bAZ5orwXT+Q0Gg48++mjhYUWJojz0zwJ7aZHElypfljTzm5Osa5IkCYIgeZ0j6GXlJd/2uUoAiyovuepIMzdPFj611i4wn2CuxKXJUmwsqj2ipDyINelCx8mCt7ozwXg87na7aZqyIABFlSiKtra2kmwXTIFfVPQPDjIBKqQbZku9sSgdmFcdnJhSeCmf5cd1ID6kHqBB7fDw8O7du6xgMhgMut0uaA7xZ7nXH0URQnR5BCvSlYvFXA+UxLfqKIlvClae+CDSNxoNyHT4enBwgHJTRtVVMVmaWdCcMQYJhWDBBKIoQoWjjY2NAlJELDNK4lt1lMQ3BStPfEmWK4XSGVMriwhKDcCWD/dA4N69e6enp/pZOp0O/tRoNCDrGVXg9QaiJL5VR0l8U7DyxCcqsx4wGAxc18WuttVqgcJEKf6SJOH5o9GoUqlIVtrt+PgY8T3GmPfff/8mC30l8a06SuKbgpUnvjRN4zhGHtB+v89ZByIj5TFqJ5f5iuFuPGKyPDkLd0BdLEriW3WUxDcFK098QO5esE40m03P85C2APtcVoFB+L32VqvVamDPXq9nspSohbV/CVES36qjJL4pWHnio0YPd9deVAzhSLIEy+dz56Yqwf/5mqGljq8kvtVFSXxTMDPiw+jX4WImK+E+V+h76UbO+764HW8K4bGA5503dGnEN5kt15X4uEDCW2AVtb3ILYr3giqDZdYiYpYSH89h0alZtXI6HMd59OgRw+kL8z1GhTaGG18Ppz9Nc/V6fTwex3GcSxSmcV2J73wa9zAMVygMXDP18fHx+vr6CjW+AMyM+IbDIbxAKDUUQ3zYw+JezABRgEiPZ8+lzF546PVMgKeAF+RNDlnDeObCxjqNKwG0OReylqbpotv1rpjVy50Z8QFa1CpM4mNlPyk2pysLxfHDNSA+uPvgQdCrYRjeQIkvyVKl47lQ1naGE2/e4OqFrzfcUnces5T4dI6pMAwfPXrU7/fjOQN3RCJS8s6LFy/mfV9SPEkBpuR533fe4IseDAatVuuyKqvEdSU+vE3J1NZ4xukF/5YKHJ/W2l6v9/Dhwymr1w3EjCU+AklfjTG1OQN3QWkrYnd3t5j74gH39vbwudlszvu+80a1WsWztNvt9fV1aE5vbLEhrSmLMwFwJYA2u64bZ24P1tpyq0vMjPiY7YtF2jFoCusILnFJVs1jrkiSBJFwIvL48WN8YCnS1YVWVqBS9XRcV+LzPA+kPxgM8ESrZRxwHEe/iE6nE18L49usMEuJL1ZVfrApKMB8zkVMsqLghYn06AR6CF6ngeW6Lt8dN30X4roSn2Q+PQxhrCkxf/nB1BvtdnuxLZktZvVyZ0Z8Nss6S5GBScznCsmWYpaVomfyvO/L12CtBdGj7vhKwyohGivKdEK/rsSXZt74tVrNFmvTYCUK9vwMhU1YrjA3sbYxDfCFSNNU5z3Cb4txF2OrbOYpjLD6mWD2Oj7f94MgcBynmOGC9/Hs2TNRqqgCbt3v9+E8yGohBU+POQFP4ThOEASQnVHV5LLzS+KbLXgvVFWdx54pVyT+tTUneQJ+UpjjxGoQ32QyWZTNC7IehkiSJAVvdSUbGXRqWWnkZoW8zjG7JL7ZAoOZRpUoiuanQhmPx7gRd0tT2lO8inM1iA9AUgCUGpCpHTorJEkShiGoh0OkmLJ1uhN832eCv1UHTDSYEv1+f/q+piS+eSCOY8722e4rMTXAYm8lqehisMXMr9UgPq5RaRbHivDVefudadmEcRTQTM0VnufhNSRJoq2f877vvKGnGfc4U1b7kvhmizAMaS5jndV4pkIf9HTcGD19+nT6+TwBMk1hXvqrQXwiEscxl4LhcGjm78RXq9U2NzdpbqMBCwfnCuStMsZUq9W1tTV8KOaR5wpaA7vd7psY0Urimzly8lSaxYDOCnhfYRgmSaILb10I/AkFealNmmFjpmA1iE8PDsdxoij65JNPDg8PZ+Zgdgn6/b61dmdnR+tocXCu0NlZ9Lic933nDV1Ct9VqoTNvYMjaoogvp7SZueIYegx8xofXsiqDlPmrYtToq0F8onowVlUvioExBlr5wlSwuckwmUyuTUiQ7/usZCKvmxgl8c0W3W5XJ7yAlny2hlSs1pPJJFZBHZedbLOKXXEcYw9eWG6r1SA+eIFJ4YlIgyAIgmB9fZ0pSHPWdxHxPC83OZMksdamacqSz3ycIAj4aj3P06siVGC5BRC/gopTq6J93wcLawUNPwdBEMdxqpKnau0JFaZ6RBaZf0FufCLSAogP7x2bTYwrhJxz4gRBwL611iLbo24epx7HhmYlxhfbLCDnvHDgOA7YBC8aJ3DlwxC9ffs2c/TSpy/OnHa1D5neBfM4TZ1vi5L4XoM0TSuVyng81oHZup0AlPdaT+F5Hpko99pEhEkcbRYWwj9BuMMjx3EMKuTP9/f38QHjuFqtDofD0WiEE7B5wXC31mq+gzIbphJcM+dJV6QQXRKfzJP49HJ4eHiIDyYrDahXaIaO8Ic6jAED6datWzyCUUStN8kCamjowfHDfr9/584dY8zGxgYvVa/X9e1YcjpJks3NTQqJRpVgrVarlUoFt+OvRMT3/XdZrUview1YKU2yrcFwOIzjGLG0xhgsXGhYHMdQQfLnEOB938cJ+KoVzNpNj47Z55/a9338Cm8dZc6TJIGmTON8qg/uO1jhiGspPIRwF5QKKQYl8cmcJT6MVa6XRuW7NsZgzcNB8IvJKmdx5PAIvvb7/e3t7SiKNjc3JVuAe73e0dERz4E0x5uOx+N2uz0ej7myIr2uiKytrfEg2DaKosFgsLu7i7adnp7evn2bSeEgOpisCITOY3g1q3RJfK/BeDyu1Wq4u97eYohQQ4HjxhgwEUQttFM3tdlsas9kGjpxfSyY9XqdGj3XdfE5jv//9q6sOW2kizabBAYbBzuTSk3VzMP8/z+UmpqppLJ6AQkQi5B0v4fz9amLsJ2JDRjBPQ8pWRFSS2qdvn2X0ysEdi8vL9F7Li8vxfsf4Ss5OzujqnvpSeo2IDqMbbrbtlur+FMY8cnufXwYoUXk8+fPNLWwISLw4eBIioCwD3CMxK+CIOh2u/jfm5ubUoeZzWZv377Ve/hz9jR9cgzbIpLnOU/LY3q9nnMO++fz+bt37zjv0cyQpimabVPd7QPX7ff7P378yL1m5HK5vL6+zvMcxprz+szYmE6nWDU8TdOrqysdinHOwQMShuFkMun3+/JQnyO90hYTr0QvPhg6mUza7fZ4PL66uhLVvXghtgf/hmE4nU7Z4Waz2eXl5devX3EAuilXPd8DjPhkl8RHv7N4LwrMNBGJoqjT6aBjO+fQUUVZXszvc87FcYwJJs3Ab9++8SpJkoAsZrOZthPZpWkZoNs7pbvRarW0Hi0tTW2ZFqpoXa/TYsS3c2RZNpvNzs/P2QzOC2BhYTDEwbpJyNsIgoAZAzc3N/CVBEHQbrdRKdloNOr1OqMNOC26rBZrQ1+EtViy5nB8s9nMsmw4HPZ6PVij4o3BMAzjOGbbcAaYmdgD0vzy5YtZfHvDHiw+5ANr7+1isWDkgXzUbrfb7XYQBPQyv3nzBj2Ep6J9V6/X9Z8YyIuiaLfbDZ/uip+AxdI0xc7CLzfIH9K1fXl5Cb9zqYsCi8UC4zHSXJxNdff2ldJ0Ej94xnGMl4FKb/SG+XzebDZhlyHswBvB6+efw+FQazFhKj2bzTCWzudznFC8+w+xlPfv33/8+FGUJy4Mw9Vq1e/3aceJHzk7nc5oNGI3FZGzs7Msy+7v7weDAVQecDwkXbHN6+4BRnyyl6iuiNze3mIYzrKsKArGOmBDrXx5EqwnJk5xrqrjYF+/fsUGXgotuyiKOCPBxEJUYTuH8B8/ftAw3HR253mui1D1XKdUU2zBjZ1DW+N42VEUnZ+fl1YdCsMQmlGwAfG//G2r1cKRILUgCJARzWENJ3FelE18P0uShGET+D7g5kNjnHOkVBGBTDSbfXZ2xpCu23BEop3Ys1wuuWfXz5Mw4pNdEh/eO8IF2KOVdEUtmsFCC/yJhpXynMFcWtqAP1mpss7RaES2JSdyecLCKwxR1JI5LmgDLo1UMBiSD95UaftE01mYBwfu53jC4EAURXrY0alJpboIvjPGZ/loNPGxAYZnAM8TBi+9jcVJEh96LCcB3G/YAzSHTiYTvZjiVrBz4iNbsTCQ45JW/oB/gVkden/utTB1Jl3hvadqdbQPAAARp0lEQVTj8bgoinq9ro3q/ahHHCVoCIhIrVb76ZM8VuIDJpOJtjL0wzHsGmmaao9TsdVJ5M6Jr/D2syYmOtGSJIH1rr+WNE11xagosT+kIGFbPxSS7Hg8Ru/MDM+CrBcz4fGeoDpLKcjAgq3Xfj+nAln3IWaqhnIr2JOPbzabgfhubm60x4Szd1i22bpsfZIkmi7zPOeQix+ORqM4jhHVhdejUEVghmeAj240Gg0GA50G8SCOlfjE+2cGgwHdcNav9gY8asi5Y8/nz59brda2zr9z4kOn2fx4nM9N//btGx38CB1o/ysSRBqNBvOKKX6liwQ1ydrI/BLgCetSAXnygz9W4uMtO187QSeMYQ+giTObzegcqxLxAZmP04MHmcCh8+OwgaQT8X46HSHR8fLMZ9JBfLTX62EykqbpHmSfjxs60zVbn3Rs4liJr/ARzFLim2Fv0FnW2KjYVLe08FAcxxcXF8zzQAYQuBycxZwgFIGJkgBD7VehIvris/AuLi5QSfPXX38552qGZ0HnpjJ3/wnUjpT4gDRNS2vVv/b7ORW4dV1h59zV1VWViE9/OSi+CcOQuSzOJ6zXajWu0Kh/5ZxjOYS+baY14V8k4sGcxL/bCKmfIvB4dfbA0zmoteMlPp3OQuvjtd/PqUBUx2Na4hZFOnZOfDoT8v+X9Oj3+zo3WNe48OROFRIy0IYr6hTlzfbwAPAgPs7MR1EgUoYrbqancg/Fo/BnURRI3ZT1ejWtjCDqy+dGFdNrLIFZXm+xof8OToY4E2L9OJtNU0DbFgQF0w4N7EiVTGAWPyedTqegG+00QW0Duhfpg/VkOAkXJo/juKQ2imyYB9uDX+lL8xY0C6MI8f7+HjtxPJT4mC7z5csXEaHDlb0EYZbN9RjhnUVTq+twNOKTKhAfQKOBnbMoCsqFAujPrBiZz+fMWzpMVJv4xuMxswHiOIaxysoY8SIQk8kEKjekRQYWIRNQq9WgryfegELt4WPtwWJAjUbj/Py8Xq9zcp1lGRNrHrzB+XxOa053I5wccinL5VL/XIvO61oiXSn5i4/59WHEJ1UgPp3NmqYpKy9FyT5qZ8Wm05a6uYeGahMfkKapXpeTTKEHnCRJOHvFO7u/v9ez2tFoxGeBMzArcLM9LHTVcUnafaVl5FGcmCQJkxgo882Opee2xMqvf6pvJ03TLMuwXd1QoBGfVIH4ZKMzTyaTPM83zb1C1YFBuo0a49Q7OChUm/iwMJ2otSzIbnhPYBbWpZU8dLJRNgC1WM4lH2sPwsTfv3+H5CwDxP+/bW+NircNeXdQGXDrEmM6q4tBm+Fw6LxsJC5N9R5N+lU098SIryLEB5qTdZVmYjweR1HE9uv8OO7UyxMeFKpNfADnjBhnZH22SwMQpWl6fV7xxIFjtAGFFTOesPicc4PB4OzsjA5Ep7SnYD+CDXW6VmmDf0ID8sFjHvw5VEj1vVcLRnxSBeKT9WBgvV6nZwkakXme6wXbiNlsBpNCF0QdFKpNfHme6zV0gCzL8D4QN9AOON5tFEXL5RJvkdI60G4UFW99gvhwHiyNlvlav8ViEQQBiRX8SHHt1Wp1dXU1m82iKGq321mWNZtN9A/ckY41x3H8559/3t/fZ1kWhiFmys653377jUbfntdg3iKM+KQKxMfAHTo5Wos+jyXhMfXRSxTpyvd6vb5PkcdfQrWJD4+Y5rSOA9AHB+erjpaKum2SFKgTQmA8z2PtCYKAamI4OUMrZGQRwaPkTHY4HEL1W0S63S4lTrE2Qq/XQ2VIv9/XDMgNEB9vky0/5NjZYzDikyoQH1AqsANgXvAzBAMul0tsxHF8fn7OJdleodE/Q7WJ7zHoBTpxBqx9p+/tv8u3csrJBjhf+eucgxozTH3kytBvOB6PIfCJcY/NZofgSqNgcC4EUxQFZriwOp1zNFedc/AbktlB1pUAHovp8RWVIj5gOp0GQVAUBec3YRhi3QJUN+FbA/Fh/YN6vU5t3UNDcZTEB/DecDCDAyWH6xMM+IQen14ITUSQBqgdIsz8xGGM/1IbBmtc4Y60k1F/CfRaEmANxoW1kXv4MD0+oELEF0XR9fW1HqvEB/f+/fffMAyRtPD+/XuoW/KYIAi4quoB4miJj6J7PMPmD/Wa30/dxoYeH1bbEE9nWuBPs6ouAcbC9YUvBGYzaB7qHCgkY5eeDNTt9TGs5XiOQsVrQEyPT0QqRXwi4pzr9/tcNxXs1mg03r9/75xDLUcQBKV1GsbjcbPZ1OupHhSOlvhEJIoimhhJknDBislkAlMOr+oJ7ntMj0+TFI1BytzneX53d0dh50wlKotaoI+5OEjNw04u7ifKi1dagJwVHSVF1cOH6fEBVSE+xnARJyxVECHfXkSKotAuC3xc8uSQ9uo4TuJLkkT7/vVs0TlHmZY8zx/MHC41SV8LTLparajkxbxiRIeZTa3BeDGL4cBccItguxT1L7xyUaZypHXP4wFIya4ExPT4RKQ6xCeqLhN/Is1Az0j0UM14rniD4MFlgw4Bx0l8PFsURUVR9Ho98XPDXq+XZRlrKuTJ+ocn9Pj4K8yX+fVyQhrHMQ7mI+bHLyLT6ZTVFzgAdhwPwNSYP6T3ENdKkgTm3sH6UB6D6fFJdYhvOBxyPGZP44b2L8/nc9wIaj0pefJT5bHXwtESH4oEGS5wXoFKvG2F1/bT4MCDenwABGBQX4GALDKbEMntdruII+tsPhxWq9WgAuacw2mBwWDA0g7n3PX1dWkDCMPw7OyM1cfNZnO36mXbg76LU9bjqwrxAWjhaDSC+cYiKFaIcspC31GWZUhI0K6eg8JxEl/hRXIAJglnvspVlMrT0z0vf0iPT5+WF+ILRjSjFLLUjjxm2+hLZ1nGKBiOJCnrsnC2ATsZtKkE0H7T4ysqQnyFn7uUdnLewzpcvYAv5QwOGcVREt+28Fh7CL1cLzV58K3SLUK9KWS9awm/x1CKuuiDmciCS2tOZHnQarViQJlnQyPRZXVJ36tQiSUwyyERH4ksyzLY44UfULG/pOArPrAGg05/GqWRTCsJMV9Vf7zs23B27y09y4jvOe0RkSiK+I61ex6vluYeXB6aH3mqJ7LYkCKAmwWBIpkG/wu7VY+xk8mEhXcIwGFBdO5crVakUeRboQ304Pw0yLNdGPHJIRGf+N4YBAG1M7jz06dPsj4jeTAcJ+vuo5IyGz8WnLnRaOiEs8e+pt3BiO857eE7o4MD3QVf6ffv3/G/pZ6RedEXcNNPcX9/j+PTNNV+SV0ZQvYsDZX8nNj/dGPgfMEd6YjK3mDEJ4dEfMhGwJe/WCx0Xyp8vZAu0nBewVf818FVbiAA3O12gyDArX369AkJZDi+Vqvd3d21222cnJNl5sYa8R0u8emgBI4sfZB///23KJkDeSin6YlbKAWa8VtOmUvy31qRlJE13Xc5vwDfwWXDfBpea58qGkZ8ckjEJyJRFDH3GNE5sBtmsm5dQUOUi9b56slGo5GplbmTJGHqmPhpsvPrvooX9ZD1lMC9dUIjvue05+zsjFL1HP10gbD41BO9hgbOsFgsQD1P3wLNQ0xp0YGm0ymusjkzxTkzv+6HeBkuxnCcEjigACr91lprdw8w4pNDIj60p9VqoXugd1FQY7FYcMGGer0OtqrVasi4qtfrJEfQVqfTwTwDRZk6QwuryqGAF5pDnM3IfhOejfie0x5efTqd4u0SSNTIvCqMKEUDpjUxqeWJS4dhyAOcUjY9Pz/n4Ikexi+HFiiTrvM8R/OccxjGxStnOLUAE2pI9qnnbMQnh0R8cJhkSvmxVquhYXhHvV7vw4cPURQNBoPlcjmZTDDzvb29xYasG4M0/fTCW7hfupt5PINvK7U0za5hxPec9oDdkGEHJwXlVXTcCglNOJXuH7qq8UHgmNls1ul0UAoShiH7JeYXOD/e1u3tLdeBx9RD98J//vlHX65er2OM7fV64/F4z05lwIhPDon4RNllzrl2u41WwQCkHhrpDH9ifoo5snOu3+9DU4M5raJEMOfz+fX1dSnm22w2YRsy7fm/aya9EEZ8z2kPX2qpGbDs6vV6GIZUYQFFXl5eZlk2Go1ggkGx6rHr4idIcgaTzmYzUBt4Fh0LiyLjJ/V6HWUqIrJardrtdlEU8/kcXuQ0Tev1OhtPTS38lmK523x2T8KITw6J+PAiqOGmHSYoNyIP6jhYobJldaYL+xWFcjnX4WpZ+CHr2fVJ9sN91SA+1rpmfgXb/RAfRjBUvCEywBayJUEQaKVGbPNfhrogbiHrMwLtj8MGeY3ZJ6xsLTY0MMT3EmRZ03WIqa5+mAi6YQBvtVoYSHhRBKn3M9XVHgBd2vkgjpX4Mr9QTOk9HgE420CkWA5YSoMFCDomsxVsjfgABDTRyrdv3+4nCQNePJ2UNB6P+YzoTWO2uvamiZ8Uw4KD2T+fz1GXxpXbebC+I+chIigdEZE4jvv9PisfnHNv3rxJkgShD1yITwzNAGuLSLPZ7Ha7INZardbpdJrNJtQWxOdq7Rqbq7k/XWt8rMQnStFWVNTrldv0YqDwPEmSoihms9k+nSe/hFKvm8/nURQdosUnIkmSkBeGw2Gz2RyNRvmOUQrh6xwRjGPgIAwdaZrqrOA4jkux+dIeZtJ1Oh1ZV8nX2vd5nutyC1F6Vowsi8hoNIJ4QZIkCATjWsPhkBXjMAnJPnCs8MxYQH2n4HPA4iSysRx7CcdKfIvFAn0mCAJG+cW/7upCNl5QnueIbxwUSHyj0YiswpW1X45tEh8Fv+BZ4MxxD9D2nahlfMUrkYmKSZGzWFmxWq3iONYJKNTFwp/apQIiQ8UFYm2laiG+M/Yw8J2s9znk+lH6JU1T0BzOpiuOqVWzB05hsnSWZa1W66dJW8dKfAD8v3wgRzPb5ezhYG3YTXWM7YYNtkZ87Pd3d3c8Zj+PdT6f//HHH1x9XJSfcTwec2eupuTL5ZKLaZQKKpbLZcnlkavwmawb4aCJOI5BTGRPGAusDwFYwoFsA/1fjF2gspLPDS3BXextVqKjh9g+QT0+ev0f9HJUGuAUaJHqj+LQgO8X20hiZd7Fy7E14iupe7LH7NokxsujN4qEogfn6XSa+RV/9Py3lI50e3vLn9OIAw3FcQwXISa/+pVwAzYaRyoSJX6LbRAueUSvAYLHSE/lbDYDq2oeQQ3vToHHyAAOrvuEONWxEl+p3ot63bt+/ruG+M6v63D34EL5VaBtGPI5CzlEi09E0jQlCywWi99//720hvGOsFqtdN5JURSlki953EM/Go0waWVKOuLCLIcsjYqaApIkofIKZbVEJI5jVuzSTOAEGX9irqEVrlgdTNkCXg7O0/0IRmpNsG63y9DKYzhW4hOvX9vtdvkEKqcpuwnt8pZ1j8pBofQJiMjd3V2/39/W+bdGfPiwYTFBd8StS3juAUiac85dXFwgLIuwKfQ1EbfFfipuvnv3zjkXBAGObLfbWBkSkqjO65Jq6Jqey8tL7GQUuNVqcQGXq6srfS19WiQAUtO0VqvhWeHqBKRMcYbNluwCbBI0XPHSTzaPT/w6PqWHU12g3Ajb6Mn76Ve/CnwpnU7H+f6vO+TLseV0FsOp4ViJz3DcMOIzvAhGfIYqwojP8CIY8RmqCCM+w4tgxGeoIoz4DC+CEZ+hijDiM7wIRnyGKsKIz/AiGPEZqggjPsOLYMRnqCJeRHyyvgi34QTh1DohIjKdTvdTYWIwvATPyYTO83wwGHDVJRGJ43jHpXuGA8XFxQX6wGQyORrxEsPR4znE9/HjR+fc27dvUVzSaDTCMGwYThLOuQ8fPqBj5F4ivCR4YzAcGn6Z+HRNbu6rdLFOo+E0gY5BffBV9Sv5DUePfSyLYTAYDAcFIz6DwXByMOIzGAwnByM+g8FwcjDiMxgMJwcjPoPBcHIw4jMYDCcHIz6DwXByMOIzGAwnByM+g8FwcjDiMxgMJwcjPoPBcHIw4jMYDCcHIz6DwXByMOIzGAwnByM+g8FwcjDiMxgMJwcjPoPBcHIw4jMYDCeH/wGGcTkGaqzIUQAAAABJRU5ErkJggg==" alt="" />

2  安全机制程序示例

本节通过实例说明访问令牌和安全描述符访问控制列表等内容和程序设计的方法

列举进程访问令牌内容和权限;

修改进程的权限;

显示安全描述符的内容,列举DACL;

修改对象的安全描述符。

2.1 列举进程访问令牌内容和权限

#include <windows.h>
#include <iostream>
#include <WinBase.h>
#include <Sddl.h> int GetUserSid()
{
HANDLE hProcess = GetCurrentProcess();
if (!hProcess) {
return ;
} HANDLE hToken;
if (!OpenProcessToken(hProcess, TOKEN_QUERY, &hToken) || !hToken){
CloseHandle(hProcess);
return ;
} //User
DWORD dwTemp = ;
char tagTokenInfoBuf[0x500] = { };
PTOKEN_USER tagTokenInfo = (PTOKEN_USER)tagTokenInfoBuf;
if (!GetTokenInformation(hToken, TokenUser, tagTokenInfoBuf, sizeof(tagTokenInfoBuf), &dwTemp))
{
CloseHandle(hToken);
CloseHandle(hProcess);
return ;
} LPTSTR MySid;
ConvertSidToStringSidA(tagTokenInfo->User.Sid, &MySid);//想要得到的值是LPTSTR类型,所以传递他的指针,即&MySid
printf("User SID:%s\n", MySid);
LocalFree((HLOCAL)MySid); //Owner
memset(tagTokenInfoBuf, , 0x500);//
PTOKEN_OWNER pOwner = (PTOKEN_OWNER)tagTokenInfoBuf;
if (!GetTokenInformation(hToken, TokenOwner, tagTokenInfoBuf, sizeof(tagTokenInfoBuf), &dwTemp))
{
CloseHandle(hToken);
CloseHandle(hProcess);
return ;
}
LPTSTR OwnerSid;
ConvertSidToStringSidA(pOwner->Owner, &OwnerSid);
printf("Owner SID:%s\n", OwnerSid); //PTOKEN_PRIVILEGES
//Group TokenGroups
memset(tagTokenInfoBuf, , 0x500);
PTOKEN_GROUPS pGroup = (PTOKEN_GROUPS)tagTokenInfoBuf;
if (!GetTokenInformation(hToken, TokenGroups, tagTokenInfoBuf, sizeof(tagTokenInfoBuf), &dwTemp))
{
CloseHandle(hToken);
CloseHandle(hProcess);
return ;
}
for (int i = ; i < pGroup->GroupCount; i++)
{
LPTSTR GroupSid;
ConvertSidToStringSidA(pGroup->Groups[i].Sid, &GroupSid);
printf("Group-SID%d:%s\n", i, GroupSid);
} CloseHandle(hToken);
CloseHandle(hProcess); return ;
} int main()
{
GetUserSid();
system("pause");
return ;
}

运行就会输出结果,也可利用process explorer查看:

aaarticlea/png;base64,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" alt="" />

2.2修改进程的权限

在获得进程的权限之后,还可以对进程的权限进行修改,以使进程可以进行特定的系统操作。

LookupPrivilegeValue:The LookupPrivilegeValue function retrieves the locally unique identifier (LUID) used on a specified system to locally represent the specified privilege name.

AdjustTokenPrivileges:The AdjustTokenPrivileges function enables or disables privileges in the specified access token. Enabling or disabling privileges in an access token requires TOKEN_ADJUST_PRIVILEGES access.

#include <windows.h>
#include <stdio.h>
#include <winbase.h> BOOL SetPrivilege(
HANDLE hToken, // access token handle
LPCTSTR lpszPrivilege, // name of privilege to enable/disable
BOOL bEnablePrivilege // to enable or disable privilege
)
{
TOKEN_PRIVILEGES tp;
LUID luid; if (!LookupPrivilegeValue(//查找privilege对应的LUID
NULL, // lookup privilege on local system
lpszPrivilege, // privilege to lookup
&luid)) // receives LUID of privilege
{
//printf("LookupPrivilegeValue error: %u\n", GetLastError());
return FALSE;
} tp.PrivilegeCount = ;
tp.Privileges[].Luid = luid;
if (bEnablePrivilege)
tp.Privileges[].Attributes = SE_PRIVILEGE_ENABLED;
else
tp.Privileges[].Attributes = ; // Enable the privilege or disable all privileges. if (!AdjustTokenPrivileges(
hToken,
FALSE,
&tp,
sizeof(TOKEN_PRIVILEGES),
(PTOKEN_PRIVILEGES)NULL,
(PDWORD)NULL))
{
printf("AdjustTokenPrivileges error: %u\n", GetLastError());
return FALSE;
} if (GetLastError() == ERROR_NOT_ALL_ASSIGNED)
{
printf("The token does not have the specified privilege. \n");
return FALSE;
} return TRUE;
} int main()
{
HANDLE hToken;
BOOL bEnablePrivilege = TRUE;
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken);
SetPrivilege(hToken, "SeSecurityPrivilege", bEnablePrivilege);
system("pause");
return ;
}

参考:https://msdn.microsoft.com/en-us/library/aa446619%28v=vs.85%29.aspx

2.3获取安全对象的安全描述符

GetFileSecurity:The GetFileSecurity function obtains specified information about the security of a file or directory. The information obtained is constrained by the caller's access rights and privileges.

SECURITY_DESCRIPTOR结构:The SECURITY_DESCRIPTOR structure contains the security information associated with an object. Applications use this structure to set and query an object's security status.

A security descriptor includes information that specifies the following components of an object's security:

相关的操作有很多:

aaarticlea/png;base64,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" alt="" />

可以利用函数GetSecurityDescriptorSacl获取访问控制列表。

参考:https://msdn.microsoft.com/en-us/library/aa379561%28v=vs.85%29.aspx

AccessCheck:The AccessCheck function determines whether a security descriptor grants a specified set of access rights to the client identified by an access token.

GENERIC_MAPPING structure:The GENERIC_MAPPING structure defines the mapping of generic access rights to specific and standard access rights for an object. When a client application requests generic access to an object, that request is mapped to the access rights defined in this structure.

#include <windows.h>
#include <iostream>
#include <Sddl.h> BOOL AccessSecurityDescriptor()
{
HANDLE hToken;
DWORD dwSizeNeeded = 0x100;
LPCTSTR lpPath = "D:\\Coding\\test\\HW\\HW\\Debug\\HW.exe";
//SECURITY_DESCRIPTOR PISECURITY_DESCRIPTOR psd = NULL;
psd = (PISECURITY_DESCRIPTOR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwSizeNeeded * );
SECURITY_INFORMATION si = OWNER_SECURITY_INFORMATION
| GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION;
//利用GetFileSecurity获取指定文件的安全描述符表
if (GetFileSecurity(lpPath, si, psd, 0x100, &dwSizeNeeded))//获取Security Descriptor大小
{ }
else
{
return FALSE;
}
if (GetFileSecurity(lpPath, si, psd, dwSizeNeeded, &dwSizeNeeded))
{ }
else
{
return FALSE;
} if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &hToken))
{
return FALSE;
} HANDLE hImpersonatedToken = NULL;
if (DuplicateToken(hToken,
SecurityImpersonation, &hImpersonatedToken))
{
DWORD dwGenericAccessMask = GENERIC_READ | GENERIC_WRITE;
GENERIC_MAPPING genMap;
PRIVILEGE_SET privileges = { };
DWORD grantAccess = ;
DWORD privLength = sizeof(privileges);
BOOL bGrantAccess = FALSE;
//将通用权限控制标志和特定类型对象权限控制标志挂钩
genMap.GenericRead = FILE_GENERIC_READ;
genMap.GenericWrite = FILE_GENERIC_WRITE;
genMap.GenericExecute = FILE_GENERIC_EXECUTE;
genMap.GenericAll = FILE_ALL_ACCESS;
// Use the GENERIC_MAPPING structure to convert any
// generic access rights to object-specific access rights.
//映射通用权限控制标志
//即检查当前进程对某文件是否有读权限的时候,我们必须要调用MapGenericMask()把GENERIC_READ,GENERIC_WRITE,GENERIC_EXECUTE等等
//这类通用权限控制标志映射成该类型的对象特有的权限控制标志,对于文件就是FILE_GENERIC_READ,
//FILE_GENERIC_WRITE等等。
MapGenericMask(&dwGenericAccessMask, &genMap); if (AccessCheck(psd, hImpersonatedToken,
dwGenericAccessMask, &genMap, &privileges, &privLength, &grantAccess, &bGrantAccess))
{
//PISECURITY_DESCRIPTOR pSecurityDescriptor=NULL;
SECURITY_DESCRIPTOR_CONTROL Control;
DWORD dwRevision;
if (GetSecurityDescriptorControl(psd, &Control, &dwRevision))
{ }
else
{ }
PSID pOwner=NULL;
BOOL bOwnerDefaulted;
if (GetSecurityDescriptorOwner(psd, &pOwner, &bOwnerDefaulted))
{
/*printf("Owner:%s\n", pOwner);*/
LPTSTR OwnerSid;
ConvertSidToStringSidA(pOwner, &OwnerSid);
printf("Owner SID:%s\n", OwnerSid); }
else
{ }
return TRUE;
}
else
{
return FALSE;
}
}
} int main()
{
if (AccessSecurityDescriptor())
{
std::cout << "Access allow!" << std::endl;
}
else
{
std::cout << "Access denied!" << std::endl;
} system("pause");
return ;
}

参考:《How AccessCheck Works》https://msdn.microsoft.com/en-us/library/windows/desktop/aa446683%28v=vs.85%29.aspx

http://pnig0s1992.blog.51cto.com/393390/908495/

2.4修改安全描述符

对不同对象的安全描述符的修改使用的API函数不同。如果是文件则使用SetFileSecurity。

其他参考:http://www.cnblogs.com/xiaojinma/archive/2012/12/07/2806584.html

http://www.tuicool.com/articles/V7reEb

http://www.cppblog.com/weiym/archive/2013/08/25/202751.html?opt=admin

Windows Access Token的更多相关文章

  1. OAuth2.0 微博登陆网站功能的实现(一)获取用户授权及令牌 Access Token

    在登陆一些网站的时候,可以选择登陆方式为第三方登陆,例如微博登陆,以爱奇艺为例,进入首页,点击 ”登陆“,会弹出登录框: 除了本站登陆外,还可以选择其他第三方登陆,比如微博登陆.QQ 登陆.微信登陆等 ...

  2. Incorrect username or password ( access token )解决

    Q:Git提交时,给出提示Incorrect username or password ( access token ) K: 此处是用户名或者密码有误,建议解决方法两种.具体看哪一种可行,可试. 第 ...

  3. 工作笔记—新浪微博Oauth2.0授权 获取Access Token (java)

    java发送新浪微博,一下博客从注册到发布第一条微博很详细 利用java语言在eclipse下实现在新浪微博开发平台发微博:http://blog.csdn.net/michellehsiao/art ...

  4. [2018-05-27]配置VSTS认证方式使用Personal Access Token

    本文介绍下如何配置VSTS(visual studio team service,其实就是微软SaaS版的TFS)通过Personal Access Token访问其下的Git代码库. 问题 使用gi ...

  5. ASP.NET OAuth:解决refresh token无法刷新access token的问题

    最近同事用iOS App调用Open API时遇到一个问题:在access token过期后,用refresh token刷新access token时,服务器响应"invalid_gran ...

  6. ASP.NET OAuth:access token的加密解密,client secret与refresh token的生成

    在 ASP.NET OWIN OAuth(Microsoft.Owin.Security.OAuth)中,access token 的默认加密方法是: 1) System.Security.Crypt ...

  7. Web API与OAuth:既生access token,何生refresh token

    在前一篇博文中,我们基于 ASP.NET Web API 与 OWIN OAuth 以 Resource Owner Password Credentials Grant 的授权方式( grant_t ...

  8. 基于DotNetOpenAuth的OAuth实现示例代码: 获取access token

    1. 场景 根据OAuth 2.0规范,该场景发生于下面的流程图中的(D)(E)节点,根据已经得到的authorization code获取access token. 2. 实现环境 DotNetOp ...

  9. View and Data API tips: 缓存Access Token

    对于云API服务,常见的方式就是按照API调用次数收费,某些API调用也就有某些限制,比如在特定时间内只允许调用指定的次数以免造成滥用.虽然Autodesk的view and Data API目前还没 ...

随机推荐

  1. Javascript 数字保留2位小数

    整理使用Javascript函数将数值保留两位小数: 1.num.toFixed(2) //进位 2.(Math.round(num * 100) / 100).toFixed(2) //进位 3.( ...

  2. 找轮转后的有序数组中第K小的数

    我们可以通过二分查找法,在log(n)的时间内找到最小数的在数组中的位置,然后通过偏移来快速定位任意第K个数. 此处假设数组中没有相同的数,原排列顺序是递增排列. 在轮转后的有序数组中查找最小数的算法 ...

  3. sqlserver 优化相关

    http://www.cnblogs.com/studyzy/archive/2008/11/24/1339772.html http://blog.csdn.net/dba_huangzj/arti ...

  4. React学习笔记-03 state

    每一个组件都有状态,比如一个开关,开 和 关,都是一种state.那么react是怎么管理它的state的? React 把用户界面当做状态机,可以轻松的让用户界面和数据保持一致.用户只需要更新组件的 ...

  5. Android非常有用的开源库介绍整理

    Android开源库 自己一直很喜欢Android开发,就如博客副标题一样,我想做个好的App. 在摸索过程中,GitHub上搜集了很多很棒的Android第三方库,推荐给在苦苦寻找的开发者,而且我会 ...

  6. loadrunner 计数器

    http://wenku.baidu.com/link?url=oN2kBiABHE1xJmbmZdOmlTCz0sJ8aL3i-hVGiBjAtw-epUW7qrk4f2mAqdOeK5xXw8Sk ...

  7. jQuery第三章

    一.jQuery中的DOM操作 一般来说,DOM操作分为3个方面,即DOM Core核心.HTML-DOM和CSS-DOM 1.DOM Core JavaScript中的getElementById( ...

  8. 《高性能Javascript》读书笔记-3

    第三章 DOM编程 把dom和js 各自想象为一个岛,他们之间用收费的桥梁链接,每次访问dom都必须途径这座桥收取过路费,访问次数多费用就高了.所有必须减少来往次数. innerHtml 与dom比较 ...

  9. HDU 1907 John(取火柴博弈2)

    传送门 #include<iostream> #include<cstdio> #include<cstring> using namespace std; int ...

  10. hdu_5585_Less Time, More profit(二分+最大权闭合图)

    题目链接:hdu_5585_Less Time, More profit 题意: 有n个工厂,每建一个工厂要花费vi,需要时间ti,然后有m个商店,每个商店需要在指定的k个工厂中进货,才能盈利,如果其 ...