diff --git a/iguana/SuperNET.h b/iguana/SuperNET.h index 5ed8cb4d2..0c86dbe97 100644 --- a/iguana/SuperNET.h +++ b/iguana/SuperNET.h @@ -135,6 +135,7 @@ int32_t SuperNET_hexmsgfind(struct supernet_info *myinfo,bits256 category,bits25 void category_posthexmsg(struct supernet_info *myinfo,bits256 category,bits256 subhash,char *hexmsg,struct tai now); void *category_sub(struct supernet_info *myinfo,bits256 category,bits256 subhash); struct category_msg *category_gethexmsg(struct supernet_info *myinfo,bits256 categoryhash,bits256 subhash); +char *SuperNET_htmlstr(char *fname,char *htmlstr,int32_t maxsize,char *agentstr); char *SuperNET_categorymulticast(struct supernet_info *myinfo,int32_t surveyflag,bits256 categoryhash,bits256 subcategory,char *message,int32_t maxdelay,int32_t broadcastflag,int32_t plaintext); diff --git a/iguana/field.html b/iguana/field.html index 74dceff1c..5bf3a5399 100644 --- a/iguana/field.html +++ b/iguana/field.html @@ -1,4 +1,4 @@ -
- - +
+ +
\ No newline at end of file diff --git a/iguana/formfooter.html b/iguana/formfooter.html index ecc2e5faa..19f0a6b6e 100644 --- a/iguana/formfooter.html +++ b/iguana/formfooter.html @@ -1,17 +1,17 @@
-
-
- -
+
+
+ +
-                                    
+                                    
                                 
- +
diff --git a/iguana/formheader.html b/iguana/formheader.html index bb8b84e8f..872aed91d 100644 --- a/iguana/formheader.html +++ b/iguana/formheader.html @@ -1,16 +1,16 @@ -
-
-

- +
+ -
-
+
+
-
-
-
+ +
+
\ No newline at end of file diff --git a/iguana/forms.html b/iguana/forms.html deleted file mode 100644 index a06db022c..000000000 --- a/iguana/forms.html +++ /dev/null @@ -1,5024 +0,0 @@ - - - - - - - - SuperNET API> - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - -
- -
-
- - -
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- - - -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
- - -
- - -
-
-
-
- -
-
-                                    
-                                
-
-
-
-
- -
- -
-
-
-
- -
- - - - - - - - - - diff --git a/iguana/iguana_json.c b/iguana/iguana_json.c index 60b7bd35e..b01fe202c 100755 --- a/iguana/iguana_json.c +++ b/iguana/iguana_json.c @@ -250,11 +250,12 @@ int32_t pretty_form(FILE *fp,char *formheader,char *formfooter,char *fieldtempla { cJSON *item,*fieldsarray; int32_t j,m,formsize,fieldsize,iter,width,size = 0; char *methodstr,*typestr,*fieldname; - char outstr[2048],outstr2[2048],str[2],widthstr[16]; + char outstr[2048],outstr2[2048],str[2],widthstr[16],both[512]; if ( (methodstr= jstr(methoditem,"method")) == 0 ) methodstr = "method"; if ( agent == 0 ) agent = "agent"; + sprintf(both,"%s-%s",agent,methodstr); outstr[0] = outstr2[0] = str[1] = 0; formsize = fieldsize = 0; if ( (fieldsarray= jarray(&m,methoditem,"fields")) != 0 ) @@ -262,7 +263,7 @@ int32_t pretty_form(FILE *fp,char *formheader,char *formfooter,char *fieldtempla for (iter=0; iter<2; iter++) { if ( iter == 1 ) - fprintf(fp,formheader,methodstr,methodstr,methodstr,agent,methodstr,methodstr,methodstr,agent,methodstr,outstr); + fprintf(fp,formheader,both,both,both,agent,methodstr,both,both,agent,methodstr,outstr); for (j=0; j + + + + + + + SuperNET API> + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + +
+ + +
+
+
+
+ +
+
+                                    
+                                
+
+
+
+
+ +
+ +
+
+
+
+ +
+ + + + + + + + + +