????

Your IP : 18.217.142.228


Current Path : C:/Windows/System32/
Upload File :
Current File : C:/Windows/System32/Microsoft.Uev.CmUtil.dll

MZ����@���	�!�L�!This program cannot be run in DOS mode.

$PEL�w	��!08�V ` �IZ`��VO`T��U8  H.text�6 8 `.rsrcT`:@@.reloc�@@B�VHil�t
`H{
*:(
}
*0#u
,(
{
{
o
**v ~,@j )UU�Z(
{
o
X*0:rp�%{

%q�-&+�o
�(
*{
*:(
}
*0#u
,(
{
{
o
**v �7T� )UU�Z(
{
o
X*0:r1p�%{

%q�-&+�o
�(
*{
*{
*V(
}
}
*0;u
,/(
{
{
o
,( 
{
{
o!
**� 8�� )UU�Z(
{
o
X )UU�Z( 
{
o"
X*0brkp�%{

%q�-&+�o
�%{
%q�-&+�o
�(
*{#
*{$
*V(
}#
}$
*0;u
,/(
{#
{#
o
,( 
{$
{$
o!
**� ���o )UU�Z(
{#
o
X )UU�Z( 
{$
o"
X*0br�p�%{#

%q�-&+�o
�%{$
%q�-&+�o
�(
*{%
*{&
*V(
}%
}&
*0;u	
,/(
{%
{%
o
,( 
{&
{&
o!
**� I�� )UU�Z(
{%
o
X )UU�Z( 
{&
o"
X*0br:p�%{%

%q�-&+�o
�%{&
%q�-&+�o
�(
*{'
*{(
*V(
}'
}(
*0;u

,/(
{'
{'
o
,( 
{(
{(
o!
**� c�1 )UU�Z(
{'
o
X )UU�Z( 
{(
o"
X*0br�p�%{'

%q�-&+�o
�%{(
%q�-&+�o
�(
*{)
*{*
*V(
})
}*
*0;	u
,/(
{)
{)
o
,( 
{*
{*
o!
**� %R�� )UU�Z(
{)
o
X )UU�Z( 
{*
o"
X*0br�p�%{)

%q�-&+�o
�%{*
%q�-&+�o
�(
*{+
*{,
*V(
}+
},
*0;
u
,/(
{+
{+
o
,( 
{,
{,
o!
**� ��Q )UU�Z(
{+
o
X )UU�Z( 
{,
o"
X*0br$p�%{+

%q�-&+�o
�%{,
%q�-&+�o
�(
*{-
*{.
*V(
}-
}.
*0;u

,/(
{-
{-
o
,( 
{.
{.
o!
**� �� )UU�Z(
{-
o
X )UU�Z( 
{.
o"
X*0br�p�%{-

%q�-&+�o
�%{.
%q�-&+�o
�(
*{/
*{0
*V(
}/
}0
*0;u
,/(
{/
{/
o
,( 
{0
{0
o!
**� �<�� )UU�Z(
{/
o
X )UU�Z( 
{0
o"
X*0brp�%{/

%q�-&+�o
�%{0
%q�-&+�o
�(
*{1
*{2
*V(
}1
}2
*0;
u
,/(
{1
{1
o
,( 
{2
{2
o!
**� ���1 )UU�Z(
{1
o
X )UU�Z( 
{2
o"
X*0br>p�%{1

%q�-&+�o
�%{2
%q�-&+�o
�(
*{3
*:(
}3
*0#u
,(
{3
{3
o
**v �U� )UU�Z(
{3
o
X*0:r�p�%{3

%q�-&+�o
�(
*0v(
-r�ps4
z}(�}o�o5

+'(6
{(7
(8
o9
}(:
-���o;
�*34g0�(
-r�ps4
z(�}{r�po�o9
}{rpo�o9
}{rLpo�o<
o9
}{rxpo�o9
}{r�po�o9
}{r�pr�po9
}*N(
(�}*{*0C{r�p(=
-{(�*r�ps>

{o?
r$po@
*0[{r:p(=
-$(A
(�%{�(
s[zr:ps>

{o?
r|po@
*0�{r�p(=
-$(A
(�%{�(
s[zr�ps>

{o?
r�po@
r�p(B
,Br�p(B
,5rp(B
,((A
(�%{�%�(
s[z*0[{rp(=
-$(A
(�%{�(
s[zrps>

{o?
r$po@
*(C
*"(D
*&(E
*&(F
*(N*"(O*&(P*&(Q*(N*"(O*&(P*&(Q*(N*"(O*&(P*&(Q*(N*"(O*&(P*&(Q*(N*"(O*&(P*�(A
(��%�%�(
(O*�(A
(��%�%�(
(P*&(Q*{*"}*0�(�-rzp(G
o
sH
z-r�p(G
o
sH
z(�(ir�p(�r�p(�(I
-+(A
(��(
(�(I
-+(A
(��(
(�(I
,	(�(J
(�(�(�(�(�(�(�(�(n*0�-r,p(�sH
z(K

sL
sM
%(�oN
%(�oN
(hoO

+#(P
o�oN
o�oN
(Q
-���o;
�(�oR
oS
�/(A
(��%�%oT
�(
sU
z*K0{��/ 0�~"rDp(V
sW

oO
+X(P

~"r`p(V
�%r�p(X
	o�sY
�%r�p(X
	o�sY
�sZ
o[
(Q
-���o;
�~"rDp(V
o\
~I%-&~H�s]
%�I(+(+o`
*e�0s
}M{M~"rDp(V
o\
�sa
~J%-&~H�sb
%�J(+sd
oe
+of
og
oh
oi
&oj
-��,o;
�sd

oO
+(P
			o�oi
&(Q
-���o;
�	(+(+om
�{M(l,{M(�*f)��$�0�~"rDp(V
o\
~K%-&~H�sa
%�K~L%-&~H�sn
%�L(+
(+-	(l+(m(�(�(p
(�(�(�(p
(�*�(A
(t,(�+(��%(vo��(
*0^(t,$(A
(��%(vo��(
*(A
(��%(vo��%(vo��(
*r�p*{*"}*{*"}*{*"}*{*"}*{ *"} *{!*"}!*0}(�(s(u(�(rs�(w(A
r*p�%(vo��(
(�(A
r@p�%(vo��(
(�(A
(��%(vo��(
(�(A
(��%(vo��(
(�(I
,	(�-2(�(y(v(�({(v(�(}+0(�(y(v(�({(v(�(}(J
(�(�(�(�(�(�(�(�*0�-rdp(�sH
z(A
r~p�%(vo��(

(p
sL
sM
%(�oN
%(�oN

(�	oR
oS
�+(A
(��%oT
�(
sU
z*dx+ 0Vr�p(=
-)(A
(��%(vo��(
s[zr�ps>

o?
r$po@
*0(qr�p(�
(�*0(qr�p(�
(�*0g(qr�p(�
rp(=
-)(A
(��%(vo��(
s[zrps>
o?
r$po@
*0Vr�p(=
-)(A
(��%(vo��(
s[zr�ps>

o?
r|po@
*0(qr�p(�
(�*0(qr�p(�
(�*0A
(|oMr(	p(q
`
(zoJ(�(�(B
`
(zoK(�(�(B
`
(|oM(�(�(B
`
(|oJ(�(�(B
`
(|oK(�(�(B
`
,(�(�(�(qr�p(zoI(�(�(qr�p(|oI(�(�(x(�(�(q(o(�(�(q(p(�*0`(�(q(z(|(o(p(�(�(q(((�(�(x(�(�(�*0�(�~"r�p(V
o\
~O%-&~N�s]
%�O(+
(+-(�+(�(�(�(�(p
(�(�(�(�(p
(�*0�(r
(A
r.	p�%�(
os
-(A
(��%�(
s[zst
ou

�
,o;
�(I
,(A
(��%�(
s[z*M	V
0!(v
r|	p(p

(w
-(x
&*00-(s4
z(y
sz

o{
�
,o;
�*
%
0s-(s4
z~"r�	p(V
o|
~Q%-&~P�!s}
%�Q(+
~R%-&~P�"s~
%�R(	+(
+*0s-(s4
z~"r�	p(V
o|
~S%-&~P�#s�
%�S(+
~T%-&~P�$s�
%�T(+(
+*0�-(s4
z~"r�	p(V
o\
~U%-&~P�%s�
%�U(
+~V%-&~P�&s�
%�V(+
~W%-&~P�'s�
%�W(+(
+*0�-(s4
z~"r�	p(V
o\
~X%-&~P�(s�
%�X(
+~Y%-&~P�)s�
%�Y(+
o�
+1o�
oh
(A
(�
X(A
(�

	o�
�oj
-��
,o;
�*s=�
0� -(s4
zs�

~#r�	p(V
o�
~Z%-&~P�*sa
%�Z~[%-&~P�+s�
%�[(+o�
+)o�
o�
oh
o�
oh
o�
�oj
-��,o;
�~#r�	p(V
o�
~\%-&~P�,sa
%�\~]%-&~P�-s�
%�](+o�
+)o�
o�
oh
o�
oh
o�
�oj
-��,o;
�r�	p(�
	(J
o5
	8�	(6

sK
}{~$r�	p(V
o�
�Ls�
(
+u,%-&(+

(+,
(+
(8
o�
+jr�	p(X
�%r�	p(X

(7
sY
�%(�
r
p(V
r
psY
�%r$
p(X

(8
s�
�sZ
o[
	(:
:����	�o;
�(y
sz
o{
�,o;
�*4u6�6Nu�g��0S!-(s4
z~#r0
p(V
�%~#rB
p(V
r`
p(X
rn
psY
s�
�%~#rB
p(V
r`
p(X
r�
psY
s�
�%~#rB
p(V
r`
p(X
r�
psY
s�
�%~#rB
p(V
r`
p(X
r,psY
s�
�%~#rB
p(V
r`
p(X
r`psY
s�
�%~#rB
p(V
r`
p(X
r�psY
s�
�%~#rB
p(V
r`
p(X
r�psY
s�
�%~#rB
p(V
r`
p(X
rpsY
s�
�%~#rB
p(V
r`
p(X
rbpsY
s�
�%	~#rB
p(V
r`
p(X
r�psY
s�
�%
~#rB
p(V
r`
p(X
r
psY
s�
�%~#rB
p(V
r`
p(X
rX
psY
s�
�%~#rB
p(V
r`
p(X
r�
psY
s�
�%
~#rB
p(V
r`
p(X
r�
psY
s�
�sZ

~#rp(V
o\
~^%-&~P�.sa
%�^~_%-&~P�/s�
%�_(+~`%-&~P�0s�
%�`~a%-&~P�1s�
%�a(+o�
+o�

	o`
�oj
-��
,o;
�*,H
0"-(s4
z-(s4
z~"r�	p(V
o|
~b%-&~P�2sa
%�b~c%-&~P�3s�
%�c(+~d%-&~P�4s�
%�d~e%-&~P�5s�
%�e(+
o�
++o�
o�
oIo�
o�
oLo�
�oj
-��
,o;
�*�7�
0�#-(s4
z~"r\p(V
o\
~f%-&~P�6s]
%�f(+
(+-Y~"rhp(V
o\
~g%-&~P�7s]
%�g(+(+~"r\p(V
sW
o�
~"r\p(V
o\
~h%-&~P�8s]
%�h(+(+*0\$~#rzp(V
o\
~i%-&~P�9s�
%�i(+~j%-&~P�:s�
%�j(+~k%-&~P�;s�
%�k(+~l%-&~P�<s�
%�l(+~m%-&~P�=s�
%�m(+~n%-&~P�>s�
%�n(+~o%-&~P�?s�
%�o(+
o�
+)o�
o�
oh
(A
(�
-	o�

�oj
-��
,o;
�*	*5N
0�%-(s4
z,,-(s4
z(�
�/o

~"r�	p(V
o\
~p%-&~P�@s�
%�p~q%-&~P�As�
%�q(+r�pr�p
o�
+Mo�
		o�
o
r�p(�
-
	oh
+!	o�
o
r�p(�
-	oh

oj
-��,o;
�(�(�~#r�p(V
�%r�p(X
(A
r�p�%�(
sY
�%r�p(X
r�psY
�%r�p(X
r psY
�%~#r�	p(V
�%~#r,p(V
�%rDp(X
sY
�%rNp(X
(A
rdp�%(�
�/�(
sY
�sZ
�%~#rrp(V
�%rDp(X
sY
�%rNp(X
(A
rdp�%(�
�/�(
sY
�sZ
�sZ
�%~#r�p(V
�%~#r�p(V
r�ps�
�%~#r0
p(V
�%~#rzp(V
�%r�p(X
sY
�%r�p(X
	sY
�%r�p(X
r�psY
�%r�p(X
sY
�%rp(X
r(psY
�%r6p(X
rDpsY
�%rPp(X
rfpsY
�sZ
�%~#rpp(V
�%rDp(X
r�psY
�%r�p(X
r�psY
�sZ
�sZ
�sZ
�sZ
-
o[
*o`
*�Z�05&-(s4
z~"rhp(V
o\
~r%-&~P�Bs]
%�r(+
uD%-&(+(+-(+~"rhp(V
sW
o�
~"r�p(V
o\
~s%-&~P�Cs]
%�s(+uD%-&(+
	(+-	(+~"r�p(V
sW
o�
~"r�p(V
o\
~t%-&~P�Ds]
%�t(+(+*0�'-(s4
z-(s4
z~"r�p(V
o\
~u%-&~P�Es�
%�u( +
o�
+)o�
o�
oh
(A
(�
-	o�

�oj
-��
,o;
�*	*]5�
0N(-(s4
z,,,,,-(s4
z(�
(�~"r�p(V
�%r�p(X
sY
�%r�p(X
r�psY
�%~#r�	p(V
�%~#r,p(V
�%rDp(X
sY
�%rNp(X
(A
rdp�%(�
�/�(
sY
�sZ
�%~#rrp(V
�%rDp(X
sY
�%rNp(X
(A
rdp�%(�
�/�(
sY
�sZ
�sZ
�%~"r�p(V
�%r�p(X
rfpsY
�%r
p(X
-r p+rfpsY
�%~"r�p(V
�%oI�%rp(X
oLsY
�sZ
�%~"r�p(V
�%oI�%rp(X
oLsY
�sZ
�sZ
�sZ
-o[
*o`
*0�)-(s4
z(�
(�~#r,p(V
o\
~v%-&~P�Fs]
%�v(+o�

+	o�
rDp(X
o�
o�
	oj
-��
	,	o;
�*^+�
0�)(�
(�~#rrp(V
o\
~w%-&~P�Gs]
%�w(+o�

+!	o�
rDp(X
o�
o�
�	oj
-��
	,	o;
�*P-}
0�*-(s4
z(�
(�~"(V
o\
~x%-&~P�Hs]
%�x(+~y%-&~P�Is�
%�y(!+(
+
	(I
,(A
(��%�(
s[z	*0~+-(s4
z(�
(�-(�s_z~"(V
o\
~z%-&~P�Js]
%�z(+(+
	-(	s_z	o�
*0g,(�

(�
o�
o�
s�

+$	�Xr4p(�
(�
o�
&X�i2�	o
�
,o;
�*TZ
�r:p(�
�"r�p(�
�#r�p(�
�$*{%*"}%*2(�o
*{&*"}&*{'*"}'*{(*"}(*{)*"})*{**"}**{+*"}+*{,*"},*0-r�p(�
&�&(�sWz
(�
-rp+r,p(�r`p(�o9
rvp(�o9
r�p(�o9
o�
&o�

o�
o�
o�
1Vo�
o�
r�p~}%-&~|�Os�
%�}("+(A
(��%�(
sWz,T	~~%-&~|�Ps�
%�~(#+~%-&~|�Qs�
%�($+(
+
8�	o�
+lo�
o�
~�%-&~|�Rs�
%��(%+o�
+o�
o�
o

�oj
-��,o;
�oj
-��,o;
�(I
,-(A
(��%(��%(��(
sWz�
,o;
�*Ad

�%�Cy�!��
(
*{-*"}-*{.*"}.*{/*"}/*2r�p(�
*0�(�-rzp(G
o
sH
z-r�p(G
o
sH
z(�(I
-+((�(I
-+((�(A
r�p�%(��(
(�(A
rp�%(��(
(�(I
,	(�(J
(�(�(�(�(�(�(�(�*0W.sL

�A%(��%(��(�oS
�'(A
(��%oT
�(

	sU
z* /' 02/(�(�(�(�(�(�(�o�

8�(�
(�
o�(�(�
(�(�(�
(�(�(�(�
o�(�
o�(�(�(�(�(�
o�(�
o�(�
o�(�(�
:T�����To;
�(�(�(�(�(�(p
(�(�(�(�(p
(�*/��f-rNpsH*(s�
z0UYE&+0rjpsG*r�psG*r�psG*r&psG*(s�
z�-r�ps4
z..+o�sF*o�sF*(s�
z{8*"}8*{9*"}9*{:*"}:*{;*"};*{<*"}<*{=*"}=*{>*"}>*{?*"}?*{@*"}@*{A*"}A*0V(
(�s�
(�(�(�(�(�(�(�(�(�*0�(
-(�s4
zo�(�o�s�
(�o�(�o�(�o�(�o�(�o�(�o�(�o�(�*{E*"}E*2{C(�
*2rjp(�*2rpp(�*0rzp(�
�&(�(�
�*{D*0�0(
}C{Cs�

ou
}D�
,o;
��'(A
(�%oT
�(
s�
z{D(J
}B�&
(A
(
�%{C�(
	sTz{D(�(�
(�*('

&3'8[n&90=1r�p
r�po�
1$r�po�
Yr�p(�
Xo�

*0�2{B(�(V
o|
~�%-&~��Us�
%��(&+
o�
+o�

	o�
oj
-��
,o;
�(I
,(A
(�%�(
sSz*E_
(
*0-3~F- r�p�(�
o�
s�

�F~F*~G*�G*V(�rPp~Go�
*V(�r�p~Go�
*V(�r�p~Go�
*V(�r p~Go�
*V(�r\p~Go�
*V(�r�p~Go�
*V(�r�p~Go�
*V(�r,p~Go�
*V(�r~p~Go�
*V(�r�p~Go�
*V(�r*p~Go�
*V(�rjp~Go�
*V(�r�p~Go�
*V(�r�p~Go�
*V(�r"p~Go�
*V(�rlp~Go�
*V(�r�p~Go�
*V(�r�p~Go�
*V(�r6p~Go�
*V(�rfp~Go�
*V(�r�p~Go�
*V(�r�p~Go�
*V(�rp~Go�
*V(�rHp~Go�
*V(�r�p~Go�
*V(�r�p~Go�
*V(�rp~Go�
*V(�rHp~Go�
*V(�r�p~Go�
*V(�r�p~Go�
*V(�r�p~Go�
*V(�rp~Go�
*V(�rRp~Go�
*V(�r�p~Go�
*V(�r�p~Go�
*V(�rp~Go�
*V(�rRp~Go�
*V(�r�p~Go�
*V(�r�p~Go�
*V(�r�p~Go�
*V(�rJ p~Go�
*V(�r~ p~Go�
*V(�r� p~Go�
*V(�r� p~Go�
*V(�r:!p~Go�
*V(�rl!p~Go�
*V(�r�!p~Go�
*.s�H*(
*
*Zr�p(X
o�
s�
*Z~"r`p(V
o\
*
*(
*n{M~"r`p(V
o\
*.s�N*(
*
*.s �P*(
*Zr�p(X
o�
s�
*2o�
oh
*Zr�p(X
o�
s�
*2og
oh
*Rrzp(X
o�
�*Frzp(X
o�
*oh
*Rrzp(X
o�
�*Frzp(X
o�
*Z~#r,p(V
o|
*�rDp(X
o�
rNp(X
o�
s�
*Z~#rrp(V
o|
*�rDp(X
o�
rNp(X
o�
s�
*Z~#r�!p(V
o\
*"s�
*no�
~#r0
p(V
o\
*
*Z~"r
"p(V
o|
*"s�
*no�
~"r(p(V
o|
*ro�
rp(X
o�
s�
*
*
*
*6o�
s�
**o�
�*Jo�
o�
s�
**o�
�*Jo�
o�
s�
**o�
�*�o�
o
o
r�p(X
o�
o�
s
*o
*
*
*
*
*^r�p(X
o�
s
*
*
*
*o
*
*(
*�r�	p(X
o�
oh
|{(7
(q
*.sN�|*(
*f%-&+o
r2"p(
*Fo
r6"p(=
*o
*Fo
rl"p(q
*.sT��*(
*2o
s
*BSJBv4.0.30319l�5#~$6�4#Stringsk�"#US��#GUID���#BlobW�		�3b&�U	�3j�_&E%�"�.
#�.�!3.�.N"3(/"3(�!3(e!�.k"�.#!a.�!a.�"�%�"3(�"3(�"3(�!�#!�.�0�%� 3.�!3."3.\
[�-L

�3F0\)�%*}'�3}'/
�*�w�-�(�/-�*1�*�
� �*$

<�%5
�%�%�%��*�%��,��-�.
��%�
4�,�3^%@'��$�0@'�*@'@'C�%~(�)i%
1!-H!3.-�.s*h'
� �$
�!�$
�#�%�,�%�(�%��%
�0F0
$F0[ 3(�$���*w�*?�*�-e0K43(�,��4��*��#�3�-�x0�*G3�%J
�%b*�%�%4(#�%�1�%�/@'�@'�@'�*@')�%[
��%��%�0�*�
�I�I�I�I�I�I	�I#�I
)I/&I5uI;�IAd--%IF �(-%iN �(-%<R 
)-%<V B)-%<Z T)-%<^ �(-%<b�%-%dh�'-%�o�%-%do��0-%I"��f -%I%��%-%d-�| -%�0���4-%I8�$-%I8�:--%IB��./IF�!IHJIM!IN!IPxI{K!I|M!I�S!h4!4!b4!
�!�4!��!�4!!�!4!?�!54!N�!�4!��!�4!X�!b4!I�!h4!��!~4!0�!72�-f5V��-8V��-8�<8�<a@�@>@3.D3.D3
.D�I����q���S�����a@�@>@f5V�E(NV�c4NV�u4NV�'NV�'NV��4NV�.'Nk��R���[��6����`��c!&1I![$�!�1�'D�%f# k6�
p�u������3�6�
��u6�
�������dSnW��*P
��*���Aq
X�q����
���Gu�
u%uj�H��
��<
7r
g�
������u�u#u_�+u�u�u��&u�-�6�
���
j
 6�
+�0P ��X ��-h �x/?� �3�� ��#i� �4�!��-!�x/?G!�3�h!��#i�!��3��!�-��!��-v�!�x/?"�3�P"��#i�"�[(��"��&��"��-v�"�x/?
+#�3�`#��#i�#��&��#��*��#��-v�#�x/?
;$�3�p$��#i�$���$��-��$��-v%�x/?K%�3��%��#i�%����%�S.��%��-v&�x/?[&�3��&��#i�&�N�'��&�'��-v$'�x/?k'�3��'��#i(�6�(���(��-v4(�x/?{(�3��(��#i)��3�&)���.)��-vD)�x/?�)�3��)��#i.*��6*��#�>*��-vT*�x/?�*�3� �*��#i >+�A#� F+��- X+�x/?!�+�3�"�+��#i"�+��-D"�,��-K$]-��-&q-�	2i'|-��&i'�-�&(i'4.��i'�.�>&i'S/��-'[/��-'d/��-�(n/��-�*x/��-,�/��-,�/��-�-�/��-�/�/��-1�/��-1�/��-�2�/��-�4�/��-6�/��-6�/��-�7�/��-�9�/��-;�/��-;�/��-�<0��-�>0��-@0��-@0��-�A'0��- CL0��-REr0��-�H|0��/ZJ�0��/cJ�0��-mK�1��P�2��{Q�3��{S�4���Uh5�niW�5�0*iW6�,aW
6�3$iW6�G$W6��'�X&6��'�X/6�� �Y76�� �Y@6��2�ZH6��2�ZQ6�3�[Y6�3�[b6�u2�\j6��2�\t6��-�]8��a�8�m&�b$9�~&�cL9�Q&�dt9�;&�e�9�
(�fL:�(�gt:��'�h�:��$i�;��$iX<��$i�<��i�=��,aj�=�3�j>��l�>���m?��&�n�?��&�o�@��.�ppC�0�r�F��2�sH��1�u�H�1�vpJ���xpN�Q1�|�O�91�}pP��#�R�U�|S��)� T��2��T�Z2��`U�+$��U��-#�V�O3�
�V�Z3'�$V�%2i�1V�i�9V��BV�?i�JV�V����SV�Ii�[V�d�dV�ii�lV��uV��i�}V����V�*i��V�*��V�i��V���V�e3.�$Y��-�,Y��2��4Y��2��=Y�3��EY�3��NY�u2��VY��2��_Y�R�lY��-3�tZ����Z��$B�8\�h2M�T\�h2T��\�h2]��\�i��\�(�]��f�]��p�]�i�]�)�&]��/{�.]��/��7]��i�?]���H]��i�P]���Y]��)i�a]��)�j]�vi�r]���{]�f)i��]�z)��]�t-���]��-��]��-��^��-���^�20���^�<0���^��%i��^��i��^��i��^�'&i�_��1i�_��-��_�n�@`�S#���`��-��`�-��1a� ��8a� ��@a��a�Va��a�la�a��a�ja��a�3a��a��a��a��a��a��a��a�[a�b��a�b�]a�2b��
a�Hb��a�^b��a�tb�sa��b�Sa��b�Ha��b�ua��b�a��b��a��b��a�c��a�$c��a�:c�]a�Pc�;a�fc�2a�|c�>a��c�a��c�(a��c��a��c��a��c��a�d��a�d��a�,d�a�Bd�:a�Xd��
a�nd��a��d�a��d�a��d�5a��d�a��d��a��d��a�e��a�e��a�4e�Oa�Je��-#�Ve��-�^e����ae���xe�����e�E���e��-��e�9���e��-#��e��-��e�����e��-#��e��-��e�(���e���f���f�(�)f� #�>f�m*�Pf�\3�Xf�#�mf�x*�f�a���f��:��f�Z
���f��:��f����g��M�g�{
`�7g��u�:g�
��Qg�	��Zg��
��vg�����g�Q���g��
���g�/���g�t���g�R���g��
���g����g�F
��g�|
G��g��
c�h����%h����(h����+h����.h�-��1h�i��Ih�5��Lh����Oh����Rh����Zh�0��]h��-�eh�^
#��h��-#�h��-�h���h����h�t��h�!
��h��-#�h��-�h����m#�m#�3�m#_(�&m#�&�*m#
.m#�W.m#R�&m#:�m#�3�m#�$m#V#m#0$0O-0QQ3)�*�3QQ3)�*�3QQ3)�*�3QQ3)�*�3QQ3)�*�3QQ3)�Q�Q3)�*�3m#*0p3��)��30�30�30m#m#m#m#m#m#*[$�3�'�,@3�3�3�3@3�3�3m�3�$�3�3�3�3�3��3�3�2�3E/?�3?��)�3n1?�3?03�2��)�-�3?��3?V*�3?��3?�@3�3m#m#m#�,m#m#m#m#m#�m#m#m#��3*�D*o/k$o/� O-� $� m#m#m#m#m#m#m#m#m#m#�?A���)��)�0m#[$�1�m#0�/��3�3��/�3�1��1��&�&.�&�&]']'0]']'0_(_(�&RRF.�&�&�*RR2�&�&�&�RR::ii�&�&.�&_/�&�#((4�14��1$�$�$�*�	�-�-�-
)�-1�-9�-A�-I�-Q�-Y�-a�-i�-q�-y�-��-��-��-��-��- ��-��-&h4��-�0Ix/S3[��#i	�0m$4,b4,
�4�0I4x/S43[D�4D��L�4L!�T4T?�\54\N�d�4d��l�4lX�tb4tI�|h4|���~4�-��-w��1��
4��-#�	����3�!� Q�i�$���-��$�11��H �	�4���-��-��-���-�9��- 	�4�� �Aw$��-��-����-(��1���3���38�7/>�Ei�-QO(]�-gI�0n!�-u�-}	��	�0���-�Q�0�Q�3�Y�$���-���-�QX4E��-��-���1���!-#i���a�3�QI2�Q�3��?2���-�QC2A�	�4�i?4Mi|%Sa�-Zq�iA�$ay�0�y�4e��
ri�-xs#�	�0���-��-�Q�0��-��-��-�Q�*$�-�,�-�4�-�<�1��H
���#�!d#���-�#�D�-�L�-�T�1�\-�\�3���vQT4�7#Qt%��-ul�-�t�-�|�-���-���1���-���-���-���-���1�����-�!7#Y�#���-���-���-���-���-���-���-���-��1��3�	��	��y�-
�-��-�!�_
	�e
Q�3�
,�-�4�-�<�1�D�D�#�#HL�-��� ���r�V/��$���-�3 ���#����Q�0��`�� ��P2��Y��/���-T?2�\�-�Q� $d�-�l�-�t�-�|�1��(/x��-���-���1��-#�	�0��-w��1��-#���3���-��-�A&a�-��-	x#�	x#
	�$�	�#
��-���-���1��A#��m
24v
��-|
��#�
��-��-�4�\�-v��-v��&���-v��*���-v�1�
��-v�S.���-v��&���-v����6��N�����-vK/�
D�-v-#i	�0�
��i��-h
l�
�����#�(!��.:.C.b.#k.+k.3k.;q.C|.K�.Sk.[�.c�.k�.s1.{L@�A��C�`�a��c������������������������������� �!��#�@�A��C�a��c��������������������������!��A��`�a��������������� �@�`����������������������� �!�#�@�C�c���������������������!�A�`�a��������������� �@�`������� �!�@�A�I�ba�i�b����������������!�@�`�������
� 
�@�`���������� �@�`������ �`�������� �@�`���������� ���������� � �@�`���������� �@�`���������� �@�`������8a~������
2FXa���G��$48?Cl��j��.�
n
�
 ,Qt������
g
		


'*4:�����3���_(��&��&��*�
�.���W.�R��&�:����3�����$�V#��/�K$��'�� ��2 3�2�,�3)2��Z�������"*�!��2 3�2,��-��/�����)���~)��-$@0(�%�����A&��1�-.S 4��#n7���_�a�
��wWLy����a?6B,�����>�
�9���S	
#$)*/0!5#6%;'<)A+h-i-r/s/t1u1v3w3x5y5z7{7|9}9�;�=�=�?�A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�m�o�q�s�u�w�w�y�{�}��������������������������������������������������������	�
���
�������-Afw�������)=Qp��!1�!2��������� DY��"K[k~���%Y�����Eh���L	�	�	�	�	3
D
�
�
�
cEUfo������2
K
V
a
�
�
�
�
�
�
�%�
��
�%%�
�*�
�@'�
i%�.��x.��2��=V(B
	XE��H�	PLWhT	
P]�pe`n�8qV�t�	�}���H�M	x��Ha��$ !"#$%&�+g+�,[+
;,
�+&,c,O+�,�+�,+,*+�+�,�+�+�+�+�����p����������������
��P�c�8��'����	�o���Xy���� 	k	��	�S
m���
�m�>O�_��@
<>9__10_0<IncrementDigestVersion>b__10_0<>9__20_0<UpdateSettingDisplayName>b__20_0<>9__11_0<SaveResources>b__11_0<>c__DisplayClass11_0<>9__21_0<UpdateSettingDescription>b__21_0<>9__12_0<SetSupportedPlatforms>b__12_0<>9__22_0<GetScript>b__22_0<>9__13_0<SetDetectionScript>b__13_0<>9__23_0<ReplaceScript>b__23_0<>9__14_0<GetRulesElement>b__14_0<>9__15_0<GetRuleElement>b__15_0<>9__35_0<LoadDigest>b__35_0<>9__16_0<SetComplianceRule>b__16_0<>9__6_0<CreateBaseline>b__6_0<>9__17_0<GetRootComplexSettingElement>b__17_0<>9__7_0<GetDigestAuthoringScopeId>b__7_0<>c__DisplayClass7_0<>9__18_0<GetSimpleSettingElement>b__18_0<>9__38_0<CreateOrUpdateCi>b__38_0<>9__8_0<GetDigestLogicalName>b__8_0<CreateOrUpdateBaseline>b__8_0<>9__19_0<GetTemplateValue>b__19_0<>9__9_0<GetDigestVersion>b__9_0<UpdateBaseline>b__0get_<>h__TransparentIdentifier0<>9__10_1<IncrementDigestVersion>b__10_1<>9__11_1<SaveResources>b__11_1<>9__12_1<SetSupportedPlatforms>b__12_1<>9__22_1<GetScript>b__22_1<>9__13_1<SetDetectionScript>b__13_1<>9__14_1<GetRulesElement>b__14_1<>9__15_1<GetRuleElement>b__15_1<>9__35_1<LoadDigest>b__35_1<>9__16_1<SetComplianceRule>b__16_1<>9__17_1<GetRootComplexSettingElement>b__17_1<>9__7_1<GetDigestAuthoringScopeId>b__7_1<UpdateBaseline>b__7_1<>9__8_1<GetDigestLogicalName>b__8_1<CreateOrUpdateBaseline>b__8_1<>9__9_1<GetDigestVersion>b__9_1<>f__AnonymousType0`1<>f__AnonymousType11`1<>f__AnonymousType1`1IEnumerable`1PSDataCollection`1PSMemberInfoCollection`1EqualityComparer`1IEnumerator`1HashSet`1IList`1get_<>h__TransparentIdentifier1Microsoft.Uev.UevCmUtil.UevScripts.GetBaselineItemFromCm.ps1Microsoft.Uev.UevCmUtil.UevScripts.GetItemFromCm.ps1Microsoft.Uev.UevCmUtil.UevScripts.RegistryPolicyRemediationBoolean.ps1Microsoft.Uev.UevCmUtil.UevScripts.RegistryPolicyDiscoveryBoolean.ps1Microsoft.Uev.UevCmUtil.UevScripts.RegisterTemplateRemediation.ps1Microsoft.Uev.UevCmUtil.UevScripts.UnregisterTemplateRemediation.ps1Microsoft.Uev.UevCmUtil.UevScripts.ServiceStateRemediation.ps1Microsoft.Uev.UevCmUtil.UevScripts.Win8AppRemediation.ps1Microsoft.Uev.UevCmUtil.UevScripts.RegistryPolicyRemediation.ps1Microsoft.Uev.UevCmUtil.UevScripts.Detection.ps1Microsoft.Uev.UevCmUtil.UevScripts.RegisterTemplateDiscovery.ps1Microsoft.Uev.UevCmUtil.UevScripts.UnregisterTemplateDiscovery.ps1Microsoft.Uev.UevCmUtil.UevScripts.ServiceStateDiscovery.ps1Microsoft.Uev.UevCmUtil.UevScripts.PackageExceededMaxSizeDiscovery.ps1Microsoft.Uev.UevCmUtil.UevScripts.Win8AppDiscovery.ps1Microsoft.Uev.UevCmUtil.UevScripts.RegistryPolicyDiscovery.ps1ToInt32<>9__11_2<SaveResources>b__11_2<>9__12_2<SetSupportedPlatforms>b__12_2<>9__13_2<SetDetectionScript>b__13_2<>9__14_2<GetRulesElement>b__14_2<>9__15_2<GetRuleElement>b__15_2<>9__35_2<LoadDigest>b__35_2<>9__17_2<GetRootComplexSettingElement>b__17_2<>9__9_2<GetDigestVersion>b__9_2<>f__AnonymousType10`2<>f__AnonymousType2`2<>f__AnonymousType3`2<>f__AnonymousType4`2<>f__AnonymousType5`2<>f__AnonymousType6`2<>f__AnonymousType7`2<>f__AnonymousType8`2<>f__AnonymousType9`2Func`2Action`2KeyValuePair`2IDictionary`2<>h__TransparentIdentifier2<>9__11_3<SaveResources>b__11_3<>9__12_3<SetSupportedPlatforms>b__12_3<>9__13_3<SetDetectionScript>b__13_3<>9__15_3<GetRuleElement>b__15_3<>9__35_3<LoadDigest>b__35_3Func`3<>9__15_4<GetRuleElement>b__15_4<SaveResources>b__4<>9__15_5<GetRuleElement>b__15_5SHA256<>9__15_6<GetRuleElement>b__15_6get_UTF8<>9<Module>get_CI_ERROR_WRITING_CABget_ERROR_SET_SCRIPT_FAILEDget_SF_UNIMPLEMENTED_SCRIPT_TYPE_REQUESTEDget_CI_ERROR_AUTHORING_SCOPE_ID_NOT_FOUNDget_CI_ERROR_LOGICAL_NAME_NOT_FOUNDget_TC_ERROR_TEMPLATE_NOT_FOUNDget_CI_ERROR_CONFIGURATION_ITEM_NOT_FOUNDget_BI_ERROR_CAB_DIRECTORY_NOT_FOUNDget_BI_ERROR_CM_SERVICE_NOT_AVAILABLEget_ERROR_EMPTY_SCRIPT_FILEget_ERROR_NULL_CAB_FILE_NAMEget_TEXT_SETTING_RULE_NAMEget_BI_TEXT_DEFAULT_BASELINE_NAMEget_CI_TEXT_CONFIGURATION_ITEM_NAMEget_TEXT_DEFAULT_POLICY_NAMEget_ERROR_SCRIPT_INVALID_SCRIPT_TYPEget_ERROR_SCRIPT_MISSING_SCRIPT_TYPEget_SC_INVALID_SCRIPT_PURPOSEget_TC_ERROR_LOADING_TEMPLATEget_CI_TEXT_REGISTER_UEV_TEMPLATEget_CI_TEXT_UNREGISTER_UEV_TEMPALTEget_ERROR_INVALID_NULL_SETTINGget_ASCIIget_ERROR_NULL_REQUIRED_PARAMget_CI_ERROR_DETECTION_MISSING_TEMPLATE_VERSIONget_ERROR_SCRIPT_MISSING_TEMPLATE_VERSIONget_ERROR_SCRIPT_MISSING_VERSIONget_CI_ERROR_DETECTION_MISSING_SCRIPT_VERSIONget_SC_DETECTION_SCRIPT_MISSING_ACTIONget_ERROR_SCRIPT_MISSING_ACTIONget_CI_ERROR_DETECTION_MISSING_SCRIPT_ACTIONget_TEXT_SETTING_RULE_DESCRIPTIONget_BI_TEXT_DEFAULT_BASELINE_DESCRIPTIONget_CI_TEXT_UNREGISTER_SETTING_DESCRIPTIONget_CI_TEXT_REGISTER_SETTING_DESCRIPTIONget_CI_TEXT_CONFIGURATION_ITEM_DESCRIPTIONget_TEXT_DEFAULT_POLICY_DESCRIPTIONSystem.IOget_CI_ERROR_CHECKING_CM_SERVERget_TC_ERROR_MISSING_TEMPLATE_ELEMENTget_ERROR_MISSING_SETTING_ELEMENTget_ERROR_MISSING_DIGEST_VERSION_ELEMENTget_ERROR_NULL_SETTINGS_ELEMENTget_ERROR_INVALID_PROGRAM_ARGMENTget_ERROR_FAILED_TO_LOAD_SCRIPTget_ERROR_FAILED_TO_FIND_SCRIPTget_ERROR_NULL_DETECTION_SCRIPTget_ERROR_NULL_DIGESTget_ERROR_NULL_CONFIGURATION_ITEMS_LISTvalue__GetTemplateSchemaMicrosoft.Uev.UevCmUtil.UevScripts.ResourcesDatadataMicrosoft.ConfigurationManagement.AdminConsole.Common.CabWriteCabmscorlib<>cget_ScSystem.Collections.Genericdescget_Idget_AuthoringScopeIdget_DigestAuthoringScopeIdset_DigestAuthoringScopeIdGetDigestAuthoringScopeIdget_TemplateIdAddNewGuid<<>h__TransparentIdentifier0>i__Field<<>h__TransparentIdentifier1>i__Field<Sc>i__Field<Id>i__Field<AuthoringScopeId>i__Field<reference>i__Field<Rule>i__Field<xRule>i__Field<LogicalName>i__Field<TemplateValue>i__Field<Setting>i__Field<operatingSystemExpression>i__Field<xExpression>i__Field<application>i__Field<platformApplicabilityCondition>i__Field<scriptDiscoveryInfo>i__Field<Attr>i__Field<xOperands>i__Field<Text>i__Field<DigestAuthoringScopeId>k__BackingField<ValidationMethod>k__BackingField<SiteCode>k__BackingField<DigestXmlFileName>k__BackingField<DigestResxFileName>k__BackingField<RuleName>k__BackingField<SettingName>k__BackingField<CiName>k__BackingField<SettingLogicalName>k__BackingField<DigestLogicalName>k__BackingField<RemediationScriptName>k__BackingField<DiscoveryScriptName>k__BackingField<UevTemplate>k__BackingField<UevTemplatePath>k__BackingField<RegistrationAction>k__BackingField<RuleDescription>k__BackingField<SettingDescription>k__BackingField<CiDescription>k__BackingField<IsPerUser>k__BackingField<SubstitutionParams>k__BackingField<ConfigurationItems>k__BackingField<Xmlns>k__BackingField<RemediationScript>k__BackingField<DetectionScript>k__BackingField<DiscoveryScript>k__BackingField<Digest>k__BackingFieldReadToEndAppendget_ValidationMethodset_ValidationMethodvalidationMethodGetCurrentMethodErrorRecordMicrosoft.Uev.UevCmUtil.UevScripts.UevAgentConfiguration.xsdMicrosoft.Uev.UevCmUtil.UevScripts.Rules.xsdMicrosoft.Uev.UevCmUtil.UevScripts.DcmDigest.xsdReplaceXNamespaceapplicationReferenceget_referenceGetFileContentFromResourceget_SiteCodeset_SiteCodesiteCodeGetHashCodeXNodeget_MessagemessageInvokeGetEnvironmentVariableEnumerableIDisposableRuntimeTypeHandleGetTypeFromHandleget_RuleSetComplianceRuleget_xRuleXNameget_Nameget_NamespaceNamecabFileNameget_DigestXmlFileNameset_DigestXmlFileNamescriptFileNameget_DigestResxFileNameset_DigestResxFileNamefileNameget_RuleNameset_RuleNameruleNamebaselineNameget_TemplateNameget_SettingNameset_SettingNamesettingNameargNameget_CiNameset_CiNameget_LogicalNameget_SettingLogicalNameset_SettingLogicalNamesettingLogicalNameGetSettingsLogicalNameget_DigestLogicalNameset_DigestLogicalNameGetDigestLogicalNameresxFileFullNameelementNameget_RemediationScriptNameset_RemediationScriptNameremediationScriptNameget_DiscoveryScriptNameset_DiscoveryScriptNamediscoveryScriptNameUpdateSettingDisplayNameSettingsDisplayNamedisplayNamepolicyNamescriptBodyNamenameCombineCreateOrUpdateBaselineCreateBaselineisBaselineScriptTypeCompareWhereSystem.Coreget_Cultureset_CultureresourceCultureget_InvariantCultureget_CurrentCultureMethodBaseConfigurationItemBaseScriptPurposepurposeDisposeParseCreateAggregateget_UevTemplateset_UevTemplateDebuggerBrowsableStateEditorBrowsableStateXAttributeCompilerGeneratedAttributeGuidAttributeGeneratedCodeAttributeDebuggerNonUserCodeAttributeNeutralResourcesLanguageAttributeDebuggableAttributeDebuggerBrowsableAttributeEditorBrowsableAttributeComVisibleAttributeAssemblyTrademarkAttributeTargetFrameworkAttributeDebuggerHiddenAttributeAssemblyConfigurationAttributeAssemblyDescriptionAttributeInternalsVisibleToAttributeCompilationRelaxationsAttributeAssemblyProductAttributeAssemblyCopyrightAttributeCLSCompliantAttributeAssemblyCompanyAttributeRuntimeCompatibilityAttributeByteget_Valueset_Valueget_TemplateValueGetTemplateValueSetValuevalueSaveIndexOfDescendantsAndSelfAddAfterSelfEncodingSystem.Runtime.VersioningToStringGetStringSubstringget_SettingSetSimpleSettingsimpleSettingsettingmsgIsMatchComputeHashGetHashget_UevTemplatePathset_UevTemplatePathuevTemplatePathcabFullPathGetFullPathfullPathGetTempPathget_LengthReplaceWithCreateOrUpdateCiCreateCiobjSystem.Collections.ObjectModelSystem.ComponentModelMicrosoft.Uev.CabUtilMicrosoft.Uev.CmUtilMicrosoft.Uev.UevCmUtilMicrosoft.Uev.CmUtil.dllPowerShellSystem.Xmlget_XmlGetManifestResourceStreamBaselineItemConfigurationItemPolicyItemSystemHashAlgorithmEnumresourceManget_TemplateFileNameWithoutExtensionGetFileNameWithoutExtensionget_TemplateVersionGetUevTemplateVersionGetRemediationScriptVersionGetScriptVersionGetDiscoveryScriptScriptVersionGetDigestVersionIncrementDigestVersionget_operatingSystemExpressionget_xExpressionget_applicationRegisterRemediationUnregisterRemediationPolicyRemediationSystem.Management.AutomationannotationSystem.GlobalizationSystem.Runtime.Serializationget_RegistrationActionset_RegistrationActionregistrationActionConfigurationActionGetRemediationScriptActionGetScriptActionGetDiscoveryScriptActionSystem.ReflectionDetectionop_Additionget_platformApplicabilityConditionFileNotFoundExceptionDirectoryNotFoundExceptionUevTemplateExceptionCmCmdLineArgExceptionCmUtilExceptionArgumentNullExceptionXmlExceptionCmExceptionInvalidOperationExceptioninnerExceptionCmScriptExceptionCmDigestExceptionget_RuleDescriptionset_RuleDescriptionruleDescriptionbaselineDescriptionget_SettingDescriptionset_SettingDescriptionUpdateSettingDescriptionsettingDescriptionget_CiDescriptionset_CiDescriptionSettingsDescriptionpolicyDescriptiondescriptionStringComparisonCultureInfoSerializationInfoPSMemberInfoCabinetInfoget_scriptDiscoveryInfoDirectoryInfoPSPropertyInfoinfopropSystem.Xml.LinqSystem.Linq<<>h__TransparentIdentifier0>j__TPar<<>h__TransparentIdentifier1>j__TPar<Sc>j__TPar<Id>j__TPar<AuthoringScopeId>j__TPar<reference>j__TPar<Rule>j__TPar<xRule>j__TPar<LogicalName>j__TPar<TemplateValue>j__TPar<Setting>j__TPar<operatingSystemExpression>j__TPar<xExpression>j__TPar<application>j__TPar<platformApplicabilityCondition>j__TPar<scriptDiscoveryInfo>j__TPar<Attr>j__TPar<xOperands>j__TPar<Text>j__TParStreamReaderTextReaderIFormatProviderStringBuilderget_ExportFolderoutputFolderget_ResourceManagerSystem.CodeDom.CompilerXContainerUevTemplateContaineruevTemplateContainerScriptContainerget_IsPerUserset_IsPerUserisPerUserStreamWriterTextWriterRegisterUnregisterpairget_ErrorIEnumeratorGetEnumerator.ctor.cctorget_AttrattrResourceNsRuleNsDesiredConfigurationNsSystem.DiagnosticsruleOperandsget_xOperandsSystem.Runtime.InteropServicesSystem.Runtime.CompilerServicesSystem.ResourcesSaveResourcesMicrosoft.Uev.UevCmUtil.Properties.Resources.resourcesDebuggingModesMicrosoft.Uev.UevCmUtil.Propertiesget_PropertiesCompressFilesrulesAttributesGetBytescomplexSettingssettingsEqualsget_StreamsPSDataStreamsget_SubstitutionParamsset_SubstitutionParamsrequiredItemsget_ConfigurationItemsset_ConfigurationItemsconfigurationItemsitemsSetSupportedPlatformsget_Xmlnsset_XmlnsSystem.Text.RegularExpressionsSystem.CollectionsSaveOptionsRegexOptionsHelpersDescendantsElementsExistsConcatthatFormatPSObjectXObjectSelectop_Implicitget_DefaultFirstOrDefaultResultXElementGetRuleElementuevTemplateElementGetSimpleSettingElementGetRootComplexSettingElementrootComplexSettingElementapplicationElementGetRulesElementscriptElementEnvironmentget_Parentget_Currentcurrentget_XmlContentuevTemplateXmlContentScriptContentscriptContentget_DigestContentcontentget_CountExceptAddScriptReplaceScriptCreateScriptget_RemediationScriptset_RemediationScriptremediationScriptget_DetectionScriptset_DetectionScriptSetDetectionScriptdetectionScriptGetScriptget_DiscoveryScriptset_DiscoveryScriptdiscoveryScriptscriptConvertget_Digestset_DigestLoadDigestbaselineDigestSaveDigestdigestToListFirstMoveNextSystem.Textget_TextscriptTextStreamingContextcontextRegexToArraydiscoveryScriptBodyscriptBodyget_KeySystem.Security.Cryptographyget_AssemblyGetExecutingAssemblyAnySelectManyRegisterDiscoveryUnregisterDiscoveryPolicyDiscoveryScriptFactoryCreateDirectoryop_Equalityop_InequalityIsNullOrEmpty/{{ LogicalName = {0} }}9{{ AuthoringScopeId = {0} }}5{{ Text = {0}, Id = {1} }}��{{ platformApplicabilityCondition = {0}, operatingSystemExpression = {1} }}e{{ application = {0}, scriptDiscoveryInfo = {1} }}5{{ Sc = {0}, Attr = {1} }}M{{ reference = {0}, xOperands = {1} }}u{{ <>h__TransparentIdentifier0 = {0}, xExpression = {1} }}i{{ <>h__TransparentIdentifier1 = {0}, xRule = {1} }}9{{ Text = {0}, Rule = {1} }}M{{ LogicalName = {0}, Setting = {1} }}3{{ TemplateValue = {0} }}setting)uevTemplateContainer#%%UEVTEMPLATEID%%-%%UEVTEMPLATEVERSION%%+%%UEVTEMPLATESCHEMA%%%%UEVTEMPLATE%%)%%PROPOSED_VERSION%%%%FORCE%%1I# Script Version: (?<version>[0-9]*)${version}AScript Action: (?<action>[a-z]*)${action}9Script Type: (?<type>[a-z]*)${type}PowerShellJScriptVBScriptg# UE-V Template Version: (?<version>-?[0-9a-fA-F]*)siteCode%configurationItems5CI_UevTemplateBaseline.xmlCCI_UevTemplateBaseline.en-US.resxcabFileNameRequiredItems)ApplicationReference!AuthoringScopeIdLogicalNameeScriptSetting_d0a57337-66f3-40c6-a082-bdf2ac0d0ea2CI_{0}.xml#CI_{0}.en-US.regxoutputFolder{0}.cab'DiscoveryScriptBody+RemediationScriptBodyE# Script Action: (?<action>[a-z]*)-1MMicrosoft.Uev.UevCmUtil.UevScripts.{0}!UEVWorkingFolderApplicationAnnotationResourcesData	Data	data	namespacepreservevalueOperandsRuleExpression
RuleIdAWindows/All_x64_Windows_7_ClientAWindows/All_x86_Windows_7_Client9Windows/x64_Windows_7_Client3Windows/x64_Windows_7_SP19Windows/x86_Windows_7_Client3Windows/x86_Windows_7_SP1MWindows/All_x64_Windows_Server_2008_R2EWindows/x64_Windows_Server_2008_R2OWindows/x64_Windows_Server_2008_R2_COREMWindows/x64_Windows_Server_2008_R2_SP1WWindows/x64_Windows_Server_2008_R2_SP1_CoreAWindows/All_x64_Windows_8_ClientAWindows/All_x86_Windows_8_ClientAWindows/All_x64_Windows_Server_8=PlatformApplicabilityConditionRulesSettings!SettingReference	RuleidRule_{0}Severity	NoneCNonCompliantWhenSettingIsNotFoundfalseDisplayName	TextResourceId
ID-{0}DescriptionExpressionOperator
EqualsDataTypeInt64%SettingLogicalName#SettingSourceType
Script
MethodValueChangeable	trueConstantValue%RootComplexSettingSimpleSetting+ScriptDiscoverySourceIs64BitIsPerUserScriptTypeX2��http://schemas.microsoft.com/SystemsCenterConfigurationManager/2009/07/10/DesiredConfiguration��http://schemas.microsoft.com/SystemsCenterConfigurationManager/2009/06/14/RulesIhttp://www.w3.org/XML/1998/namespace#SMS_ADMIN_UI_PATH#GetItemFromCm.ps13GetBaselineItemFromCm.ps1%%CiName%%#%%CiDescription%%%%SiteCode%%ScriptSetting_settings-UevAgentConfig_{0}.xml;UevAgentConfig_{0}.en-US.regxDetection.ps1;RegisterTemplateDiscovery.ps1?UnregisterTemplateDiscovery.ps1?RegisterTemplateRemediation.ps1CUnregisterTemplateRemediation.ps1ID	NameVersion9http://schemas.microsoft.com1SettingsLocationTemplateYMicrosoft.Uev.UevCmUtil.Properties.ResourcesABI_ERROR_CAB_DIRECTORY_NOT_FOUNDCBI_ERROR_CM_SERVICE_NOT_AVAILABLEIBI_TEXT_DEFAULT_BASELINE_DESCRIPTION;BI_TEXT_DEFAULT_BASELINE_NAMEKCI_ERROR_AUTHORING_SCOPE_ID_NOT_FOUND7CI_ERROR_CHECKING_CM_SERVERKCI_ERROR_CONFIGURATION_ITEM_NOT_FOUNDQCI_ERROR_DETECTION_MISSING_SCRIPT_ACTIONSCI_ERROR_DETECTION_MISSING_SCRIPT_VERSIONWCI_ERROR_DETECTION_MISSING_TEMPLATE_VERSION?CI_ERROR_LOGICAL_NAME_NOT_FOUND)CI_ERROR_WRITING_CABMCI_TEXT_CONFIGURATION_ITEM_DESCRIPTION?CI_TEXT_CONFIGURATION_ITEM_NAMEICI_TEXT_REGISTER_SETTING_DESCRIPTION;CI_TEXT_REGISTER_UEV_TEMPLATEMCI_TEXT_UNREGISTER_SETTING_DESCRIPTION?CI_TEXT_UNREGISTER_UEV_TEMPALTE/ERROR_EMPTY_SCRIPT_FILE7ERROR_FAILED_TO_FIND_SCRIPT7ERROR_FAILED_TO_LOAD_SCRIPT5ERROR_INVALID_NULL_SETTING;ERROR_INVALID_PROGRAM_ARGMENTIERROR_MISSING_DIGEST_VERSION_ELEMENT;ERROR_MISSING_SETTING_ELEMENT1ERROR_NULL_CAB_FILE_NAMEGERROR_NULL_CONFIGURATION_ITEMS_LIST7ERROR_NULL_DETECTION_SCRIPT#ERROR_NULL_DIGEST3ERROR_NULL_REQUIRED_PARAM7ERROR_NULL_SETTINGS_ELEMENTAERROR_SCRIPT_INVALID_SCRIPT_TYPE7ERROR_SCRIPT_MISSING_ACTIONAERROR_SCRIPT_MISSING_SCRIPT_TYPEKERROR_SCRIPT_MISSING_TEMPLATE_VERSION9ERROR_SCRIPT_MISSING_VERSION/ERROR_SET_SCRIPT_FAILEDESC_DETECTION_SCRIPT_MISSING_ACTION3SC_INVALID_SCRIPT_PURPOSEMSF_UNIMPLEMENTED_SCRIPT_TYPE_REQUESTED3TC_ERROR_LOADING_TEMPLATECTC_ERROR_MISSING_TEMPLATE_ELEMENT7TC_ERROR_TEMPLATE_NOT_FOUND?TEXT_DEFAULT_POLICY_DESCRIPTION1TEXT_DEFAULT_POLICY_NAME;TEXT_SETTING_RULE_DESCRIPTION-TEXT_SETTING_RULE_NAME3OperatingSystemExpression'ScriptDiscoveryInfo
5DesiredConfigurationDigestSDMPackageXML����C�l#�r��d      M  ���	�   	�	
�


 
 $
$(
(,
,0
044]aY
 ]]
 aa    e � � �� i mq���yu}\\��u u\ }}\  ������}\\	�%�� �%�% �% �% 
 �����%������ ������
������
��>
����������u������}\\����������������*����������
������������	 �������� ������
u�� ������������
��������yu��e	�����5 �� ���A���E �E	 �I�M����������
����
����

������������
����
����

��
����	����������������
����	����
���������������������	 �	~Y����������������������������������]a����������������������
��������������������
���� ������������������������������
����������������������������
����������������*��������������������������
������������������������������
����������������������
����������������-��,������,����,���������� ����
�� ������ ����
 ���� �� ����$ ������
 ����$ ��������$ ������
$ ������.��$ ������($ ��������+
$ ������($ ����������($ ��������
($ ��������'��($ ��������,����$
($ ��������,������,������,����
,����	��$
������������������������������������
������ �%�Y"������������������
��-��0������0����0����������0����
��0������0������0����
0������������������������ ���%��������	����
������������������   �	 ����&	�������������������� ��
 ���� �i
 �m���m��
��������
��	����
��	����
����������
 �q��	����
���������� 
y��]tatYt]tat �}������ �Y �Y ��4��44
����4

��4
��4
��44������ �5 �5 ����
����
���� ��
 ����$ ������($ ��������
 �����z\V4�1�8V�6N5u\Xx8����l��Y��������������������������������������������������������������
����������
�������������������������������������������������������������������������������� ������ ����!�� ����$ ��������$ ������/��$ ������($ ����������($ ��������(��($ ��������,������������������������0����
����a������
����
����
����������4  t x i u\	 u\
 u\��u\ ��u\ X X x x 8 8 X ����������8����	����	����88���� ��  Yt
 Yt8l8xl8tl	 ��
 �� Y	 Y �� t �� ������ ���� ������
 ������ ������ ����
 �� ����
 �� �� ���� �� �������� �������� �������� �������� �������� �������� ����������  ������
  ���� $ ������ ���� $ ������+ ($ ��������$ ������ ($ ��������$ ,����($ ��������
 ������ ������ 0������ �� �� �� �� ��
 4��(((u\((X(x(8(��	(��(Y((������TWrapNonExceptionThrows
en-USUevCmUtil.uev.ut)$9b864d5a-ed47-4849-a791-799aee0b5fe4/*Microsoft (R) Windows (R) Operating System>9Copyright (c) Microsoft Corporation. All rights reserved.Microsoft Corporation7.NETFramework,Version=v4.5TFrameworkDisplayName@3System.Resources.Tools.StronglyTypedResourceBuilder4.0.0.0�����lSystem.Resources.ResourceReader, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089#System.Resources.RuntimeResourceSet/PADPADP,U<�����N��Yz���K�����(�d�H�P���#�3������طm 1��ɋ����qA`�>PF� ��k ��w�	th�#��f<r%��&�xz&A�)ne�)�.0��2�{4T��7w
b<��N���R���T���Z@��]��_�@ui�zjK��q*W�yޣ9zr\|}n	�����E�;�I�I�r
h�
���g��F=����Ob+!
��	�
��1	n�	��?@BI_ERROR_CAB_DIRECTORY_NOT_FOUNDBBI_ERROR_CM_SERVICE_NOT_AVAILABLEHBI_TEXT_DEFAULT_BASELINE_DESCRIPTIONk:BI_TEXT_DEFAULT_BASELINE_NAME�JCI_ERROR_AUTHORING_SCOPE_ID_NOT_FOUND�6CI_ERROR_CHECKING_CM_SERVERJCI_ERROR_CONFIGURATION_ITEM_NOT_FOUNDVPCI_ERROR_DETECTION_MISSING_SCRIPT_ACTION�RCI_ERROR_DETECTION_MISSING_SCRIPT_VERSION�VCI_ERROR_DETECTION_MISSING_TEMPLATE_VERSIONU>CI_ERROR_LOGICAL_NAME_NOT_FOUND�(CI_ERROR_WRITING_CAB�LCI_TEXT_CONFIGURATION_ITEM_DESCRIPTION!>CI_TEXT_CONFIGURATION_ITEM_NAMEeHCI_TEXT_REGISTER_SETTING_DESCRIPTION�:CI_TEXT_REGISTER_UEV_TEMPLATE�LCI_TEXT_UNREGISTER_SETTING_DESCRIPTION�>CI_TEXT_UNREGISTER_UEV_TEMPALTE.ERROR_EMPTY_SCRIPT_FILE36ERROR_FAILED_TO_FIND_SCRIPTN6ERROR_FAILED_TO_LOAD_SCRIPTm4ERROR_INVALID_NULL_SETTING�:ERROR_INVALID_PROGRAM_ARGMENT�HERROR_MISSING_DIGEST_VERSION_ELEMENT�:ERROR_MISSING_SETTING_ELEMENT�0ERROR_NULL_CAB_FILE_NAME5FERROR_NULL_CONFIGURATION_ITEMS_LISTX6ERROR_NULL_DETECTION_SCRIPT�"ERROR_NULL_DIGEST�2ERROR_NULL_REQUIRED_PARAM�6ERROR_NULL_SETTINGS_ELEMENT�@ERROR_SCRIPT_INVALID_SCRIPT_TYPE6ERROR_SCRIPT_MISSING_ACTION@ERROR_SCRIPT_MISSING_SCRIPT_TYPE�JERROR_SCRIPT_MISSING_TEMPLATE_VERSION�8ERROR_SCRIPT_MISSING_VERSION(.ERROR_SET_SCRIPT_FAILED[DSC_DETECTION_SCRIPT_MISSING_ACTION�2SC_INVALID_SCRIPT_PURPOSE�LSF_UNIMPLEMENTED_SCRIPT_TYPE_REQUESTED2TC_ERROR_LOADING_TEMPLATESBTC_ERROR_MISSING_TEMPLATE_ELEMENT�6TC_ERROR_TEMPLATE_NOT_FOUND�>TEXT_DEFAULT_POLICY_DESCRIPTION�0TEXT_DEFAULT_POLICY_NAME	:TEXT_SETTING_RULE_DESCRIPTION*	,TEXT_SETTING_RULE_NAMEJ	Error writing {0}: {1}
OSMS_ADMIN_UI_PATH environment variable not set. CM services are not accessible.GA collection of UE-V templates that will be registered or deregistered.#UE-V Template Distribution Baseline=Could not find AuthoringScopeId for configuration item: {0}
<Error checking for UE-V template registration with CM: {0}
5Failed to find configuration item: {0} on site: {1}
hDetection script for UE-V template '{0}' is missing comment:: '# Script Action: <Register|Unregister>'
\Detection script for UE-V template '{0}' is missing comment: '# Script Version: <version>'
cDetection script for UE-V template '{0}' is missing comment: '# UE-V Template Version: <version>'
8Could not find LogicalName for configuration item: {0}
+Error writing configuration item CAB: {0}
BKeeps {0} UE-V template version and registration state up-to-date.Maintain {0} UE-V TemplateCChecks that the UE-V template for {0} is registered to version {1}.Register UE-V template {0}1If a UE-V template for {0} exists, unregister it.Unregister UE-V template {0}Script file is empty: {0}Failed to find script in {0}.Failed to load script: {0}Invalid copy of null settingInvalid argument: {0} : {1}'Digest is missing the 'Version' elementFSet script failed because setting containing the script was not found.!A valid CAB file name is required+Failed to write CAB: No configuration items!Detection script must not be null%Configuration digest must not be nullA required paramter is null!Settings element must not be nullnScript '{0}' has invalid script type. Valid values are 'PowerShell', 'JScript' or 'VBScript'. Script Type: {1}0Script '{0}' is missing comment 'Script Action:'.Script '{0}' is missing comment 'Script Type:'EScript '{0}' is missing comment: '# UE-V Template Version: <version>'1Script '{0}' is missing comment 'Script Version:';Set script failed because an existing script was not found.MDetection script is missing comment: '# Script Action: <Register|Unregister>')ScriptFactory: Unsupported script purpose?PowerShell script has invalid script type: '# Script Type: {0}'+UevTemplate: Could not load template: {0}
2UE-V template is missing the template {0} element."Error opening UE-V template: {0}
=Applies desired configuration for the UE-V Application Agent.UE-V Agent PolicyValidate template installationUE-V template validation rule�<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns = "" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>
�#
# Copyright (c) Microsoft Corporation. All rights reserved.
#
# Script Type: PowerShell
# Script Action: Detection
# Script Version: 2

# Detection script that checks to see if UEV is installed by looking for existence 
# of the UE-V version number in the registry. Application is considered to be 
# installed if this subroutine sends a "Installed" message to std out.
#
# Registry key: HKLM\\SOFTWARE\Microsoft\UEV\Agent\Version

function GetUevVersion
{
    try
    {
        $key = Get-Item -LiteralPath "HKLM:\SOFTWARE\Microsoft\UEV\Agent" -ErrorAction SilentlyContinue
        $version = $key.GetValue("Version", "0");

        if ($version.ToString().Length -ge 2)
        {
            $parts = $version.ToString().Split(".")
            $ver = $parts[0] + "." + $parts[1]
            return [float]$ver
        }
        return 2.0
    }
    catch
    {
        return 2.0
    }
}

$uevVersion = GetUevVersion
if ($uevVersion -ge 2.0)
{ 
    write-host 'Installed' 
}
!#
# Copyright (c) Microsoft Corporation. All rights reserved.
#
# This script verifies that a template does not exist or exists as
# an older version before allowing remediation to install a newer version.
#
# Script Type: PowerShell
# Script Action: Register
# Script Version: 2
# UE-V Template Version: %%UEVTEMPLATEVERSION%%

Set-StrictMode -Version latest

$COMPLIANT_CODE = 1
$NOT_COMPLIANT_CODE = 0

$uevTemplateSchema = "%%UEVTEMPLATESCHEMA%%"
$proposedVersion = %%PROPOSED_VERSION%%
$result = $NOT_COMPLIANT_CODE

function IsSchemaSupported()
{
    # Lookup all UE-V template schemas supported by AppAgent. If the CM packaged
    # template is not supported by the agent, mark as compliant

    $appAgentConfig = Get-WmiObject -Namespace root\microsoft\uev Configuration
    $appAgentSchemas = $appAgentConfig.SupportedTemplateSchemaVersions
    $supportedSchema = $False

    foreach ($appAgentSchama in $appAgentSchemas)
    {
        if ($uevTemplateSchema -eq $appAgentSchama)
        {
            $supportedSchema = $True
            break;
        }
    }

    return $supportedSchema
}

function IsInstalledTemplateSchemaNewerThanProposed($installedTemplateId)
{
    # Returns true if the template that is currently installed has a template
    # schema greater than the template being distributed by remediation script

    try
    {
        $t = Invoke-WmiMethod -Namespace root\microsoft\uev -Class SettingsLocationTemplate -Name GetSchemaByTemplateId -ArgumentList %%UEVTEMPLATEID%%
        $installedTemplateSchema = $t.ReturnValue

        return [boolean]($uevTemplateSchema -lt $installedTemplateSchema)
    }
    catch
    {
        return [boolean]$False
    }
}

function IsCompliant
{
    if (!(IsSchemaSupported))
    {
        $result = $COMPLIANT_CODE
    }
    else
    {
        try
        {
            $templateObj = [wmi] 'root\Microsoft\UEV:SettingsLocationTemplate="%%UEVTEMPLATEID%%"'
            $template = $templateObj.GetContent().ReturnValue

            if (IsInstalledTemplateSchemaNewerThanProposed($templateObj.TemplateId))
            {
                # Do not install an older schema over a newer schema
                $result = $COMPLIANT_CODE
            }
            elseif ($templateObj.TemplateVersion -eq $proposedVersion)
            {
                $result = $COMPLIANT_CODE
            }
            elseif ($templateObj.TemplateVersion -lt $proposedVersion)
            {
                $result = $NOT_COMPLIANT_CODE
            }
            else 
            {
                $result = $COMPLIANT_CODE
            }
        }
        catch
        {
            $result = $NOT_COMPLIANT_CODE
        }
    }

    return $result
}

$result = IsCompliant;
Write-Output $result
y#
# Copyright (c) Microsoft Corporation. All rights reserved.
#
# This script registers a template
#
# Script Type: PowerShell
# Script Action: Register
# Script Version: 2
# UE-V Template Version: %%UEVTEMPLATEVERSION%%

$uevTemplate = @"
%%UEVTEMPLATE%%
"@

Set-StrictMode -Version latest

$COMPLIANT_CODE = 1
$NOT_COMPLIANT_CODE = 0

# Registers a UE-V template
function RegisterTemplate
{
    $complanceResult = $NOT_COMPLIANT_CODE

    try
    {
        $tempTemplateFile = [System.IO.Path]::GetTempFileName() | Rename-Item -NewName { $_ -replace 'tmp$', 'xml' } -PassThru
		Out-File -InputObject $uevTemplate -Encoding utf8 -LiteralPath "$tempTemplateFile"

        Invoke-WmiMethod -Namespace root\Microsoft\UEV -Class SettingsLocationTemplate -Name Update -ArgumentList "$tempTemplateFile"
        $complanceResult = $COMPLIANT_CODE
    }
    catch
    {
        $complanceResult = $NOT_COMPLIANT_CODE
        Write-Host $error[0]
    }
    finally
    {
        Remove-Item -Path "$tempTemplateFile"
    }

    return $complanceResult
}

$result = RegisterTemplate
Write-Output $result
%#
# Copyright (c) Microsoft Corporation. All rights reserved.
#
# This script checks to see if a template is installed so that it 
# can be unregistered
#
# Script Type: PowerShell
# Script Action: Unregister
# Script Version: 1
# UE-V Template Version: %%UEVTEMPLATEVERSION%%

Set-StrictMode -Version latest

Set-Variable -name COMPLIANT_CODE -value 1 -option constant
Set-Variable -name NOT_COMPLIANT_CODE -value 0 -option constant

$result = $NOT_COMPLIANT_CODE
    
try
{
    $templateObj = [wmi] 'root\Microsoft\UEV:SettingsLocationTemplate="%%UEVTEMPLATEID%%"'
    $template = $templateObj.GetContent().ReturnValue

    if ($template.Length -eq 0)
    {
        $result = $COMPLIANT_CODE
    }
}
catch
{
    $result = $COMPLIANT_CODE
}
    
Write-Output $result
�#
# Copyright (c) Microsoft Corporation. All rights reserved.
#
# This script deregisters a template
#
# Script Type: PowerShell
# Script Action: Unregister
# Script Version: 1
# UE-V Template Version: %%UEVTEMPLATEVERSION%%

Set-StrictMode -Version latest

Set-Variable -name COMPLIANT_CODE -value 1 -option constant
Set-Variable -name NOT_COMPLIANT_CODE -value 0 -option constant

# Deregisters a UE-V template
function UnregisterTemplate
{
    $complanceResult = $NOT_COMPLIANT_CODE

    try
    {
        $templateObj = [wmi] 'root\Microsoft\UEV:SettingsLocationTemplate="%%UEVTEMPLATEID%%"'
        $templateObj.Unregister()
        $complanceResult = $COMPLIANT_CODE
    }
    catch
    {
        $complanceResult = $NOT_COMPLIANT_CODE
        Write-Host $error[0]
    }

    return $complanceResult
}

$result = UnregisterTemplate
Write-Output $result
k# Copyright (c) Microsoft Corporation. All rights reserved.
#

# Scans the UE-V Operations event log to see if an event (id 4048) has 
# been logged. This event indicates that a package has exceeded its recommended max
# size. The scan searches for the event within the last 7 days.

# Event log searched
#   %SystemRoot%\System32\Winevt\Logs\Microsoft-User Experience Virtualization-App Agent%4Operational.evtx

function Get-EventCount($id)
{
    try
    {
        $obj = Get-WinEvent -FilterHashtable @{logname="Microsoft-User Experience Virtualization-App Agent/Operational";id=$id;starttime=((Get-Date).AddDays(-7))}
        if ($obj)
        {
            return $obj.count
        }
        else
        {
            return 0
        } 
    }
    catch
    {
        return 0
    }
}

$result = Get-EventCount(4048)
write-host $result# Copyright (c) Microsoft Corporation. All rights reserved.
#
# Script Type: PowerShell
# Script Action: Remediation
# Script Version: 1
#
# Set or clear the UE-V %%SETTING_NAME%% in either the %%HIVE%% hive.
#
# Registry update locations:
#   %%HIVE%%\Software\Microsoft\UEV\Configuration\Agent\%%SETTING_NAME%%

Set-StrictMode -Version latest

Set-Variable -name SET -value "Set" -option constant
Set-Variable -name CLEAR -value "CLEAR" -option constant
Set-Variable -name UNMANAGED -value "UNMANAGED" -option constant
Set-Variable -name NO_ERROR -value 0 -option constant
Set-Variable -name UNSPECIFIED_ERROR -value 1 -option constant
Set-Variable -name REMEDIATION_FAILED -value 1 -option constant

Set-Variable -name HIVE -value %%HIVE%% 
Set-Variable -name NAMESPACE -value "root\Microsoft\UEV"
Set-Variable -name SETTING -value "%%SETTING_NAME%%"
Set-Variable -name DESIRED_VALUE -value "%%SETTING_VALUE%%"
Set-Variable -name DESIRED_STATE -value "%%DESIRED_STATE%%"

$result = $NO_ERROR

if ($HIVE -eq "HKLM")
{
    $currentHive = "ComputerConfiguration"
}
else
{
    $currentHive = "UserConfiguration"
}

if ($DESIRED_STATE -eq $SET)
{
    # Updates setting to desired value

    try
    {
        $config = Get-WmiObject -Namespace $NAMESPACE $currentHive
        $config.$SETTING = $DESIRED_VALUE
        [void]$config.Put()
    }
    catch
    {
        write-host "Failed to set UE-V %%SETTING_NAME%%: " + $_;
        $result = $REMEDIATION_FAILED
    }
}
elseif ($DESIRED_STATE -eq $CLEAR)
{
    # Removes setting

    try
    {
        $config = Get-WmiObject -Namespace $NAMESPACE $currentHive
        $config.$SETTING = $null
        [void]$config.Put()
    }
    catch
    {
        write-host "Failed to clear UE-V %%SETTING_NAME%%: " + $_;
        $result = $REMEDIATION_FAILED
    }
}
elseif ($DESIRED_STATE -eq $UNMANAGED)
{
    # This should never get called because the discovery script should prevent it
    $result = $UNSPECIFIED_ERROR
}
    
return $result
�# Copyright (c) Microsoft Corporation. All rights reserved.
#
# Script Type: PowerShell
# Script Action: Discovery
# Script Version: 1
#
# Sets or clears the UE-V %%SETTING_NAME%% in the %%HIVE%% hive.
#
# Registry location:
#   %%HIVE%%\Software\Microsoft\UEV\Agent\Configuration\%%SETTING_NAME%%

Set-StrictMode -Version latest

Set-Variable -name SET -value "Set" -option constant
Set-Variable -name CLEAR -value "Clear" -option constant
Set-Variable -name UNMANAGED -value "UNMANAGED" -option constant
Set-Variable -name COMPLIANT_CODE -value 1 -option constant
Set-Variable -name NOT_COMPLIANT_CODE -value 0 -option constant

Set-Variable -name HIVE -value %%HIVE%% 
Set-Variable -name NAMESPACE -value "root\Microsoft\UEV"
Set-Variable -name SETTING -value "%%SETTING_NAME%%"
Set-Variable -name DESIRED_VALUE -value "%%SETTING_VALUE%%"
Set-Variable -name DESIRED_STATE -value "%%DESIRED_STATE%%"

$result = $NOT_COMPLIANT_CODE

if ($HIVE -eq "HKLM")
{
    $currentHive = "ComputerConfiguration"
}
else
{
    $currentHive = "UserConfiguration"
}

if ($DESIRED_STATE -eq $SET)
{
    # Compliant if setting exists and is equal to desired value

    try
    {
        $config = Get-WmiObject -Namespace $NAMESPACE $currentHive

        if ($config.$SETTING -eq $DESIRED_VALUE)
        {
            $result = $COMPLIANT_CODE
        }
        else
        {
            $result = $NOT_COMPLIANT_CODE
        }
    }
    catch
    {
        $result = $NOT_COMPLIANT_CODE
    }
}
elseif ($DESIRED_STATE -eq $CLEAR)
{
    # Compliant if setting does not exist

    try
    {
        $settingConfig = Get-WmiObject -Namespace 'root\microsoft\uev' -Query "select * from ConfigurationItem where SettingName = '%%SETTING_NAME%%'"
        $config = Get-WmiObject -Namespace $NAMESPACE $currentHive

        if (($settingConfig.SettingSource -eq 'Default') -or ($config.$SETTING -eq $null))
        {
            $result = $COMPLIANT_CODE
        }
        else
        {
            $result = $NOT_COMPLIANT_CODE
        }
    }
    catch
    {
        $result = $COMPLIANT_CODE
    }
}
elseif ($DESIRED_STATE -eq $UNMANAGED)
{
    $result = $COMPLIANT_CODE
}
    
Write-Output $result
# Copyright (c) Microsoft Corporation. All rights reserved.
#
# Script Type: PowerShell
# Script Action: Remediation
# Script Version: 1
#
# Set or clear the UE-V %%SETTING_NAME%% in either the %%HIVE%% hive.
#
# Registry update locations:
#   %%HIVE%%\Software\Microsoft\UEV\Configuration\Agent\%%SETTING_NAME%%

Set-StrictMode -Version latest

Set-Variable -name SET -value "Set" -option constant
Set-Variable -name CLEAR -value "CLEAR" -option constant
Set-Variable -name UNMANAGED -value "UNMANAGED" -option constant
Set-Variable -name NO_ERROR -value 0 -option constant
Set-Variable -name UNSPECIFIED_ERROR -value 1 -option constant
Set-Variable -name REMEDIATION_FAILED -value 1 -option constant

Set-Variable -name HIVE -value %%HIVE%% 
Set-Variable -name NAMESPACE -value "root\Microsoft\UEV"
Set-Variable -name SETTING -value "%%SETTING_NAME%%"
Set-Variable -name DESIRED_VALUE -value "%%SETTING_VALUE%%"
Set-Variable -name DESIRED_STATE -value "%%DESIRED_STATE%%"

$result = $NO_ERROR

if ($HIVE -eq "HKLM")
{
    $currentHive = "ComputerConfiguration"
}
else
{
    $currentHive = "UserConfiguration"
}

if ($DESIRED_STATE -eq $SET)
{
    # Updates setting to desired value

    try
    {
        $config = Get-WmiObject -Namespace $NAMESPACE $currentHive
        $config.$SETTING = ($DESIRED_VALUE -eq "true")
        [void]$config.Put()
    }
    catch
    {
        write-host "Failed to set UE-V %%SETTING_NAME%%: " + $_;
        $result = $REMEDIATION_FAILED
    }
}
elseif ($DESIRED_STATE -eq $CLEAR)
{
    # Removes setting

    try
    {
        $config = Get-WmiObject -Namespace $NAMESPACE $currentHive
        $config.$SETTING = $null
        [void]$config.Put()
    }
    catch
    {
        write-host "Failed to clear UE-V %%SETTING_NAME%%: " + $_;
        $result = $REMEDIATION_FAILED
    }
}
elseif ($DESIRED_STATE -eq $UNMANAGED)
{
    # This should never get called because the discovery script should prevent it
    $result = $UNSPECIFIED_ERROR
}
    
return $result
�# Copyright (c) Microsoft Corporation. All rights reserved.
#
# Script Type: PowerShell
# Script Action: Discovery
# Script Version: 1
#
# Sets or clears the UE-V %%SETTING_NAME%% in the %%HIVE%% hive.
#
# Registry location:
#   %%HIVE%%\Software\Microsoft\UEV\Agent\Configuration\%%SETTING_NAME%%

Set-StrictMode -Version latest

Set-Variable -name SET -value "Set" -option constant
Set-Variable -name CLEAR -value "Clear" -option constant
Set-Variable -name UNMANAGED -value "UNMANAGED" -option constant
Set-Variable -name COMPLIANT_CODE -value 1 -option constant
Set-Variable -name NOT_COMPLIANT_CODE -value 0 -option constant

Set-Variable -name HIVE -value %%HIVE%% 
Set-Variable -name NAMESPACE -value "root\Microsoft\UEV"
Set-Variable -name SETTING -value "%%SETTING_NAME%%"
Set-Variable -name DESIRED_VALUE -value "%%SETTING_VALUE%%"
Set-Variable -name DESIRED_STATE -value "%%DESIRED_STATE%%"

$result = $NOT_COMPLIANT_CODE

if ($HIVE -eq "HKLM")
{
    $currentHive = "ComputerConfiguration"
}
else
{
    $currentHive = "UserConfiguration"
}

if ($DESIRED_STATE -eq $SET)
{
    # Compliant if setting exists and is equal to desired value

    try
    {
        $config = Get-WmiObject -Namespace $NAMESPACE $currentHive

        if ($config.$SETTING -eq ($DESIRED_VALUE -eq "true"))
        {
            $result = $COMPLIANT_CODE
        }
        else
        {
            $result = $NOT_COMPLIANT_CODE
        }
    }
    catch
    {
        $result = $NOT_COMPLIANT_CODE
    }
}
elseif ($DESIRED_STATE -eq $CLEAR)
{
    # Compliant if setting does not exist

    try
    {
        $settingConfig = Get-WmiObject -Namespace 'root\microsoft\uev' -Query "select * from ConfigurationItem where SettingName = '%%SETTING_NAME%%'"
        $config = Get-WmiObject -Namespace $NAMESPACE $currentHive

        if (($settingConfig.SettingSource -eq 'Default') -or ($config.$SETTING -eq $null))
        {
            $result = $COMPLIANT_CODE
        }
        else
        {
            $result = $NOT_COMPLIANT_CODE
        }
    }
    catch
    {
        $result = $COMPLIANT_CODE
    }
}
elseif ($DESIRED_STATE -eq $UNMANAGED)
{
    $result = $COMPLIANT_CODE
}
    
Write-Output $result
�#
# Copyright (c) Microsoft Corporation. All rights reserved.
#

# Gets a configuration digest from the CM site server.  Returns an empty CI
# if one does not exist on the server.

Set-ExecutionPolicy -Force bypass
import-module (Join-Path (split-path -Path $env:SMS_ADMIN_UI_PATH -Parent) 'ConfigurationManager.psd1')
cd -Path %%SiteCode%%:
$ciName = '%%CiName%%'
$ciDescription = '%%CiDescription%%'
Get-CMConfigurationItem -Name $ciName -OutVariable ci
if ($ci.Capacity -eq 0)
{
    New-CMConfigurationItem -CreationType WindowsApplication -Description $ciDescription -Name $ciName
    Get-CMConfigurationItem -name $ciName -OutVariable ci
    Remove-CMConfigurationItem -Id $ci[0].CI_ID -Force
}C#
# Copyright (c) Microsoft Corporation. All rights reserved.
#

# Gets a baseline configuration digest from the CM site server.  Returns an empty baseline CI
# if one does not exist on the server.

Set-ExecutionPolicy -Force bypass
import-module (Join-Path (split-path -Path $env:SMS_ADMIN_UI_PATH -Parent) 'ConfigurationManager.psd1')
cd -Path %%SiteCode%%:
$baselineName = '%%CiName%%'
$baselineDescription = '%%CiDescription%%'
Get-CMBaselineXMLDefinition -Name $baselineName -OutVariable baselineXml
if ($baselineXml.Capacity -eq 0)
{
    New-CMBaseline -Description $baselineDescription -Name $baselineName
    Get-CMBaseline -name $baselineName -OutVariable baseline
    Get-CMBaselineXMLDefinition -name $baselineName -OutVariable baselineXml
    Remove-CMConfigurationItem -Id $baseline[0].CI_ID -Force
}D	# Copyright (c) Microsoft Corporation. All rights reserved.
#
# Script Type: PowerShell
# Script Action: Discovery
# Script Version: 1
#
# Enables, disables or clears the UE-V Win8 sync setting for %%PACKAGE_FAMILY_NAME%% 
# in the %%USER_OR_MACHINE%% hive.
#
# Registry location:
#   %%HIVE%%\Software\Microsoft\UEV\Agent\Configuration\Windows8AppList\%%PACKAGE_FAMILY_NAME%%

Set-StrictMode -Version latest

Set-Variable -name ENABLED -value "Enabled" -option constant
Set-Variable -name CLEARED -value "Cleared" -option constant
Set-Variable -name DISABLED -value "Disabled" -option constant
Set-Variable -name COMPLIANT_CODE -value 1 -option constant
Set-Variable -name NOT_COMPLIANT_CODE -value 0 -option constant
Set-Variable -name SCRIPT_FAILURE -value 2 -option constant

Set-Variable -name NAMESPACE -value "root\Microsoft\UEV"
Set-Variable -name DESIRED_STATE -value "%%DESIRED_STATE%%"
Set-Variable -name PACKAGE_FAMILY_NAME -value "%%PACKAGE_FAMILY_NAME%%"

$result = $NOT_COMPLIANT_CODE

# This setting only applies to Windows 8 / Server 2012 and above
$osVersionInfo = [System.Environment]::OSVersion.Version[0] | select major, minor
$osVersion = $osVersionInfo.major + $osVersionInfo.Minor / 10

if ($osVersion -lt 6.2)
{
    return $COMPLIANT_CODE
}

# If the app is not installed, consider it compliant
$pkgInfo = Get-AppxPackage | Where-Object {$_.PackageFamilyName -eq $PACKAGE_FAMILY_NAME } | Measure-Object
if ($pkgInfo.Count -eq 0)
{
    return $COMPLIANT_CODE
}

try
{
    $config = Get-WmiObject -namespace $NAMESPACE -Query "select * from %%USER_OR_MACHINE%%ConfiguredWindows8App where PackageFamilyName='$PACKAGE_FAMILY_NAME'"
}
catch
{
    return $COMPLIANT_CODE
}

if ($DESIRED_STATE -eq $ENABLED)
{
    if (($config -ne $null) -and $config.Enabled)
    {
        $result = $COMPLIANT_CODE
    }
    else
    {
        $result = $NOT_COMPLIANT_CODE
    }
}
elseif ($DESIRED_STATE -eq $DISABLED)
{
    if (($config -ne $null) -and !$config.Enabled)
    {
        $result = $COMPLIANT_CODE
    }
    else
    {
        $result = $NOT_COMPLIANT_CODE
    }
}
elseif ($DESIRED_STATE -eq $CLEARED)
{
    if ($config -eq $null)
    {
        $result = $COMPLIANT_CODE
    }
    else
    {
        $result = $NOT_COMPLIANT_CODE
    }
}
    
Write-Output $result
�# Copyright (c) Microsoft Corporation. All rights reserved.
#
# Script Type: PowerShell
# Script Action: Remediation
# Script Version: 1
#
# Sets Windows 8 app registration the UE-V %%PACKAGE_FAMILY_NAME%% in %%HIVE%% hive to '%%DESIRED_STATE%%'
#
# Registry update locations:
#   %%HIVE%%\Software\Microsoft\UEV\Agent\Configuration\Windows8AppList\%%PACKAGE_FAMILY_NAME%%

Set-StrictMode -Version latest

Set-Variable -name ENABLED -value "Enabled" -option constant
Set-Variable -name CLEARED -value "Cleared" -option constant
Set-Variable -name DISABLED -value "Disabled" -option constant

Set-Variable -name NO_ERROR -value 0 -option constant
Set-Variable -name UNSPECIFIED_ERROR -value 1 -option constant
Set-Variable -name REMEDIATION_FAILED -value 1 -option constant

Set-Variable -name NAMESPACE -value "root\Microsoft\UEV"
Set-Variable -name DESIRED_STATE -value "%%DESIRED_STATE%%"
Set-Variable -name PACKAGE_FAMILY_NAME -value "%%PACKAGE_FAMILY_NAME%%"

$result = $NO_ERROR

$op = "DisableApp"

if ($DESIRED_STATE -eq $ENABLED)
{
    $op = "EnableApp";
}
elseif ($DESIRED_STATE -eq $CLEARED)
{
    $op = "RemoveApp";
}

try
{
    Invoke-WmiMethod -Namespace $NAMESPACE -class %%USER_OR_MACHINE%%ConfiguredWindows8App -name $op -ArgumentList $PACKAGE_FAMILY_NAME
    $result = $NO_ERROR
}
catch
{
    write-host "Failed to set UE-V " + $PACKAGE_FAMILY_NAME + ": " + $_;
    $result = $REMEDIATION_FAILED
}
    
return $result
�#
# Copyright (c) Microsoft Corporation. All rights reserved.
#
# This script starts or stops or pauses a service based on the desired state.
# valid status values are:
#  "Running", "Paused", "Starting", "Pausing", "Stopping", "Stopped"
#
# Script Type: PowerShell
# Script Version: 2

Set-StrictMode -Version latest

$serviceName = "%%SERVICE_NAME%%"
$desiredState = "%%DESIRED_STATE%%"

$NO_ERROR = 0
$REMEDIATION_FAILED = 1
$UNSPECIFIED_ERROR = 2

$result = $NO_ERROR

try
{
    if ($desiredState -eq "Running")
    {
        Start-Service -Name $serviceName
    }
    elseif ($desiredState -eq "Paused")
    {
        Suspend-Service -Name $serviceName
    }
    elseif ($desiredState -eq "Stopped")
    {
        Stop-Service -Name $serviceName
    }
    else
    {
        $result = $UNSPECIFIED_ERROR
    }
}
catch
{
    $result = $REMEDIATION_FAILED
}

return $result
,#
# Copyright (c) Microsoft Corporation. All rights reserved.
#
# This script validates that a service state matches the desired state.
# valid status values are:
#  "Running", "Paused", "Starting", "Pausing", "Stopping", "Stopped"
#
# Script Type: PowerShell
# Script Action: Register
# Script Version: 1

Set-StrictMode -Version latest

$serviceName = "%%SERVICE_NAME%%"
$desiredState = "%%DESIRED_STATE%%"

$COMPLIANT_CODE = 1
$NOT_COMPLIANT_CODE = 0

$result = $NOT_COMPLIANT_CODE

try
{
    if ($desiredState -eq "Running")
    {
        $status = Get-Service -Name $serviceName
        if (($status.Status -eq "Running") -or ($status.Status -eq "Starting"))
        {
            $result = $COMPLIANT_CODE
        }
    }
    elseif ($desiredState -eq "Paused")
    {
        $status = Get-Service -Name $serviceName
        if (($status.Status -eq "Paused") -or ($status.Status -eq "Pausing"))
        {
            $result = $COMPLIANT_CODE
        }
    }
    elseif ($desiredState -eq "Stopped")
    {
        $status = Get-Service -Name $serviceName
        if (($status.Status -eq "Stopped") -or ($status.Status -eq "Stopping"))
        {
            $result = $COMPLIANT_CODE
        }
    }
}
catch
{
    $result = $NOT_COMPLIANT_CODE
}

return $result
��<?xml version="1.0" encoding="utf-8" ?>
<xs:schema id="DcmDigest"
                  targetNamespace="http://schemas.microsoft.com/SystemsCenterConfigurationManager/2009/07/10/DesiredConfiguration"
                  elementFormDefault="qualified"
                  xmlns:xs="http://www.w3.org/2001/XMLSchema"
                  xmlns:tns ="http://schemas.microsoft.com/SystemsCenterConfigurationManager/2009/07/10/DesiredConfiguration"
                  xmlns:rules="http://schemas.microsoft.com/SystemsCenterConfigurationManager/2009/06/14/Rules"
                  version="5">

  <!--  version 5 :
        Added following features -
        - Setting Reference
        - Rule outside setting definition
        - Simple Rule, Conditional Rule, DeploymentType Rule, OperatingSystemDiscovery Condition, PlatformApplicability Rule
        - Rules based on new expression schema - rules.xsd
        - Removal of unsued/invalid elements
    -->
  <!-- version 4 : 
        -   Changed the RuleTypeBase's OperandA datatype to xs:string to allow the specification of empty strings
        -   Modified the RootComplexSettingType and ComplexSetting type. Now only RootComplexSettingType can
            include ParentSimpleSettingReferences.
    -->

  <!-- version 3 : 
        -   Added extensionElements at various places in the schema
        -   Added MinVersion attribute
        -   Added AuthoringVersion attribute
        -   Added ExternalConfigurationItemReference for supporting partially described CIs
        -   Added ExternalXPathDiscoveryInfo into the OtherDiscoverySource for supporting partially described CIs
        -   Added ExternalRule into the SimpleSetting for supporting partially described CIs
        -   Added wildcard extensions to several places in the schema for future extensions
    -->

  <!--Note: It is a best-practice that instance documents conforming to this schema should include a 
        comment that references this schema's version attribute-->

  <!--Import other schemas -->
  <xs:import namespace="http://schemas.microsoft.com/SystemsCenterConfigurationManager/2009/06/14/Rules"/>

  <!--Substitution group heads-->
  <xs:element name="ConfigurationItem" type="tns:ConfigurationItemType" abstract="true"/>
  <xs:element name="ConfigurationItemWithContents" type="tns:ConfigurationItemWithContentsType" abstract="true"/>
  <xs:element name="Part" type="tns:PartType" abstract="true"/>
  <xs:element name="DiscoverySource" type="tns:DiscoverySourceType" abstract="true"/>
  <xs:element name="OptimizationBase" type="tns:OptimizationBaseType" abstract="true" />

  <!--Elements-->

  <!--Configuration Item elements-->
  <xs:element name="Baseline" type="tns:BaselineType" substitutionGroup="tns:ConfigurationItem"/>
  <xs:element name="Application" type="tns:ApplicationType" substitutionGroup="tns:ConfigurationItemWithContents"/>
  <xs:element name="OperatingSystem" type="tns:OperatingSystemType" substitutionGroup="tns:ConfigurationItemWithContents"/>
  <xs:element name="BusinessPolicy" type="tns:BusinessPolicyType" substitutionGroup="tns:ConfigurationItemWithContents"/>
  <xs:element name="Platform" type="tns:PlatformConfigurationItemType" substitutionGroup="tns:ConfigurationItemWithContents"/>
  <xs:element name="SoftwareUpdate" type="tns:SoftwareUpdateType" substitutionGroup="tns:ConfigurationItem"/>
  <xs:element name="SettingsDefinition" type="tns:SettingsDefinitionType" substitutionGroup="tns:ConfigurationItem"/>
  <xs:element name="ConfigurationPolicy" type="tns:ConfigurationPolicyType" substitutionGroup="tns:ConfigurationItem"/>
  <xs:element name="SoftwareUpdateBundle" type="tns:SoftwareUpdateBundleType" substitutionGroup="tns:ConfigurationItem"/>
  <xs:element name="AuthorizationList" type="tns:AuthorizationListType" substitutionGroup="tns:ConfigurationItem"/>
  <xs:element name="Driver" type="tns:DriverType" substitutionGroup="tns:ConfigurationItem"/>
  <xs:element name="ApplicationPolicy" type="tns:ApplicationPolicyType" substitutionGroup="tns:ConfigurationItem"/>
  <xs:element name="OtherConfigurationItem" type="tns:OtherConfigurationItemType" substitutionGroup="tns:ConfigurationItem"/>

  <!--Global Configuration Items-->
  <xs:element name="GlobalSettings" type="tns:GlobalSettingsConfigurationItemType" substitutionGroup="tns:ConfigurationItemWithContents"/>
  <xs:element name="GlobalExpression" type="tns:GlobalExpressionConfigurationItemType" substitutionGroup="tns:ConfigurationItemWithContents"/>

  <!--Virtual Environment elements -->
  <xs:element name="VirtualEnvironment" type="tns:VirtualEnvironmentConfigurationItemType" substitutionGroup="tns:ConfigurationItemWithContents"/>

  <!--CI References, used by Baselines-->
  <xs:element name="BaseReference" type="rules:ConfigurationItemReferenceType"/>
  <xs:element name="BaselineReference" type="rules:ConfigurationItemReferenceType"/>
  <xs:element name="ApplicationReference" type="rules:ConfigurationItemReferenceType"/>
  <xs:element name="BusinessPolicyReference" type="rules:ConfigurationItemReferenceType"/>
  <xs:element name="SoftwareUpdateReference" type="rules:ConfigurationItemReferenceType"/>
  <xs:element name="SoftwareUpdateBundleReference" type="rules:ConfigurationItemReferenceType"/>
  <xs:element name="OperatingSystemReference" type="rules:ConfigurationItemReferenceType"/>
  <xs:element name="OtherConfigurationItemReference" type="tns:OtherConfigurationItemReferenceType"/>
  <xs:element name="ExternalConfigurationItemReference" type="tns:ExternalConfigurationItemReferenceType" />

  <!--Rule override types-->
  <xs:element name="RuleOverrideReference" type="tns:RuleOverrideReferenceType" />
  <xs:element name="RuleSeverityOverrideReference" type="tns:RuleSeverityOverrideReferenceType"/>

  <!--Part elements-->
  <xs:element name="RegistryKey" type="tns:RegistryKeyType" substitutionGroup="tns:Part"/>
  <xs:element name="RegistryKeyEx" type="tns:RegistryKeyType" substitutionGroup="tns:Part"/>
  <xs:element name="Folder" type="tns:FolderType" substitutionGroup="tns:Part"/>
  <xs:element name="File" type="tns:FileType" substitutionGroup="tns:Part"/>
  <xs:element name="Assembly" type="tns:AssemblyType" substitutionGroup="tns:Part"/>
  <xs:element name="MSI" type="tns:MSIType" substitutionGroup="tns:Part"/>

  <!--Access control-->
  <xs:element name="Permissions" type="tns:AccessControlListType"/>
  <xs:element name="SccmAceEntry" type="tns:SccmAceString"/>

  <!--Settings-->
  <xs:element name="RootComplexSetting" type="tns:RootComplexSettingType"/>
  <xs:element name="ComplexSetting" type="tns:ComplexSettingType"/>
  <xs:element name="SimpleSetting" type="tns:SimpleSettingType"/>

  <!--Discovery sources-->
  <xs:element name="RegistryDiscoverySource" type="tns:RegistryDiscoveryType" substitutionGroup="tns:DiscoverySource"/>
  <xs:element name="IISMetabaseDiscoverySource" type="tns:IISMetabaseDiscoveryType" substitutionGroup="tns:DiscoverySource"/>
  <xs:element name="SqlQueryDiscoverySource" type="tns:SqlQueryDiscoveryType" substitutionGroup="tns:DiscoverySource"/>
  <xs:element name="WqlQueryDiscoverySource" type="tns:WqlQueryDiscoveryType" substitutionGroup="tns:DiscoverySource"/>
  <xs:element name="ScriptDiscoverySource" type="tns:ScriptDiscoveryType" substitutionGroup="tns:DiscoverySource"/>
  <xs:element name="XPathDiscoverySource" type="tns:XPathDiscoveryType" substitutionGroup="tns:DiscoverySource"/>
  <xs:element name="ActiveDirectoryDiscoverySource" type="tns:ActiveDirectoryDiscoveryType" substitutionGroup="tns:DiscoverySource"/>
  <xs:element name="OtherDiscoverySource" type="tns:OtherDiscoveryType" substitutionGroup="tns:DiscoverySource"/>
  <xs:element name="UriDiscoverySource" type="tns:UriDiscoveryType" substitutionGroup="tns:DiscoverySource"/>
  <xs:element name="CIMDiscoverySource" type="tns:CIMDiscoverySource" substitutionGroup="tns:DiscoverySource"/>
  <xs:element name="ParameterizedDiscoverySource" type="tns:ParameterizedDiscoveryType" substitutionGroup="tns:DiscoverySource"/>
  <xs:element name="PlistKeyDiscoverySource" type="tns:PlistKeyDiscoveryType" substitutionGroup="tns:DiscoverySource"/>
  <xs:element name="MacDetectionDiscoverySource" type="tns:MacDetectionDiscoveryType" substitutionGroup="tns:DiscoverySource"/>

  <!-- Optimizations -->
  <xs:element name="BaselevelOptimization" type="tns:BaselevelOptimizationType" substitutionGroup="tns:OptimizationBase"/>

  <!--OperatingSystem Discovery information-->
  <xs:element name="OperatingSystemDiscoveryInfo" type="tns:OSInfoType"/>

  <!--The digest root element-->
  <xs:element name="DesiredConfigurationDigest" type="tns:DigestType"/>

  <!--Types-->
  <xs:simpleType name="FunctionalVersion">
    <xs:restriction base="xs:unsignedLong" />
  </xs:simpleType>

  <xs:simpleType name="AuthoringScopeId">
    <xs:restriction base="xs:Name">
      <!-- Provider and Object Model puts a limit on ModelName (AuthoringScope + LogicalName) to be upto 256 chars -->
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="LogicalName">
    <xs:restriction base="xs:ID">
      <!-- Provider and Object Model puts a limit on ModelName (AuthoringScope + LogicalName) to be upto 256 chars -->
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="DigestType">
    <xs:sequence>
      <xs:choice>
        <xs:element ref="tns:ConfigurationItem"/>
        <xs:element ref="tns:ConfigurationItemWithContents"/>
      </xs:choice>
      <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="skip" />
    </xs:sequence>
    <!--The optional IsComplete attribute is used when the digest xml is embedded
            within an outer Sdm document. If present and true, it indicates that the
            surrounding Sdm is fully described by the digest and can be regnerated.
            If present and false, or missing, the surrounding Sdm contains additional
            information not captured by the digest.-->
    <xs:attribute name="IsComplete" type="xs:boolean" use="optional"/>
    <xs:attribute name="MinVersion" type="tns:FunctionalVersion" use="optional">
      <xs:annotation>
        <xs:documentation>
          The minimum version of the Configuration Manager processor required to process the instance document
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="AuthoringVersion" type="tns:FunctionalVersion" use="optional">
      <xs:annotation>
        <xs:documentation>
          The version of the Configuration Manager processor that the instance was authored against
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="ConfigurationItemOverrideReferenceType" abstract="true">
    <xs:attribute name="AuthoringScopeId" type="xs:Name" use="required"/>
    <xs:attribute name="LogicalName" type="xs:Name" use="required"/>
    <xs:attribute name="Version" type="xs:unsignedInt" use="optional"/>
  </xs:complexType>

  <xs:complexType name="RuleOverrideReferenceType">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemOverrideReferenceType">
        <xs:attribute name="RuleLogicalName" type="xs:Name" use="required"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="RuleSeverityOverrideReferenceType">
    <xs:complexContent>
      <xs:extension base="tns:RuleOverrideReferenceType">
        <xs:attribute name="Severity" type="rules:RuleSeverityType" use="required"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="OtherConfigurationItemReferenceType">
    <xs:complexContent>
      <xs:extension base="rules:ConfigurationItemReferenceType">
        <xs:attribute name="TemplateName" type="xs:Name" use="required"/>
        <xs:attribute name="TargetNamespace" type="xs:anyURI" use ="required" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="ExternalConfigurationItemReferenceType">
    <xs:complexContent>
      <xs:extension base="tns:OtherConfigurationItemReferenceType">
        <xs:sequence>
          <xs:element name="BaseElement" type="xs:Name" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:simpleType name="FolderPropertyNames">
    <xs:restriction base="xs:string">
      <xs:enumeration value="DateCreated"/>
      <xs:enumeration value="DateModified"/>
      <xs:enumeration value="Attributes"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="FilePropertyNames">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Size"/>
      <xs:enumeration value="DateCreated"/>
      <xs:enumeration value="DateModified"/>
      <xs:enumeration value="Version"/>
      <xs:enumeration value="Company"/>
      <xs:enumeration value="ProductName"/>
      <xs:enumeration value="SHA1Hash"/>
      <xs:enumeration value="Attributes"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="AssemblyPropertyNames">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Culture"/>
      <xs:enumeration value="Version"/>
      <xs:enumeration value="PublicKeyToken"/>
      <xs:enumeration value="CacheType"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="ConfigurationItemType" abstract="true">
    <xs:sequence>
      <xs:element ref="rules:Annotation" />
      <!--CIs derived from the base Configuration Manager types will not explicitly specify a base-->
      <xs:choice minOccurs="0" maxOccurs="1">
        <xs:element ref="tns:BaseReference" />
        <xs:element ref="tns:ExternalConfigurationItemReference" />
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="AuthoringScopeId" type="tns:AuthoringScopeId" use="required"/>
    <xs:attribute name="LogicalName" type="tns:LogicalName" use="required"/>
    <xs:attribute name="Version" type="xs:unsignedInt" use="required"/>
  </xs:complexType>

  <xs:complexType name="SettingsDefinitionType">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemType">
        <xs:sequence>
          <xs:element name="Settings" type="tns:SettingsType" minOccurs="0" maxOccurs="1"/>
          <xs:element ref="rules:PlatformApplicabilityCondition" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="SettingsType">
    <xs:sequence>
      <xs:element ref="tns:SimpleSetting" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="ConfigurationPolicyType">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemType">
        <xs:sequence>
          <xs:element name="Rules" type="tns:RulesType" minOccurs="0" maxOccurs="1"/>
          <xs:element ref="rules:PlatformApplicabilityCondition" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="ConfigurationItemWithContentsType" abstract="true">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemType">
        <xs:sequence>
          <xs:element name="Parts" minOccurs="0" maxOccurs="1">
            <xs:complexType>
              <xs:sequence>
                <xs:choice minOccurs="0" maxOccurs="1">
                  <xs:element name="SuppressionReferences">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                          <xs:element ref="tns:RuleOverrideReference"/>
                          <xs:element ref="tns:RuleSeverityOverrideReference"/>
                        </xs:choice>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:choice>
                <xs:element ref="tns:Part" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="Settings" minOccurs="0" maxOccurs="1">
            <xs:complexType>
              <xs:sequence>
                <xs:element ref="tns:RootComplexSetting"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="Rules" type="tns:RulesType" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="RulesType">
    <xs:sequence>
      <xs:element ref="rules:DCMRule" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="NonEmptyStringType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="NamespacePrefixType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="LdapPrefixType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z0-9\-]+://"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="DnNameType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="LdapFilterType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="XPathExpressionType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="WqlNamespaceType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <!--Should prohibit a value that begins with the word "where"-->
  <xs:simpleType name="WqlWhereClauseType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="SqlInstanceNamePattern">
    <xs:restriction base="xs:string">
      <!--localhost or localhost\somename or localhost\*-->
      <xs:pattern value="localhost|localhost\\[\w$#_-]+|localhost\\\*"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="SqlQueryStringType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="MetabasePathType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="RegistryKeyPathType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <!--
        Allow for default registry value
    -->
  <xs:simpleType name="RegistryValueNameType">
    <xs:restriction base="xs:string">
      <xs:minLength value="0" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="RegistryNameFilterType">
    <xs:restriction base="xs:string">
      <xs:minLength value="0" />
    </xs:restriction>
  </xs:simpleType>



  <xs:simpleType name="AssemblyNameType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="FileFilterType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="FolderFilterType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="DefinedPlatformsType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="I386"/>
      <xs:enumeration value="IA64"/>
      <xs:enumeration value="x64"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="DefinedPlatformNamesType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Win NT"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="PlatformMinVersionType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[1-9]\.[0-9]{2}\.[0-9]{4}\.[0-9]" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="PlatformMaxVersionType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[1-9]\.[0-9]{2}\.[0-9]{4}\.[0-9]{1,4}" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="FilePathType">
    <xs:restriction base="xs:string">
      <xs:minLength value="2" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="FolderPathType">
    <xs:restriction base="xs:string">
      <xs:minLength value="3" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="PlatformApplicabilityQueryType">
    <xs:restriction base="xs:string">
      <xs:minLength value="20" />
    </xs:restriction>
  </xs:simpleType>


  <!--
    Logically, platform applicability is a boolean value determined as follows (pseudocode):
        [InstanceCountNotZero(Query1) AND InstanceCountNotZero(Query2)]

    If the Query elements are not present, applicablity is True.

    The attributes are UI hints only and should be ignored for discovery purposes.
    -->
  <xs:complexType name="PlatformApplicabilityConditionType">
    <xs:sequence>
      <xs:element name="Query1" type="tns:PlatformApplicabilityQueryType"/>
      <xs:element name="Query2" type="tns:PlatformApplicabilityQueryType"/>
      <xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="Platform" type="tns:DefinedPlatformsType" use="required"/>
    <xs:attribute name="Name" type="tns:DefinedPlatformNamesType" use="required"/>
    <xs:attribute name="MinVersion" type="tns:PlatformMinVersionType" use="required"/>
    <xs:attribute name="MaxVersion" type="tns:PlatformMaxVersionType" use="required"/>
    <xs:attribute name="DisplayName" type="tns:NonEmptyStringType" use="required"/>
  </xs:complexType>

  <xs:complexType name="PartType" abstract="true">
    <xs:sequence>
      <xs:element ref="rules:Annotation"/>
      <xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="LogicalName" type="tns:LogicalName" use="required"/>
  </xs:complexType>

  <xs:complexType name="DiscoverySourceType" abstract="true">
    <xs:sequence>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="OptimizationBaseType" abstract="true">
    <xs:sequence>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="MsiInfoType">
    <xs:sequence>
      <xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="ProductCode" type="tns:NonEmptyStringType" use="required"/>
    <xs:attribute name="Version" type="tns:NonEmptyStringType" use="optional"/>
    <xs:attribute name="IsPerUser" type="xs:boolean" use="required"/>
  </xs:complexType>

  <xs:simpleType name="ScriptType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="VBScript"/>
      <xs:enumeration value="JScript"/>
      <xs:enumeration value="PowerShell"/>
      <xs:enumeration value="ShellScript"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="ScriptInfoType">
    <xs:sequence>
      <xs:element name="Script" type="tns:NonEmptyStringType" />
      <xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="ScriptType" type="tns:ScriptType" use="required"/>
  </xs:complexType>

  <xs:complexType name="OSInfoType">
    <xs:sequence>
      <xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="MajorVersion" type="xs:unsignedInt" use="required"/>
    <xs:attribute name="MinorVersion" type="xs:unsignedInt" use="required"/>
    <xs:attribute name="BuildVersion" type="xs:unsignedInt" use="required"/>
    <xs:attribute name="ServicePackMajorVersion" type="xs:unsignedInt" use="optional"/>
    <xs:attribute name="ServicePackMinorVersion" type="xs:unsignedInt" use="optional"/>
  </xs:complexType>

  <xs:complexType name="SimpleSettingType">
    <xs:sequence>
      <xs:element ref="rules:Annotation"/>
      <xs:element ref="tns:DiscoverySource" />
      <xs:element name="Applicability" type="tns:SettingApplicabilityType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Optimization" type="tns:OptimizationType" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="LogicalName" type="tns:LogicalName" use="required"/>
    <xs:attribute name="DataType" type="rules:DataTypeType" use="required"/>
    <xs:attribute name="ObjectType" type="xs:string" use="optional"/>
    <xs:attribute name="ApplicableAtUserLogon" type="xs:boolean" use="optional" />
  </xs:complexType>

  <xs:complexType name="SettingApplicabilityType">
    <xs:sequence>
      <xs:element ref="rules:ExpressionBase"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="OptimizationType">
    <xs:sequence>
      <xs:element ref="tns:OptimizationBase"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="BaselevelOptimizationType">
    <xs:complexContent>
      <xs:extension base="tns:OptimizationBaseType">
        <xs:sequence>
          <xs:element ref="tns:CIMDiscoverySource" />
        </xs:sequence>
        <xs:attribute name="DataType" type="rules:DataTypeType" use="required"/>
        <xs:attribute name="ObjectType" type="xs:string" use="optional"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="RootComplexSettingType">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="tns:ComplexSetting" />
      <xs:element ref="tns:SimpleSetting"/>
      <xs:element ref="tns:RuleOverrideReference"/>
      <xs:element ref="tns:RuleSeverityOverrideReference"/>
    </xs:choice>
  </xs:complexType>

  <xs:complexType name="ComplexSettingType">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="tns:ComplexSetting" />
        <xs:element ref="tns:SimpleSetting"/>
      </xs:choice>
      <xs:element ref="rules:Annotation" />
      <xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="LogicalName" type="tns:LogicalName" use="required"/>
  </xs:complexType>

  <xs:simpleType name="RegistryHiveType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="HKEY_CLASSES_ROOT"/>
      <xs:enumeration value="HKEY_CURRENT_CONFIG"/>
      <xs:enumeration value="HKEY_CURRENT_USER"/>
      <xs:enumeration value="HKEY_LOCAL_MACHINE"/>
      <xs:enumeration value="HKEY_USERS"/>
    </xs:restriction>
  </xs:simpleType>


  <xs:simpleType name="SccmAceString">
    <xs:restriction base="xs:string">
      <xs:pattern value="\((A|D|OA|OD);[^;]*;((GA|GR|GW|GX|RC|SD|WD|WO|RP|WP|CC|DC|LC|SW|LO|DT|CR|KA|KR|KW|KX|FR|FW|FX|FA)+|(0x[0-9A-Fa-f]{1,8}));[^;]*;[^;]*;[^;]*\)"/>
      <!--
                Standard ACE SDDL String Format:
                ace_type;ace_flags;rights;object_guid;inherit_object_guid;account_sid

                In the SccmAceString, the following conventions apply:
                ace_type:   This will only allow for ALLOW and DENY type ACEs
                ace_flags:  Not used.
                rights:     The values used here are the entire set of possible string ACE rights
                            or a hexadecimal representation.
                object_guid:         Not used.
                inherit_object_guid: Not used.
                account_sid: This will either be one of the well-known SID strings or a non-resolved name.
                              Non-resolved names will be wrapped in curly braces {}. 
                              No pattern is used to enforce this though for now.
                -->
    </xs:restriction>
  </xs:simpleType>



  <xs:complexType name="AccessControlListType">
    <xs:sequence>
      <xs:element ref="tns:SccmAceEntry" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="IsFullySpecified" type="xs:boolean" use="required"/>
  </xs:complexType>

  <!--CI Types-->

  <xs:complexType name="BaselineType">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemType">
        <xs:sequence>
          <xs:element name="RequiredItems">
            <xs:complexType>
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element ref="tns:ApplicationReference"/>
                <xs:element ref="tns:BusinessPolicyReference"/>
              </xs:choice>
            </xs:complexType>
          </xs:element>
          <xs:element name="ProhibitedItems">
            <xs:complexType>
              <xs:sequence minOccurs="0" maxOccurs="unbounded">
                <xs:element ref="tns:ApplicationReference"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="OptionalItems">
            <xs:complexType>
              <xs:sequence>
                <xs:element ref="tns:ApplicationReference" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="OperatingSystems">
            <xs:complexType>
              <xs:sequence>
                <xs:element ref="tns:OperatingSystemReference" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="SoftwareUpdates">
            <xs:complexType>
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element ref="tns:SoftwareUpdateReference" />
                <xs:element ref="tns:SoftwareUpdateBundleReference" />
              </xs:choice>
            </xs:complexType>
          </xs:element>
          <xs:element name="Baselines">
            <xs:complexType>
              <xs:sequence>
                <xs:element ref="tns:BaselineReference" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="OtherConfigurationItems">
            <xs:complexType>
              <xs:sequence>
                <xs:element ref="tns:OtherConfigurationItemReference" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="ApplicationType">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemWithContentsType">
        <xs:sequence>
          <!--No PlatformApplicabilityCondition means applicable to all platforms-->
          <xs:element ref="rules:PlatformApplicabilityCondition" minOccurs="0" maxOccurs="1"/>
          <!--Either MSI or Script based discovery-->
          <xs:choice>
            <xs:element name="MsiDiscoveryInfo" type="tns:MsiInfoType"/>
            <xs:element name="ScriptDiscoveryInfo" type="tns:ScriptInfoType"/>
            <xs:element name="DeploymentTypeReference" type="rules:DeploymentTypeReferenceType"/>
          </xs:choice>
        </xs:sequence>
        <xs:attribute name="Is64Bit" type="xs:boolean" use="required"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="OperatingSystemType">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemWithContentsType">
        <xs:sequence>
          <!--No PlatformApplicabilityCondition means applicable to all platforms-->
          <xs:element ref="rules:PlatformApplicabilityCondition" minOccurs="0" maxOccurs="1"/>
          <xs:choice>
            <xs:element ref="tns:OperatingSystemDiscoveryInfo"/>
            <xs:element ref="rules:OperatingSystemDiscoveryRule"/>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="BusinessPolicyType">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemWithContentsType">
        <xs:sequence>
          <!--No PlatformApplicabilityCondition means applicable to all platforms-->
          <xs:element ref="rules:PlatformApplicabilityCondition" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="SoftwareUpdateType">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemType">
        <xs:sequence>
          <xs:element ref="tns:ConfigurationMetadata" />
          <xs:element name="SupersededUpdates" minOccurs="0" maxOccurs="1">
            <xs:complexType>
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element ref="tns:SoftwareUpdateReference" />
                <xs:element ref="tns:SoftwareUpdateBundleReference" />
              </xs:choice>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="SoftwareUpdateBundleType">
    <xs:complexContent>
      <xs:extension base="tns:SoftwareUpdateType">
        <xs:sequence>
          <xs:element name="Updates">
            <xs:complexType>
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element ref="tns:SoftwareUpdateReference" />
                <xs:element ref="tns:SoftwareUpdateBundleReference" />
              </xs:choice>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="AuthorizationListType">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemType">
        <xs:sequence>
          <xs:element name="Updates">
            <xs:complexType>
              <xs:sequence>
                <xs:element ref="tns:SoftwareUpdateReference" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="DriverType">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemType">
        <xs:sequence>
          <xs:element name="DriverIdentity" type="tns:DriverIdentityType"/>
          <xs:element name="ModelSections">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="ModelSection" type="tns:ModelSectionType" minOccurs="1" maxOccurs="unbounded"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="BootCriticalEntries" minOccurs="0" maxOccurs="1">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="BootCriticalEntry" type="tns:BootCriticalEntryType" minOccurs="0" maxOccurs="unbounded"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="PlatformApplicabilityConditions" >
            <!--No PlatformApplicabilityCondition means applicable to all platforms-->
            <xs:complexType>
              <xs:sequence>
                <xs:element name="PlatformApplicabilityCondition" type="tns:PlatformApplicabilityConditionType" minOccurs="0"  maxOccurs="unbounded"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <!--
                    Currently used by Software Updates and Driver Catalog for defining content
                    among other things.
                    -->
          <xs:element ref="tns:ConfigurationMetadata" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="ApplicationPolicyType">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemType">
        <xs:sequence>
          <xs:element name="Application" type="rules:ConfigurationItemReferenceType"/>
          <xs:element name="ApplicationDeploymentRules" type="tns:ApplicationDeploymentRulesType"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="OtherConfigurationItemType">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemType">
        <!--Empty extension-->
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- Gloabl Settings CI-->
  <xs:complexType name="GlobalSettingsConfigurationItemType">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemWithContentsType">
        <xs:sequence>
          <!--No PlatformApplicabilityCondition means applicable to all platforms-->
          <xs:element ref="rules:PlatformApplicabilityCondition" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!--Global Expression CI-->
  <xs:complexType name="GlobalExpressionConfigurationItemType">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemWithContentsType">
        <xs:sequence>
          <!--No PlatformApplicabilityCondition means applicable to all platforms-->
          <xs:element ref="rules:PlatformApplicabilityCondition" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!--Virtual Environment CI-->
  <xs:complexType name="VirtualEnvironmentConfigurationItemType">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemWithContentsType">
        <xs:sequence>
          <xs:element ref="rules:VirtualEnvironmentRule" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>


  <!--Platform Configuration Item -->
  <xs:complexType name="PlatformConfigurationItemType">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemWithContentsType">
        <!--No specific schema for Platform Configuration Item-->
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!--Part types-->

  <xs:complexType name="RegistryKeyType">
    <xs:complexContent>
      <xs:extension base="tns:PartType">
        <xs:sequence>
          <xs:element name="Key" type="tns:RegistryKeyPathType" />
          <xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
        <xs:attribute name="Hive" type="tns:RegistryHiveType" use="required"/>
        <xs:attribute name="Is64Bit" type="xs:boolean" use="required"/>
        <xs:attribute name="IsPerUser" type="xs:boolean" use="optional" />
        <xs:attribute name="ApplicableAtUserLogon" type="xs:boolean" use="optional" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="FolderType">
    <xs:complexContent>
      <xs:extension base="tns:PartType">
        <xs:sequence>
          <!--
                    Absolute path to the folder. Explicit UNC names
                    are not supported.
                    -->
          <xs:element name="Path" type="tns:FilePathType"/>
          <xs:element name="Filter" type="tns:FolderFilterType"/>
          <xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
        <xs:attribute name="Depth" type="tns:SearchDepthType" use="optional"/>
        <xs:attribute name="Is64Bit" type="xs:boolean" use="required"/>
        <xs:attribute name="IsPerUser" type="xs:boolean" use="optional" />
        <xs:attribute name="ApplicableAtUserLogon" type="xs:boolean" use="optional" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>


  <xs:complexType name="FileType">
    <!--The same comments from the FolderType apply.-->
    <xs:complexContent>
      <xs:extension base="tns:PartType">
        <xs:sequence>
          <!--
                    Absolute path to the file. Explicit UNC names
                    are not supported.
                    -->
          <xs:element name="Path" type="tns:FilePathType"/>
          <xs:element name="Filter" type="tns:FileFilterType"/>
          <xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
        <xs:attribute name="Depth" type="tns:SearchDepthType" use="optional"/>
        <xs:attribute name="Is64Bit" type="xs:boolean" use="required"/>
        <xs:attribute name="IsPerUser" type="xs:boolean" use="optional" />
        <xs:attribute name="ApplicableAtUserLogon" type="xs:boolean" use="optional" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="AssemblyType">
    <xs:complexContent>
      <xs:extension base="tns:PartType">
        <xs:sequence>
          <xs:element name="AssemblyName" type="tns:AssemblyNameType"/>
          <xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="MSIType">
    <xs:complexContent>
      <xs:extension base="tns:PartType">
        <xs:sequence>
          <xs:element name="ProductCode" type="xs:string" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="IsPerUser" type="xs:boolean" use="optional"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!--Discovery Source Types-->

  <!--
    Base:       Only the base container (typically specified via Path) is searched.

    OneLevel:   Only the first level of containers beneath the base container is searched,
                including the base container itself.
    Subtree:    The entire subtree of containers is searched.
    -->
  <xs:simpleType name="SearchDepthType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Base"/>
      <xs:enumeration value="OneLevel"/>
      <xs:enumeration value="Subtree"/>


    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="RegistryDiscoveryType">
    <xs:complexContent>
      <xs:extension base="tns:DiscoverySourceType">
        <xs:sequence>
          <xs:element name="Key" type="tns:RegistryKeyPathType"/>
          <xs:choice>
            <xs:element name="ValueName" type="tns:RegistryValueNameType"/>
            <xs:element name="ValuePattern" type="tns:RegistryNameFilterType" />
          </xs:choice>
        </xs:sequence>
        <xs:attribute name="Hive" type="tns:RegistryHiveType" use="required"/>
        <xs:attribute name="Depth" type="tns:SearchDepthType" use="optional"/>
        <xs:attribute name="Is64Bit" type="xs:boolean" use="required"/>
        <xs:attribute name="IsPerUser" type="xs:boolean" use="optional" />
        <xs:attribute name="CreateMissingPath" type="xs:boolean" use="optional" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>


  <xs:complexType name="IISMetabaseDiscoveryType">
    <xs:complexContent>
      <xs:extension base="tns:DiscoverySourceType">
        <xs:sequence>
          <xs:element name="Path" type="tns:MetabasePathType"/>
          <xs:element name="PropertyID" type="xs:unsignedInt"/>
        </xs:sequence>
        <xs:attribute name="Depth" type="tns:SearchDepthType" use="optional"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="SqlQueryDiscoveryType">
    <xs:complexContent>
      <xs:extension base="tns:DiscoverySourceType">
        <xs:sequence>
          <xs:element name="Instance" type="tns:SqlInstanceNamePattern" minOccurs="0" maxOccurs="1"/>
          <xs:element name="Database" type="tns:NonEmptyStringType"/>
          <xs:element name="Query" type="tns:SqlQueryStringType"/>
          <xs:element name="ColumnName" type="tns:NonEmptyStringType"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="WqlQueryDiscoveryType">
    <xs:complexContent>
      <xs:extension base="tns:DiscoverySourceType">
        <xs:sequence>
          <xs:element name="Namespace" type="tns:WqlNamespaceType" />
          <xs:element name="Class" type="tns:NonEmptyStringType"/>
          <xs:element name="Property" type="tns:NonEmptyStringType"/>
          <xs:element name="Where" type="tns:WqlWhereClauseType" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="ScriptDefinitionType">
    <xs:simpleContent>
      <xs:extension base="tns:NonEmptyStringType">
        <xs:attribute name="ScriptType" type="tns:ScriptType" use="required"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="ScriptDiscoveryType">
    <xs:complexContent>
      <xs:extension base="tns:DiscoverySourceType">
        <xs:sequence>
          <xs:element name="DiscoveryScriptBody" type="tns:ScriptDefinitionType" />
          <xs:element name="RemediationScriptBody" type="tns:ScriptDefinitionType" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="IsPerUser" type="xs:boolean" use="optional"/>
        <xs:attribute name="Is64Bit" type="xs:boolean" use="optional"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="XPathNamespaceDeclarationType">
    <xs:attribute name="Prefix" type="tns:NamespacePrefixType" use="required"/>
    <xs:attribute name="Namespace" type="xs:anyURI" use="required"/>
  </xs:complexType>

  <xs:element name="NamespaceDeclarations">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="NamespaceDeclaration" type="tns:XPathNamespaceDeclarationType" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="XPathExpression" type="tns:XPathExpressionType"/>

  <xs:complexType name="XPathDiscoveryType">
    <xs:complexContent>
      <xs:extension base="tns:DiscoverySourceType">
        <xs:sequence>
          <xs:element name="FilePath" type="tns:FilePathType"/>
          <xs:element name="Filter" type="tns:FileFilterType"/>
          <xs:element ref="tns:XPathExpression" />
          <xs:element ref="tns:NamespaceDeclarations" minOccurs="0" maxOccurs="1" />
        </xs:sequence>
        <xs:attribute name="Depth" type="tns:SearchDepthType" use="optional"/>
        <xs:attribute name="Is64Bit" type="xs:boolean" use="required"/>
        <xs:attribute name="IsPerUser" type="xs:boolean" use="optional" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="ActiveDirectoryDiscoveryType">
    <xs:complexContent>
      <xs:extension base="tns:DiscoverySourceType">
        <xs:sequence>
          <xs:element name="LdapPrefix" type="tns:LdapPrefixType" />
          <xs:element name="DnName" type="tns:DnNameType"/>
          <xs:element name="Filter" type="tns:LdapFilterType"/>
          <xs:element name="Attribute" type="tns:NonEmptyStringType"/>
        </xs:sequence>
        <xs:attribute name="Depth" type="tns:SearchDepthType" use="optional"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="CIMDiscoverySource">
    <xs:complexContent>
      <xs:extension base="tns:DiscoverySourceType">
        <xs:choice>
          <xs:sequence>
            <xs:element ref="rules:CIMReference"/>
          </xs:sequence>
          <xs:sequence>
            <xs:element name="ConfigurationPointContext" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true"/>
            <xs:element name="ConfigurationPoint" type="xs:string" minOccurs="1" maxOccurs="1" nillable="false"/>
          </xs:sequence>
        </xs:choice>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="UriDiscoveryType">
    <xs:complexContent>
      <xs:extension base="tns:DiscoverySourceType">
        <xs:attribute name="Uri" type="xs:string" use="required"/>
        <xs:attribute name="IsNode" type="xs:boolean" use="optional" />
        <xs:attribute name="TypeOfUri" type="tns:OmaUriType" use="optional" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="PlistKeyDiscoveryType">
    <xs:complexContent>
      <xs:extension base="tns:DiscoverySourceType">
        <xs:attribute name="ApplicationID" type="tns:NonEmptyStringType" use="required"/>
        <xs:attribute name="KeyName" type="tns:NonEmptyStringType" use="required" />
        <xs:attribute name="IsPerUser" type="xs:boolean" use="required" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:simpleType name="MacDetectionType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Package"/>
      <xs:enumeration value="AppBundle"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="MacDetectionDiscoveryType">
    <xs:complexContent>
      <xs:extension base="tns:DiscoverySourceType">
        <xs:attribute name="DetectionId" type="tns:NonEmptyStringType" use="required"/>
        <xs:attribute name="DetectionType" type="tns:MacDetectionType" use="required" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="ParameterizedDiscoveryType">
    <xs:complexContent>
      <xs:extension base="tns:DiscoverySourceType">
        <xs:sequence>
          <xs:element ref="rules:SettingReference" minOccurs="1" maxOccurs="1"/>
          <xs:element ref="rules:ConstantValueList" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:simpleType name="OmaUriType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="OmaUri" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="OtherDiscoveryType">
    <xs:complexContent>
      <xs:extension base="tns:DiscoverySourceType">
        <xs:choice minOccurs="0">
          <xs:element name="ExternalXPathDiscoveryInfo">
            <xs:complexType>
              <xs:sequence>
                <xs:element ref="tns:XPathExpression">
                  <xs:annotation>
                    <xs:documentation>
                      potentially namespace prefixed XPath expression
                    </xs:documentation>
                  </xs:annotation>
                </xs:element>
                <xs:element ref="tns:NamespaceDeclarations">
                  <xs:annotation>
                    <xs:documentation>
                      Additional namespaces and associated prefixes used in the XPath
                      expression above
                    </xs:documentation>
                  </xs:annotation>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!--
    The following definitions are used to support Driver Catalog driver definitions
    -->

  <xs:complexType name="DriverIdentityType">
    <xs:attribute name="Type" type="xs:string" use="required"/>
    <xs:attribute name="INFFile" type="xs:string" use="required"/>
    <xs:attribute name="Class" type="xs:string" use="required"/>
    <xs:attribute name="Provider" type="xs:string" use="required"/>
    <xs:attribute name="Date" type="xs:string" use="required"/>
    <xs:attribute name="Version" type="xs:string" use="required"/>
    <xs:attribute name="Signed" type="xs:boolean" use="required"/>
    <xs:attribute name="Signer" type="xs:string" use="optional"/>
  </xs:complexType>

  <xs:complexType name="ModelSectionType">
    <xs:sequence>
      <xs:element name="Model" type="tns:DriverModelType" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="ManufacturerId" type="xs:string" use="required"/>
    <xs:attribute name="ManufacturerName" type="xs:string" use="required"/>
    <xs:attribute name="TargetOSVersion" type="xs:string" use="required"/>
  </xs:complexType>

  <xs:complexType name="DriverModelType">
    <xs:sequence>
      <xs:element name="HwId" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:string">
              <xs:attribute name="Compatible" type="xs:boolean" use="optional" default="false" />
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="Name" type="xs:string" use="required"/>
    <xs:attribute name="Enabled" type="xs:boolean" use="required"/>
  </xs:complexType>

  <xs:complexType name="BootCriticalEntryType">
    <xs:sequence>
      <xs:element name="Description" type="xs:string"/>
    </xs:sequence>
    <xs:attribute name="HardwareComponent" type="xs:string" use="required"/>
    <xs:attribute name="ID" type="xs:string" use="required"/>
  </xs:complexType>

  <!--
    The following definitions are taken from the schema definiton previously used by
    Software Updates when generating the Sdm v2 packages. They are copied to this
    namespace as an initial step toward schema consolidation.
    -->

  <xs:element name="ConfigurationMetadata">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Provider" type="tns:Provider" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="Version" type="xs:string" use="optional" default="1.0" />
      <xs:attribute name="SmsUniqueIdentity" type="xs:string" use="optional" />
    </xs:complexType>
  </xs:element>

  <xs:simpleType name="FourPartVersion">
    <xs:restriction base="xs:string">
      <xs:pattern value="(0|[1-5][0-9]{0,4}|[7-9][0-9]{0,3}|6[0-4][0-9]{0,3}|6[6-9][0-9]{0,2}|65|65[0-4][0-9]{0,2}|65[6-9][0-9]?|655|655[0-2][0-9]?|655[4-9]|6553[0-5]?).(0|[1-5][0-9]{0,4}|[7-9][0-9]{0,3}|6[0-4][0-9]{0,3}|6[6-9][0-9]{0,2}|65|65[0-4][0-9]{0,2}|65[6-9][0-9]?|655|655[0-2][0-9]?|655[4-9]|6553[0-5]?).(0|[1-5][0-9]{0,4}|[7-9][0-9]{0,3}|6[0-4][0-9]{0,3}|6[6-9][0-9]{0,2}|65|65[0-4][0-9]{0,2}|65[6-9][0-9]?|655|655[0-2][0-9]?|655[4-9]|6553[0-5]?).(0|[1-5][0-9]{0,4}|[7-9][0-9]{0,3}|6[0-4][0-9]{0,3}|6[6-9][0-9]{0,2}|65|65[0-4][0-9]{0,2}|65[6-9][0-9]?|655|655[0-2][0-9]?|655[4-9]|6553[0-5]?)" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="FilePath">
    <xs:restriction base="xs:string" />
  </xs:simpleType>
  <xs:complexType name="File">
    <xs:attribute name="Name" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation>Name of the file on the system (including subfolders, relative to the component root).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Version" type="tns:FourPartVersion" use="optional">
      <xs:annotation>
        <xs:documentation>File version information</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Hash" type="xs:hexBinary" use="optional">
      <xs:annotation>
        <xs:documentation>A hash of the file referred to by name. A hexadecimal string of length depending on the hash algorithm.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="HashAlgorithm" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Algorithm used to create a hash of the file.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Size" type="xs:unsignedLong" use="optional">
      <xs:annotation>
        <xs:documentation>The size of the files in bytes</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SourceURL" type="xs:anyURI" use="optional">
      <xs:annotation>
        <xs:documentation>Location (URL) of the file for download.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ImportPath" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation>Import location, represented by a path (with file name), relative to import root.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Signed" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>Specifies whether the content of the file has been signed.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="Content">
    <xs:sequence>
      <xs:element name="FileContent" type="tns:File" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="ContentDescription" type="rules:LocalizableString" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="ContentId" type="xs:string" use="required" />
    <xs:attribute name="Version" type="xs:unsignedLong" use="optional"/>
    <xs:attribute name="HashAlgorithm" type="xs:string"  use="optional"/>
    <xs:attribute name="Hash" type="xs:hexBinary" use="optional" />
    <xs:attribute name="HashVersion" type="xs:unsignedLong" use="optional" />
  </xs:complexType>
  <xs:simpleType name="LanguageType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="VBScript" />
      <xs:enumeration value="JScript" />
      <xs:enumeration value="WindowsScript" />
      <xs:enumeration value="Wql" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ApplicabilityRuleType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Script" />
      <xs:enumeration value="Wql" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="MethodType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Detect" />
      <xs:enumeration value="Install" />
      <xs:enumeration value="Remove" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="WQLQuery">
    <xs:sequence>
      <xs:element name="NameSpace" type="xs:string" />
      <xs:element name="Query" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ScriptQuery">
    <xs:sequence>
      <xs:element name="Language" type="tns:LanguageType" />
      <xs:element name="Definition" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Applicability">
    <xs:sequence>
      <xs:element name="Parameter" type="tns:PropertyBag" />
    </xs:sequence>
    <xs:attribute name="RuleType" type="tns:ApplicabilityRuleType" />
  </xs:complexType>
  <xs:complexType name="PropertyValue">
    <xs:attribute name="Name" type="xs:string" use="required" />
    <xs:attribute name="Value" type="xs:string" use="required" />
  </xs:complexType>
  <xs:complexType name="PropertyBag">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Property" type="tns:PropertyValue" />
    </xs:choice>
    <xs:attribute name="Name" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="StatusCode">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="Code">
        <xs:complexType>
          <xs:attribute name="Value" type="xs:unsignedLong" use="required"/>
        </xs:complexType>
      </xs:element>
      <xs:element name="Range">
        <xs:complexType>
          <xs:attribute name="Start" type="xs:unsignedLong" use="required" />
          <xs:attribute name="End" type="xs:unsignedLong" use="required" />
        </xs:complexType>
      </xs:element>
    </xs:choice>
    <xs:attribute name="Type" type="xs:string" use="required" />
  </xs:complexType>
  <xs:complexType name="Operation">
    <xs:sequence>
      <xs:element name="Content" type="tns:Content" minOccurs="0" maxOccurs="1" />
      <xs:element name="Parameter" type="tns:PropertyBag" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="StatusCode" type="tns:StatusCode" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="Name" type="tns:MethodType" use="required" />
  </xs:complexType>
  <xs:complexType name="Provider">
    <xs:sequence>
      <xs:element name="Applicability" type="tns:Applicability" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="Operation" type="tns:Operation" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="SourceType" type="xs:string" use="required" />
  </xs:complexType>

  <xs:complexType name="ApplicationDeploymentRulesType">
    <xs:sequence>
      <xs:element ref="rules:DeploymentTypeRule" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
Fa<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="RulesSchema" 
           targetNamespace="http://schemas.microsoft.com/SystemsCenterConfigurationManager/2009/06/14/Rules"
           elementFormDefault="qualified"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:tns ="http://schemas.microsoft.com/SystemsCenterConfigurationManager/2009/06/14/Rules" 
           version="1">

  <!-- All abstract types start here -->
  
  <!-- Rule Base -->  
  <xs:element name="RuleBase" type="tns:RuleBaseType" abstract="true"/>
  <xs:element name="RuleBaseWithIdAndSeverity" type="tns:RuleBaseWithIdAndSeverityType" abstract="true"/>
  <xs:element name="DCMRule" type="tns:RuleBaseWithIdAndSeverityType" substitutionGroup="tns:RuleBaseWithIdAndSeverity" abstract="true"/>

  <xs:complexType name="RuleBaseType">
    <xs:sequence>
      <xs:element ref="tns:Annotation" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="RuleBaseWithIdAndSeverityType">
    <xs:sequence>
      <xs:element ref="tns:Annotation" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" use="required"/>
    <xs:attribute name="Severity" type="tns:RuleSeverityType" use="required"/>
    <xs:attribute name="IsHidden" type="xs:boolean" use="optional"/>
    <xs:attribute name="NonCompliantWhenSettingIsNotFound" type="xs:boolean" use="optional" />
  </xs:complexType>

  <!-- ExpressionOrOperand Base-->
  <xs:element name="ExpressionOrOperandBase" type="tns:ExpressionOrOperandBaseType" abstract="true"/>
  <xs:complexType name="ExpressionOrOperandBaseType">
  </xs:complexType>

  <!-- Expression Base-->
  <xs:element name="ExpressionBase" type="tns:ExpressionBaseType" abstract="true" substitutionGroup="tns:ExpressionOrOperandBase"/>
  <xs:complexType name="ExpressionBaseType">
    <xs:complexContent>
      <xs:extension base="tns:ExpressionOrOperandBaseType">
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- Operand Base-->
  <xs:element name="OperandBase" type="tns:OperandBaseType" abstract="true" substitutionGroup="tns:ExpressionOrOperandBase"/>
  <xs:complexType name="OperandBaseType">
    <xs:complexContent>
      <xs:extension base="tns:ExpressionOrOperandBaseType">
        <xs:attribute name="DataType" type="tns:DataTypeType" use="required"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
 
  <!-- All abstract types end here -->
  
  <!-- All common types start here -->
  <!-- Annotation -->
  <xs:element name="Annotation">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="DisplayName" type="tns:LocalizableString"  />
        <xs:element name="Description" type="tns:LocalizableString" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="LocalizableString">
    <xs:attribute name="Text" type="xs:string" use="required" />
    <xs:attribute name="ResourceId" type="xs:ID" use="optional"/>
  </xs:complexType>

  <!-- CIReference -->
  <xs:complexType name="ConfigurationItemReferenceType">
    <xs:attribute name="AuthoringScopeId" type="xs:Name" use="required"/>
    <xs:attribute name="LogicalName" type="xs:Name" use="required"/>
    <xs:attribute name="Version" type="xs:unsignedInt" use="optional"/>
    <xs:attribute name="RequiresAllVersions" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <!-- RuleSeverity -->
  <xs:simpleType name="RuleSeverityType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="None"/>
      <xs:enumeration value="Informational"/>
      <xs:enumeration value="Warning"/>
      <xs:enumeration value="Critical"/>
      <xs:enumeration value="CriticalWithEvent"/>
      <xs:enumeration value="Other"/>
    </xs:restriction>
  </xs:simpleType>

  <!-- Operator -->
  <xs:simpleType name="OperatorType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="And"/>
      <xs:enumeration value="Or"/>
      <xs:enumeration value="Equals"/>
      <xs:enumeration value="NotEquals"/>
      <xs:enumeration value="GreaterThan"/>
      <xs:enumeration value="LessThan"/>
      <xs:enumeration value="Between"/>
      <xs:enumeration value="GreaterEquals"/>
      <xs:enumeration value="LessEquals"/>
      <xs:enumeration value="BeginsWith"/>
      <xs:enumeration value="NotBeginsWith"/>
      <xs:enumeration value="EndsWith"/>
      <xs:enumeration value="NotEndsWith"/>
      <xs:enumeration value="Contains"/>
      <xs:enumeration value="NotContains"/>
      <xs:enumeration value="AllOf"/>
      <xs:enumeration value="OneOf"/>
      <xs:enumeration value="NoneOf"/>
      <xs:enumeration value="SetEquals"/>
      <!-- Add new operators here -->     
    </xs:restriction>
  </xs:simpleType>

  <!-- VirtualEnvironmentAndOperator -->
  <xs:simpleType name="VirtualEnvironmentAndOperatorType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="And"/>
      <!-- Add new operators here -->
    </xs:restriction>
  </xs:simpleType>


  <!-- VirtualEnvironmentOrOperator -->
  <xs:simpleType name="VirtualEnvironmentOrOperatorType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Or"/>
      <!-- Add new operators here -->
    </xs:restriction>
  </xs:simpleType>
  
  <!-- DataType -->
  <xs:simpleType name="DataTypeType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Boolean"/>
      <xs:enumeration value="DateTime"/>
      <xs:enumeration value="Double"/>
      <xs:enumeration value="Int64"/>
      <xs:enumeration value="String"/>
      <xs:enumeration value="Version"/>
      <xs:enumeration value="FileSystemAccessControl"/>
      <xs:enumeration value="RegistryAccessControl"/>
      <xs:enumeration value="FileSystemAttribute"/>
      <xs:enumeration value="Object"/>
      <!-- Add more scalar types here -->
      <xs:enumeration value="BooleanArray"/>
      <xs:enumeration value="DateTimeArray"/>
      <xs:enumeration value="DoubleArray"/>
      <xs:enumeration value="Int64Array"/>
      <xs:enumeration value="StringArray"/>
      <xs:enumeration value="VersionArray"/>
      <xs:enumeration value="FileSystemAccessControlArray"/>
      <xs:enumeration value="RegistryAccessControlArray"/>
      <xs:enumeration value="FileSystemAttributeArray"/>
      <xs:enumeration value="ObjectArray"/>
      <!-- Add more vector types here -->
    </xs:restriction>
  </xs:simpleType>

  <!-- SettingSourceTypes -->
  <xs:simpleType name="SettingSourceTypes">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Registry"/>
      <xs:enumeration value="RegistryEx"/>
      <xs:enumeration value="IisMetabase"/>
      <xs:enumeration value="SqlQuery"/>
      <xs:enumeration value="WqlQuery"/>
      <xs:enumeration value="Script"/>
      <xs:enumeration value="XPathQuery"/>
      <xs:enumeration value="ADQuery"/>
      <xs:enumeration value="Complex"/>
      <xs:enumeration value="File"/>
      <xs:enumeration value="Folder"/>
      <xs:enumeration value="RegistryKey"/>
      <xs:enumeration value="Assembly"/>
      <xs:enumeration value="Uri"/>      
      <xs:enumeration value="ParameterizedSetting"/>
      <xs:enumeration value="PlistKey"/>
      <xs:enumeration value="MacDetection"/>
      <xs:enumeration value="MSI"/>      
      <xs:enumeration value="CIM"/>
      <xs:enumeration value="Unknown"/>
    </xs:restriction>
  </xs:simpleType>
  
  <!-- All common types end here -->

  <!-- All non-abstract Rule types start here -->
  <xs:element name="Rule" type="tns:RuleType" substitutionGroup="tns:DCMRule"/>
  <xs:element name="ConditionalRule" type="tns:ConditionalRuleType"  substitutionGroup="tns:DCMRule"/>
  <xs:element name="DeploymentTypeRule" type="tns:DeploymentTypeRuleType" substitutionGroup="tns:RuleBaseWithIdAndSeverity"/>
  <xs:element name="VirtualEnvironmentRule" type="tns:VirtualEnvironmentRuleType" substitutionGroup="tns:DCMRule"/>
  <xs:element name="OperatingSystemDiscoveryRule" type="tns:OperatingSystemDiscoveryRuleType" substitutionGroup="tns:RuleBase"/>
  <xs:element name="PlatformApplicabilityCondition" type="tns:PlatformApplicabilityConditionType" substitutionGroup="tns:RuleBase"/>

  <!-- RuleType -->
  <xs:complexType name="RuleType">
    <xs:complexContent>
      <xs:extension base="tns:RuleBaseWithIdAndSeverityType">
        <xs:sequence>          
          <xs:element ref ="tns:ExpressionBase"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- ConditionalRuleType -->
  <xs:complexType name="ConditionalRuleType">
    <xs:complexContent>
      <xs:extension base="tns:RuleBaseWithIdAndSeverityType">
        <xs:sequence>          
          <xs:element name="Condition" type="tns:ConditionType"/>
          <xs:element name="Goal" type="tns:GoalType"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ConditionType">
    <xs:sequence>
      <xs:element ref="tns:ExpressionBase"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="GoalType">
    <xs:sequence>
      <xs:element ref="tns:ExpressionBase"/>
    </xs:sequence>
  </xs:complexType>

  <!-- DeloymentTypeRuleType -->
  <xs:complexType name="DeploymentTypeRuleType">
    <xs:complexContent>
      <xs:extension base="tns:RuleBaseWithIdAndSeverityType">
        <xs:sequence>
          <xs:choice>
            <xs:element ref="tns:DeploymentTypeExpression"/>
            <xs:element ref="tns:DeploymentTypeIntentExpression"/>
          </xs:choice>          
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- VirtualEnvironmentRuleType -->
  <xs:complexType name="VirtualEnvironmentRuleType">
    <xs:complexContent>
      <xs:extension base="tns:RuleBaseWithIdAndSeverityType">
        <xs:sequence>
          <xs:choice>
            <xs:element ref="tns:VirtualEnvironmentExpression"/>
            <xs:element ref="tns:VirtualEnvironmentMemberExpression"/>
            <xs:element ref="tns:VirtualEnvironmentMemberIntentExpression"/>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  
  <!-- OperatingSystemDiscoveryRuleType -->
  <xs:complexType name="OperatingSystemDiscoveryRuleType">
    <xs:complexContent>
      <xs:extension base="tns:RuleBaseType">
        <xs:sequence>
          <xs:element ref="tns:OperatingSystemExpression"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <!-- PlatformApplicabiltyRuleType -->
  <xs:complexType name="PlatformApplicabilityConditionType">
    <xs:complexContent>
      <xs:extension base="tns:RuleBaseType">
        <xs:sequence>
          <xs:element ref="tns:OperatingSystemExpression"/>          
        </xs:sequence>                        
      </xs:extension>      
    </xs:complexContent>
  </xs:complexType>
  
  <!-- All non-abstract Rule types end here -->

  <!-- All non-abstract Expression types start here -->
  <xs:element name="Expression" type="tns:ExpressionType" substitutionGroup="tns:ExpressionBase"/>
  <xs:element name="RuleExpression" type="tns:RuleExpressionType" substitutionGroup="tns:ExpressionBase"/>
  <xs:element name="ConfigurationItemExpression" type="tns:ConfigurationItemExpressionType" substitutionGroup="tns:ExpressionBase"/>
  <xs:element name="GlobalExpression" type="tns:GlobalExpressionType" substitutionGroup="tns:ExpressionBase"/>
  <xs:element name="DeploymentTypeExpression" type="tns:DeploymentTypeExpressionType" substitutionGroup="tns:ExpressionBase"/>
  <xs:element name="DeploymentTypeIntentExpression" type="tns:DeploymentTypeIntentExpressionType" substitutionGroup="tns:ExpressionBase"/>
  <xs:element name="OperatingSystemExpression" type="tns:OperatingSystemExpressionType" substitutionGroup="tns:ExpressionBase"/>
  <xs:element name="VirtualEnvironmentExpression" type="tns:VirtualEnvironmentExpressionType" substitutionGroup="tns:ExpressionBase"/>
  <xs:element name="VirtualEnvironmentMemberExpression" type="tns:VirtualEnvironmentMemberExpressionType" substitutionGroup="tns:ExpressionBase"/>
  <xs:element name="VirtualEnvironmentMemberIntentExpression" type="tns:VirtualEnvironmentMemberIntentExpressionType" substitutionGroup="tns:ExpressionBase"/>
   
  <!-- Expression -->
  <xs:complexType name="ExpressionType">
    <xs:complexContent>
      <xs:extension base="tns:ExpressionBaseType">
        <xs:sequence>
          <xs:element name="Operator" type="tns:OperatorType"/>
          <xs:element name="Operands">
            <xs:complexType>
              <xs:sequence>
                <xs:element ref="tns:ExpressionOrOperandBase" minOccurs="1" maxOccurs="unbounded"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
        <xs:attribute name="IsGroup" type="xs:boolean" use="optional"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- RuleExpression -->
  <xs:complexType name="RuleExpressionType">
    <xs:complexContent>
      <xs:extension base="tns:ExpressionBaseType">
        <xs:attribute name="RuleId" type="xs:string" use="required"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- ConfigurationItemExpression -->
  <xs:complexType name="ConfigurationItemExpressionType">
    <xs:complexContent>
      <xs:extension base="tns:ExpressionBaseType">
        <xs:attribute name="AuthoringScopeId" type="xs:Name" use="required"/>
        <xs:attribute name="LogicalName" type="xs:Name" use="required"/>
        <xs:attribute name="Version" type="xs:unsignedInt" use="optional"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- GlobalExpression -->
  <xs:complexType name="GlobalExpressionType">
    <xs:complexContent>
      <xs:extension base="tns:ExpressionBaseType">
        <xs:attribute name="AuthoringScopeId" type="xs:Name" use="required"/>
        <xs:attribute name="LogicalName" type="xs:Name" use="required"/>
      </xs:extension>                    
    </xs:complexContent>
  </xs:complexType>

  <!-- DeploymentTypeExpression -->
  <xs:complexType name="DeploymentTypeExpressionType">
    <xs:complexContent>
      <xs:extension base="tns:ExpressionBaseType">
        <xs:sequence>
          <xs:element name="Operator" type="tns:OperatorType"/>
          <xs:element name="Operands">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="DeploymentTypeIntentExpression" type="tns:DeploymentTypeIntentExpressionType" minOccurs="1" maxOccurs="unbounded"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>          
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <!-- DeploymentTypeIntentExpression -->
  <xs:complexType name="DeploymentTypeIntentExpressionType">
    <xs:complexContent>
      <xs:extension base="tns:ExpressionBaseType">
        <xs:sequence>
          <xs:element name="DeploymentTypeApplicationReference" type="tns:ConfigurationItemReferenceType"/>
          <xs:element name="DeploymentTypeReference" type="tns:DeploymentTypeReferenceType"/>
        </xs:sequence>
        <xs:attribute name="DesiredState" type="tns:DeploymentTypeDesiredStates" use="required"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  

  <xs:complexType name="DeploymentTypeReferenceType">
    <xs:complexContent>
      <xs:extension base="tns:ConfigurationItemReferenceType">
        <xs:attribute name="Changeable" type="xs:boolean" use="required"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="DeploymentTypeDesiredStates">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Required"/>
      <xs:enumeration value="Prohibited"/>
    </xs:restriction>
  </xs:simpleType>


  <!-- VirtualEnvironmentExpression -->
  <xs:complexType name="VirtualEnvironmentExpressionType">
    <xs:complexContent>
      <xs:extension base="tns:ExpressionBaseType">
        <xs:sequence>
          <xs:element name="VirtualEnvironmentAndOperator" type="tns:VirtualEnvironmentAndOperatorType"/>
          <xs:element name="Operands">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="VirtualEnvironmentMemberExpression" type="tns:VirtualEnvironmentMemberExpressionType" minOccurs="1" maxOccurs="unbounded"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>


  <!-- VirtualEnvironmentMemberExpression -->
  <xs:complexType name="VirtualEnvironmentMemberExpressionType">
    <xs:complexContent>
      <xs:extension base="tns:ExpressionBaseType">
        <xs:sequence>
          <xs:element ref="tns:Annotation" minOccurs="0"/>
          <xs:element name="VirtualEnvironmentOrOperator" type="tns:VirtualEnvironmentOrOperatorType"/>
          <xs:element name="Operands">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="VirtualEnvironmentMemberIntentExpression" type="tns:VirtualEnvironmentMemberIntentExpressionType" minOccurs="1" maxOccurs="unbounded"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- VirtualEnvironmentMemberIntentExpression -->
  <xs:complexType name="VirtualEnvironmentMemberIntentExpressionType">
    <xs:complexContent>
      <xs:extension base="tns:ExpressionBaseType">
        <xs:sequence>
          <xs:element name="DeploymentTypeApplicationReference" type="tns:ConfigurationItemReferenceType"/>
          <xs:element name="DeploymentTypeReference" type="tns:DeploymentTypeReferenceType"/>
        </xs:sequence>
        <xs:attribute name="DesiredState" type="tns:VirtualEnvironmentMemberDesiredStates" use="required"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:simpleType name="VirtualEnvironmentMemberDesiredStates">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Required"/>
      <xs:enumeration value="Optional"/>
    </xs:restriction>
  </xs:simpleType>
  
  <!-- OperatingSystemExpression -->
  <xs:complexType name="OperatingSystemExpressionType">
    <xs:complexContent>
      <xs:extension base="tns:ExpressionBaseType">
        <xs:sequence>
          <xs:element name="Operator" type="tns:OperatorType"/>
          <xs:element name="Operands">
            <xs:complexType>
              <xs:sequence>
                <xs:element ref="tns:RuleExpression" minOccurs="1" maxOccurs="unbounded" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- All non-abstract Expression types end here -->
  
  <!-- All non-abstract Operand types start here -->
  <xs:element name="CIMReference" type="tns:CIMReferenceType" substitutionGroup="tns:OperandBase"/>
  <xs:element name="ConstantValue" type="tns:ConstantValueType" substitutionGroup="tns:OperandBase"/>
  <xs:element name="OUValue" type="tns:OUValueType" substitutionGroup="tns:ConstantValue"/>
  <xs:element name="ConstantObject" type="tns:ConstantObjectType" substitutionGroup="tns:OperandBase"/>
  <xs:element name="ConstantValueList" type="tns:ConstantValueListType" substitutionGroup="tns:OperandBase"/>
  <xs:element name="SettingReference" type="tns:SettingReferenceType" substitutionGroup="tns:OperandBase"/>
  <xs:element name="GlobalSettingReference" type="tns:GlobalSettingReferenceType" substitutionGroup="tns:OperandBase"/>  
  
  <!-- CIMReference -->
  <xs:complexType name="CIMReferenceType">
    <xs:complexContent>
      <xs:extension base="tns:OperandBaseType">
        <xs:attribute name="Namespace" type="xs:string" use="required"/>        
        <xs:attribute name="Class" type="xs:string" use="required"/>
        <xs:attribute name="IsSingleton" type="xs:boolean" use="optional" />
        <xs:attribute name="Property" type="xs:string" use="required"/>
        <xs:attribute name="PropertyAccessor" type="xs:string" use="optional"/>
        <xs:attribute name="IsPropertyAccessorArray" type="xs:boolean" use="optional" />
        <xs:attribute name="Where" type="xs:string" use="optional"/>
        <xs:attribute name="AllKeyPropertySpecified" type="xs:boolean" use="optional"/>
      </xs:extension>      
    </xs:complexContent>
  </xs:complexType>

  <!-- ConstantValue -->
  <xs:complexType name="ConstantValueType">
    <xs:complexContent>
      <xs:extension base="tns:OperandBaseType">
        <xs:attribute name="Value" type="xs:string" use="required"/>       
        <xs:attribute name="Name" type="xs:string" use="optional"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- OUValue -->
  <xs:complexType name="OUValueType">
    <xs:complexContent>
      <xs:extension base="tns:ConstantValueType">
        <xs:attribute name="IncludesSubOU" type="xs:boolean" use="required"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- KeyProperty -->
  <xs:complexType name="KeyPropertyType">
    <xs:sequence>
    </xs:sequence>
    <xs:attribute name="Name" type="xs:string" use="required"/>
    <xs:attribute name="DataType" type="tns:DataTypeType" use="required"/>
    <xs:attribute name="Value" type="xs:string" use="required"/>
  </xs:complexType>

  <!-- ConstantObject -->
  <xs:complexType name="ConstantObjectType">
    <xs:complexContent>
      <xs:extension base="tns:OperandBaseType">
        <xs:sequence>
          <xs:element name="ObjectProperty" type="tns:KeyPropertyType" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="ObjectType" type="xs:string" use="required"/>        
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- ConstantValueList -->
  <xs:complexType name="ConstantValueListType">
    <xs:complexContent>
      <xs:extension base="tns:OperandBaseType">
        <xs:sequence>
          <xs:element ref="tns:ConstantValue" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- SettingReference -->
  <xs:complexType name="SettingReferenceType">
    <xs:complexContent>      
      <xs:extension base="tns:OperandBaseType">
        <xs:attribute name="AuthoringScopeId" type="xs:Name" use="required"/>
        <xs:attribute name="LogicalName" type="xs:Name" use="required"/>
        <xs:attribute name="Version" type="xs:unsignedInt" use="optional"/>
        <xs:attribute name="SettingLogicalName" type="xs:string" use="required"/>
        <xs:attribute name="SettingSourceType" type="tns:SettingSourceTypes" use="required"/>
        <xs:attribute name="Changeable" type="xs:boolean" use="required"/>
        <xs:attribute name="Method" type="tns:SettingMethodTypes" use="optional"/>
        <xs:attribute name="PropertyPath" type="xs:string" use="optional"/>
        <xs:attribute name="ObjectType" type="xs:string" use="optional"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="SettingMethodTypes">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Value"/>
      <xs:enumeration value="Count"/>
    </xs:restriction>
  </xs:simpleType>

  <!-- GlobalSettingReference -->
  <xs:complexType name="GlobalSettingReferenceType">
    <xs:complexContent>
      <xs:extension base="tns:OperandBaseType">
        <xs:attribute name="AuthoringScopeId" type="xs:Name" use="required"/>
        <xs:attribute name="LogicalName" type="xs:Name" use="required"/>
        <xs:attribute name="SettingLogicalName" type="xs:string" use="required"/>
        <xs:attribute name="SettingSourceType" type="tns:SettingSourceTypes" use="required"/>
        <xs:attribute name="Method" type="tns:SettingMethodTypes" use="optional"/>
        <xs:attribute name="PropertyPath" type="xs:string" use="optional"/>
        <xs:attribute name="ObjectType" type="xs:string" use="optional"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- All non-abstract Operand types end here -->
  
</xs:schema>
�g<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1">
    <xs:simpleType name="DesiredStateString">
        <xs:restriction base="xs:string">
            <xs:pattern value="Set|Clear|Unmanaged" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ServiceStateString">
        <xs:restriction base="xs:string">
            <xs:pattern value="Running|Stopped|Paused" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Windows8AppStateString">
        <xs:restriction base="xs:string">
            <xs:pattern value="Enabled|Disabled|Cleared" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="SyncProviderString">
        <xs:restriction base="xs:string">
            <xs:pattern value="None|SyncProvider" />
        </xs:restriction>
    </xs:simpleType>

    <xs:element name="UevAgentConfiguration">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="ComputerPolicy" maxOccurs="1" minOccurs="1">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="MaxPackageSizeInBytes" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:nonNegativeInteger">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SettingsImportNotifyDelayInSeconds" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:nonNegativeInteger">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SettingsImportNotifyEnabled" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SettingsStoragePath" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:string">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SettingsTemplateCatalogPath" maxOccurs="1" minOccurs="0">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:string">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SyncEnabled" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SyncMethod" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="SyncProviderString">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SyncTimeoutInMilliseconds" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:nonNegativeInteger">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="DontSyncWindows8AppSettings" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SyncUnlistedWindows8Apps" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="ContactITUrl" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:anyURI">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="ContactITDescription" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:string">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="TrayIconEnabled" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="FirstUseNotificationEnabled" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="WaitForSyncOnApplicationStart" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="WaitForSyncOnLogon" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="WaitForSyncTimeoutInMilliseconds" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:nonNegativeInteger">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SyncOverMeteredNetwork" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SyncOverMeteredNetworkWhenRoaming" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SyncProviderPingEnabled" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="VdiCollectionName" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:string">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="CurrentComputerUserPolicy" maxOccurs="1" minOccurs="1">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="MaxPackageSizeInBytes" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:nonNegativeInteger">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SettingsImportNotifyDelayInSeconds" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:nonNegativeInteger">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SettingsImportNotifyEnabled" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SettingsStoragePath" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:string">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SyncEnabled" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SyncMethod" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="SyncProviderString">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SyncTimeoutInMilliseconds" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:nonNegativeInteger">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="DontSyncWindows8AppSettings" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SyncUnlistedWindows8Apps" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="WaitForSyncOnApplicationStart" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="WaitForSyncOnLogon" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="WaitForSyncTimeoutInMilliseconds" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:nonNegativeInteger">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SyncOverMeteredNetwork" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SyncOverMeteredNetworkWhenRoaming" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="SyncProviderPingEnabled" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:boolean">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="VdiCollectionName" maxOccurs="1" minOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:string">
                                            <xs:attribute name="DesiredState" type="DesiredStateString" use="required" />
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Services" maxOccurs="unbounded" minOccurs="1">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="ServiceTask">
                                <xs:complexType>
                                    <xs:attribute name="ServiceName" type="xs:string" use="required" />
                                    <xs:attribute name="DesiredState" type="ServiceStateString" use="required"  />
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Windows8AppsComputerPolicy">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element maxOccurs="unbounded" name="Windows8App">
                                <xs:complexType>
                                    <xs:attribute name="PackageFamilyName" type="xs:string" use="required" />
                                    <xs:attribute name="DesiredState" type="Windows8AppStateString" use="required" />
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Windows8AppsCurrentComputerUserPolicy">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element maxOccurs="unbounded" name="Windows8App">
                                <xs:complexType>
                                    <xs:attribute name="PackageFamilyName" type="xs:string" use="required" />
                                    <xs:attribute name="DesiredState" type="Windows8AppStateString" use="required" />
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>+���1V8RSDSf�^���SH�"uM	��Microsoft.Uev.CmUtil.pdb�V�V �V_CorDllMainmscoree.dll�% �0�HX`��4VS_VERSION_INFO��?DVarFileInfo$Translation�XStringFileInfo4000004b0CommentsLCompanyNameMicrosoft Corporation,FileDescription 0FileVersion0.0.0.0RInternalNameMicrosoft.Uev.CmUtil.dll�:LegalCopyrightCopyright (c) Microsoft Corporation. All rights reserved.*LegalTrademarksZOriginalFilenameMicrosoft.Uev.CmUtil.dllv+ProductNameMicrosoft (R) Windows (R) Operating System4ProductVersion0.0.0.08Assembly Version0.0.0.0P�6