<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">I don’t have an issue with no new SAI library.   What I have is a JavaScript layer on top of X3DJSAIL where the glue code is not being upgraded with new versions of Java and Node.js.   We don’t really have a good solution for JavaScript on the server.  So I’ve been plunging ahead in hopes to fill a gap before it becomes a really big hole.   Taking code from X3DOM or X_ITE would be desirable, and I would hope that those projects deliver this so I can use this SAI on the server.<div><br></div><div>Our previous solution, X3DJSONLD.js, seems to have a hole in it with respect to the skeleton containerField.   I haven’t figured out how to create a skeleton field, at least in the ECMAScriptSerializer.js</div><div><br></div><div>We already have some solutions for JSON converted to DOM documents in X3DOM and X_ITE.</div><div><br></div><div>I did not really want to discuss SAI on the JSON thread.</div><div><div><br></div><div>I think a modern ECMAScript 6 SAI would be a reasonable thing to create, if not TypeScript.</div><div><br><div dir="ltr">Sent from my iPad</div><div dir="ltr"><br><blockquote type="cite">On Oct 31, 2021, at 8:46 PM, Joseph D Williams <joedwil@earthlink.net> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="Generator" content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:145826316;
        mso-list-type:hybrid;
        mso-list-template-ids:329652672 941651360 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l1
        {mso-list-id:1210729529;
        mso-list-type:hybrid;
        mso-list-template-ids:-255048776 -1 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:\F0D8;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;
        mso-fareast-font-family:"Times New Roman";
        mso-bidi-font-family:"Times New Roman";}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><div class="WordSection1"><p class="MsoNormal">Does anyone want to discuss SAI for building a scenegraph from X3DJSON?  What approaches are out there?<o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">Just wondering, or waking up, why would there be a special SAI for use with json? All I thought I needed was a way to reliably import/export nodes and parameters ilnto a standard scenegraph using standard SAI interfaces. <o:p></o:p></p><p class="MsoNormal">Sure, using external programming interfaces to build a scene by authoring or importing nodes and statements and structures is possible, but regardless the scenegraph is built from nodes and statements that may be emitted from and external and internal scripts activated when the scene is initialized using the spec SAI. <o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">At this point I still think of the json as a way to store some data and some organized way for import into the x3d scenegraph using the spec interfaces for external and external programming. Bite my lip, but why think of a scenegraph built entirely for json? How can I say no way, too verbose<span style="font-family:"Segoe UI Emoji",sans-serif">😊</span>I don’t think there needs to be a canonical form for a scene built from json, like for x3d xml and x3d Classic. I think it is more appropriate to think of the Json as imported into or from the scene and integrated into the scenegraph to be accessible by SAI using the existing SAI with the canonical user code in XML or Classic (same interfaces for both).<o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">Thanks, <o:p></o:p></p><p class="MsoNormal">Joe<o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in"><p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:joedwil@earthlink.net">Joseph D Williams</a><br><b>Sent: </b>Saturday, October 30, 2021 3:52 PM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a>; <a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a>; <a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a><br><b>Subject: </b>Re: [x3d-public] JSON Schema meeting minutes</p></div><p class="MsoNormal"><o:p> </o:p></p><ul style="margin-top:0in" type="disc"><li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo1">Is there a modeling language which encompasses everything we want to do with schemas and semantics?<o:p></o:p></li></ul><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">We have a modeling language that encompasses objects and object interactions in real time with specific control of the time. At the most abstract is it metaontologies connected to metadata connecting to real and virtual objects with interactive event processing?  <o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><ul style="margin-top:0in" type="disc"><li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo1">textual SysML<o:p></o:p></li></ul><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">Is any of this usable in x3d? Ports, parts, and connectors to start. If it works then writing this language could be a guide to showing flows and interactions in simulations and realtime? <o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">For me, the JSON should be standardized when it can be clearly shown to be an accurate set of rules when transcoding between the XML, the Classic, and the JSON, given the idea that the XML is the defining schema. That is, for a given set of data, equivalent results can be produced to and from equivalent data in other standard forms. <o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">Now, for the SAI, are we past just system of defining and validating syntax and data structures for textual x3dscenegraphs and now are looking for connects between these great achievements and some way to abstractly define and validate event processing by the scene object and internal and external objects composing the scene from internal and external events? Then not only can be validate the user code but also validate event processing without actually having to run the thing. <o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">That is where the sysML comes in, maybe, is laying out the hierarchy and structures of the processes and flows in a project. Like showing that these two things are things and when this thing is started, then this other thing also should start, and if one takes too long then this should happen. I think the x3d scengraph can precisely document timing and event flows that the user has defined, so a competent x3d authoring system should be able to validate the syntax and structures and event flows and timing within the  scenegraph at any operating point.  <o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">Joe <o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in"><p class="MsoNormal"><b>From: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Friday, October 29, 2021 3:18 PM<br><b>To: </b><a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a>; <a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a><br><b>Subject: </b>Re: [x3d-public] JSON Schema meeting minutes<o:p></o:p></p></div><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal">Note that encodings, bindings and schemas are different things, except that bindings are starting to look a lot like encodings now.  JSON schema has not yet achieved standardization, we are using draft 2020-12, and it looks a bit like the JSON schema crew are having a bit of an issue getting a standards body to endorse it.   Since both glTF and X3D could make use of a JSON schema standard, I recommend that either Khronos and/or Web3d consortium suggest a standards body to the JSON schema folks.  Something like ECMA seems like a natural fit.<o:p></o:p></p><div><p class="MsoNormal"><o:p> </o:p></p></div><div><p class="MsoNormal">Note that X3D JSON schema depends on JSON schema for vocabulary.<o:p></o:p></p></div><div><p class="MsoNormal"><o:p> </o:p></p></div><div><p class="MsoNormal">In the early days of X3DJSON I looked for something that would convert XML schema to JSON schema, but it looked like any tool were were going to use would not match what we were creating with X3D JSON.  I don’t know if there’s sufficient umph in XMLSpy to do it, but we might consider a post-processing tool.<o:p></o:p></p></div><div><p class="MsoNormal"><o:p> </o:p></p></div><div><p class="MsoNormal">I may still have code around that converts xsd to owl to vowl if anyone is interested.<o:p></o:p></p></div><div><p class="MsoNormal"><o:p> </o:p></p></div><div><p class="MsoNormal">Another place we might place effort is a validating API for X3D JSON.  I view that as a valuable task, but I don’t have the personal passion or brainpower to push it through.   First things first.  You probably shouldn’t write parser without a specification.<o:p></o:p></p></div><div><p class="MsoNormal"><o:p> </o:p></p></div><div><p class="MsoNormal">This is pretty much the 5th JSON schema draft we’ve developed for, not counting all the X3D versions.<o:p></o:p></p></div><div><p class="MsoNormal"><o:p> </o:p></p></div><div><p class="MsoNormal">We have X3DJSONLD deployed in 2 browsers and on sourceforge.   Does anyone want to discuss SAI for building a scenegraph from X3DJSON?  What approaches are out there?<o:p></o:p></p></div><div><p class="MsoNormal"><o:p> </o:p></p></div><div><p class="MsoNormal">What’s worrying me is the lack of expressively in X3DUOM compared to other schemas  (geoSystem, oneOf).   Perhaps we should convert to a textual SysML?   Is there a modeling language which encompasses everything we want to do with schemas and semantics?<o:p></o:p></p></div><div><p class="MsoNormal"><o:p> </o:p></p></div><div><p class="MsoNormal">John<o:p></o:p></p></div><div><div><div><p class="MsoNormal"><o:p> </o:p></p><div><p class="MsoNormal">Sent from my iPad<o:p></o:p></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><p class="MsoNormal" style="margin-bottom:12.0pt">On Oct 25, 2021, at 2:10 AM, Brutzman, Donald (Don) (CIV) <brutzman@nps.edu> wrote:<o:p></o:p></p></blockquote></div><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><div><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">Hi Joe.  The USE pattern we were working on in the X3D JSON Schema was common to all nodes, not just HAnim nodes.  So no change of functionality expected.<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">We are always striving for consistent expressive power for all the different language bindings and file encodings.<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">We have 3950 X3D Examples to test.  More are always welcome for the archives if you think that further coverage is needed of some capability.<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">all the best, Don<br><span style="font-size:10.0pt;font-family:"Courier New"">-- <br>Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman@nps.edu<br>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<br>X3D graphics, virtual worlds, Navy robotics <a href="https://faculty.nps.edu/brutzman">https://faculty.nps.edu/brutzman</a></span><o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in"><p class="MsoNormal"><b>From: </b><a href="mailto:joedwil@earthlink.net">Joseph D Williams</a><br><b>Sent: </b>Sunday, October 24, 2021 5:12 PM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a>; <a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Public Mailing List (x3d-public@web3d.org)</a><br><b>Subject: </b>RE: [x3d-public] JSON Schema meeting minutes<o:p></o:p></p></div><p class="MsoNormal"> <o:p></o:p></p><div><p class="MsoNormal">Hi John, Getting this to work will help. Are you looking for examples to validate, beginning with a .x3d file? <o:p></o:p></p><p class="MsoNormal">If I can include USE in the HanimDisplacer pt. then I can include USE as Interpolator key and value fields(?)<o:p></o:p></p><p class="MsoNormal">Including a USE in any of the HAnim… nodes Joints, Segments, Sites is not going to work unless, well, I can’t really see how it would work in a ‘standard’ humanoid.<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">Thanks,<o:p></o:p></p><p class="MsoNormal">Joe<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in"><p class="MsoNormal"><b>From: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Sunday, October 24, 2021 11:44 AM<br><b>To: </b><a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Public Mailing List (x3d-public@web3d.org)</a><br><b>Subject: </b>Re: [x3d-public] JSON Schema meeting minutes<o:p></o:p></p></div><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">Don, schema is here, python seems to be working with added metaschema checks.<br><br><a href="https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcoderextreme%2FX3DJSONLD%2Ftree%2Fmaster%2Fsrc%2Fmain%2Fschema&data=04%7C01%7Cbrutzman%40nps.edu%7C51fbb182092b4d5bb02c08d9974c199c%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637707175517256956%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=ZcklHNEBEtinlpnaTacqhx6dQUY2X0MYdh7vhMIRo1M%3D&reserved=0">https://github.com/coderextreme/X3DJSONLD/tree/master/src/main/schema</a><o:p></o:p></p><div><p class="MsoNormal"> <o:p></o:p></p></div><div><p class="MsoNormal">Next on agenda is bpy to JSON conversion, possibly with added GUI/X3D conversion tool.<o:p></o:p></p></div><div><div><p class="MsoNormal"> <o:p></o:p></p></div><div><p class="MsoNormal">John<o:p></o:p></p></div><div><p class="MsoNormal"> <o:p></o:p></p></div><div><div><p class="MsoNormal">Sent from my iPad<o:p></o:p></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt"> <o:p></o:p></p><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><p class="MsoNormal" style="margin-bottom:12.0pt">On Oct 18, 2021, at 5:09 PM, Brutzman, Donald (Don) (CIV) <brutzman@nps.edu> wrote:<o:p></o:p></p></blockquote></div><blockquote style="margin-top:5.0pt;margin-bottom:5.0pt"><div><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">John and I reviewed his latest schema today and discussed various design considerations.<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">His latest version, generated by a Python program reading X3DUOM, is found as follows:<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><ul style="margin-top:0in" type="disc"><li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo2">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/schema/x3d-4.0-JSONSchema.json<o:p></o:p></li></ul><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">Looking at the result in Firefox was helpful because that has a great way to look at JSON which allowed us to iconize/expand (fold/unfold) as needed.  Excerpt follows.<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">The result looks great.  One refinement John will handle: for nodes with a USE field, no -children nodes are permitted.<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">Once he has the next version, I will check it into the specifications directory (next to X3D XML Schema and XML DOCTYPE).<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">At that point we are ready to begin further validation efforts using multivarious tools against the many X3D examples in JSON, such as<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><ul style="margin-top:0in" type="disc"><li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo2">https://savage.nps.edu/Savage/GroundVehicles/Jeep/Jeep.json<o:p></o:p></li></ul><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">Testing without regex patterns is good for now.  A prior version had acceptable regex, so that appears to be do-able.<o:p></o:p></p><p class="MsoNormal"> <o:p></o:p></p><p class="MsoNormal">Having fun with X3D JSON!  8)<o:p></o:p></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New""> </span><o:p></o:p></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">all the best, Don</span><o:p></o:p></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">-- </span><o:p></o:p></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman@nps.edu</span><o:p></o:p></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149</span><o:p></o:p></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">X3D graphics, virtual worlds, navy robotics https://</span> <span style="font-size:10.0pt;font-family:"Courier New"">faculty.nps.edu/brutzman</span><o:p></o:p></p></div></blockquote></div></div><p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:2.0in;margin-bottom:5.0pt;margin-left:2.0in"> <o:p></o:p></p></div><p class="MsoNormal"> <o:p></o:p></p></div></blockquote></div></div></div><p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:.5in;margin-bottom:5.0pt;margin-left:.5in"> <o:p></o:p></p><p class="MsoNormal"><o:p> </o:p></p><p class="MsoNormal"><o:p> </o:p></p></div></div></blockquote></div></div></body></html>