From a3b25f8e7e24e834a57c28a324f31ef0fcd58df3 Mon Sep 17 00:00:00 2001
From: danlu1 Page not found (404)
C:\Program Files\R\R-4.1.3\bin\R.exe
install.packages("synapser", repos = c("http://ran.synapse.org", "http://cran.fhcrc.org"))
+install.packages("synapser", repos = c("http://ran.synapse.org", "https://cloud.r-project.org"))
Once that’s complete, we are ready to move on to selecting our desired Python interpreter. If the above fails, follow the steps below, then run the installation.
@@ -258,7 +258,7 @@Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
vignettes/manageSynapseCredentials.Rmd
manageSynapseCredentials.Rmd
.synapseConfig
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
vignettes/synapser.Rmd
synapser.Rmd
-install.packages("synapser", repos = c("http://ran.synapse.org", "http://cran.fhcrc.org"))
install.packages("synapser", repos = c("http://ran.synapse.org", "https://cloud.r-project.org"))
Alternatively, edit your ~/.Rprofile
and configure your
default repositories:
options(repos = c("http://ran.synapse.org", "https://cloud.r-project.org"))
after which you may run install.packages
without
specifying the repositories:
@@ -224,7 +224,7 @@Accessing DataView the entity’s metadata in the R console:
+## File(cacheDir='/tmp/Rtmp80GXo3', path='/tmp/Rtmp80GXo3/filec1c87d9109a9', _file_handle={'id': '146071290', 'etag': '1a85dde3-ce5e-4919-a468-7c1fba003c04', 'createdBy': '3434599', 'createdOn': '2024-08-21T00:58:00.000Z', 'modifiedOn': '2024-08-21T00:58:00.000Z', 'concreteType': 'org.sagebionetworks.repo.model.file.S3FileHandle', 'contentType': 'application/octet-stream', 'contentMd5': '8465d33d9f407ef250ce519e92f300fb', 'fileName': 'filec1c87d9109a9', 'storageLocationId': 1, 'contentSize': 23, 'status': 'AVAILABLE', 'bucketName': 'proddata.sagebase.org', 'key': '3434599/a0bd2d54-9bca-478d-8cba-f48095a50b4f/filec1c87d9109a9', 'isPreview': False, 'externalURL': None}, isLatestVersion=True, dataFileHandleId='146071290', versionComment='Some sort of comment about the new version of the file.', files=['filec1c87d9109a9'], synapseStore=True, parentId='syn62283513', versionNumber=1, modifiedOn='2024-08-21T00:57:59.924Z', id='syn62283514', name='filec1c87d9109a9', createdOn='2024-08-21T00:57:59.924Z', concreteType='org.sagebionetworks.repo.model.FileEntity', etag='2e738235-7137-4265-bcbf-fed0313c3942', createdBy='3434599', modifiedBy='3434599', versionLabel='1')print(fileEntity) -## File(etag='2b7ad4bd-0d68-492d-b498-0b6ef755ac3f', path='/tmp/Rtmp4S7mb6/file5d9a34d94eef', isLatestVersion=True, modifiedOn='2024-08-01T16:24:17.543Z', parentId='syn61936057', files=['file5d9a34d94eef'], modifiedBy='3434599', createdBy='3434599', concreteType='org.sagebionetworks.repo.model.FileEntity', _file_handle={'id': '145242493', 'etag': 'ef274d17-e94a-416f-9765-7604cda628a8', 'createdBy': '3434599', 'createdOn': '2024-08-01T16:24:17.000Z', 'modifiedOn': '2024-08-01T16:24:17.000Z', 'concreteType': 'org.sagebionetworks.repo.model.file.S3FileHandle', 'contentType': 'application/octet-stream', 'contentMd5': '8465d33d9f407ef250ce519e92f300fb', 'fileName': 'file5d9a34d94eef', 'storageLocationId': 1, 'contentSize': 23, 'status': 'AVAILABLE', 'bucketName': 'proddata.sagebase.org', 'key': '3434599/c5a43b08-60b0-4c68-83e2-022bc7b31cf8/file5d9a34d94eef', 'isPreview': False, 'externalURL': None}, name='file5d9a34d94eef', dataFileHandleId='145242493', versionLabel='1', id='syn61936058', createdOn='2024-08-01T16:24:17.543Z', versionNumber=1, cacheDir='/tmp/Rtmp4S7mb6', versionComment='Some sort of comment about the new version of the file.', synapseStore=True)
This is one simple way to read in a small matrix (we load just the first few rows):
@@ -292,7 +292,7 @@Organizing Data in a Project## [1] "Data" ## ## [[1]]$id -## [1] "syn61936059" +## [1] "syn62283515" ## ## [[1]]$type ## [1] "org.sagebionetworks.repo.model.Folder" @@ -307,13 +307,13 @@
Organizing Data in a Project## [1] TRUE ## ## [[1]]$benefactorId -## [1] 61936057 +## [1] 62283513 ## ## [[1]]$createdOn -## [1] "2024-08-01T16:24:18.830Z" +## [1] "2024-08-21T00:58:01.127Z" ## ## [[1]]$modifiedOn -## [1] "2024-08-01T16:24:18.830Z" +## [1] "2024-08-21T00:58:01.127Z" ## ## [[1]]$createdBy ## [1] "3434599" @@ -324,10 +324,10 @@
Organizing Data in a Project## ## [[2]] ## [[2]]$name -## [1] "file5d9a34d94eef" +## [1] "filec1c87d9109a9" ## ## [[2]]$id -## [1] "syn61936058" +## [1] "syn62283514" ## ## [[2]]$type ## [1] "org.sagebionetworks.repo.model.FileEntity" @@ -342,13 +342,13 @@
Organizing Data in a Project## [1] TRUE ## ## [[2]]$benefactorId -## [1] 61936057 +## [1] 62283513 ## ## [[2]]$createdOn -## [1] "2024-08-01T16:24:17.543Z" +## [1] "2024-08-21T00:57:59.924Z" ## ## [[2]]$modifiedOn -## [1] "2024-08-01T16:24:17.543Z" +## [1] "2024-08-21T00:57:59.924Z" ## ## [[2]]$createdBy ## [1] "3434599" @@ -364,7 +364,7 @@
Organizing Data in a Project## [1] "Data" ## ## [[1]]$id -## [1] "syn61936059" +## [1] "syn62283515" ## ## [[1]]$type ## [1] "org.sagebionetworks.repo.model.Folder" @@ -379,13 +379,13 @@
Organizing Data in a Project## [1] TRUE ## ## [[1]]$benefactorId -## [1] 61936057 +## [1] 62283513 ## ## [[1]]$createdOn -## [1] "2024-08-01T16:24:18.830Z" +## [1] "2024-08-21T00:58:01.127Z" ## ## [[1]]$modifiedOn -## [1] "2024-08-01T16:24:18.830Z" +## [1] "2024-08-21T00:58:01.127Z" ## ## [[1]]$createdBy ## [1] "3434599" @@ -396,10 +396,10 @@
Organizing Data in a Project## ## [[2]] ## [[2]]$name -## [1] "file5d9a34d94eef" +## [1] "filec1c87d9109a9" ## ## [[2]]$id -## [1] "syn61936058" +## [1] "syn62283514" ## ## [[2]]$type ## [1] "org.sagebionetworks.repo.model.FileEntity" @@ -414,13 +414,13 @@
Organizing Data in a Project## [1] TRUE ## ## [[2]]$benefactorId -## [1] 61936057 +## [1] 62283513 ## ## [[2]]$createdOn -## [1] "2024-08-01T16:24:17.543Z" +## [1] "2024-08-21T00:57:59.924Z" ## ## [[2]]$modifiedOn -## [1] "2024-08-01T16:24:17.543Z" +## [1] "2024-08-21T00:57:59.924Z" ## ## [[2]]$createdBy ## [1] "3434599" @@ -443,7 +443,7 @@
Organizing Data in a Project## [1] "Data" ## ## $id -## [1] "syn61936059" +## [1] "syn62283515" ## ## $type ## [1] "org.sagebionetworks.repo.model.Folder" @@ -458,13 +458,13 @@
Organizing Data in a Project## [1] TRUE ## ## $benefactorId -## [1] 61936057 +## [1] 62283513 ## ## $createdOn -## [1] "2024-08-01T16:24:18.830Z" +## [1] "2024-08-21T00:58:01.127Z" ## ## $modifiedOn -## [1] "2024-08-01T16:24:18.830Z" +## [1] "2024-08-21T00:58:01.127Z" ## ## $createdBy ## [1] "3434599" @@ -473,10 +473,10 @@
Organizing Data in a Project## [1] "3434599" ## ## $name -## [1] "file5d9a34d94eef" +## [1] "filec1c87d9109a9" ## ## $id -## [1] "syn61936058" +## [1] "syn62283514" ## ## $type ## [1] "org.sagebionetworks.repo.model.FileEntity" @@ -491,13 +491,13 @@
Organizing Data in a Project## [1] TRUE ## ## $benefactorId -## [1] 61936057 +## [1] 62283513 ## ## $createdOn -## [1] "2024-08-01T16:24:17.543Z" +## [1] "2024-08-21T00:57:59.924Z" ## ## $modifiedOn -## [1] "2024-08-01T16:24:17.543Z" +## [1] "2024-08-21T00:57:59.924Z" ## ## $createdBy ## [1] "3434599" @@ -530,7 +530,7 @@
Organizing Data in a Project= TRUE ) ## Retrieving a deleted folder causes: Error in value[[3L]](cond): 404 Client Error: -## Entity syn61936059 is in trash can.
In addition to simple data storage, Synapse entities can be annotated with key/value metadata, described in markdown documents (wikis), and linked together in provenance graphs to create a reproducible record of @@ -703,12 +703,12 @@
Now public can read:
synGetAcl(project, principal_id = 273950)
@@ -965,7 +965,7 @@ More information
-Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
diff --git a/docs/articles/systemDependencies.html b/docs/articles/systemDependencies.html
index 367737a8..a130c64f 100644
--- a/docs/articles/systemDependencies.html
+++ b/docs/articles/systemDependencies.html
@@ -33,7 +33,7 @@
@@ -105,7 +105,7 @@
System Dependencies
Tom Yu
- 2024-08-01
+ 2024-08-21
Source: vignettes/systemDependencies.Rmd
systemDependencies.Rmd
@@ -170,7 +170,7 @@ Redhat Installation
-Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
vignettes/tables.Rmd
tables.Rmd
table <- synBuildTable("My Favorite Genes", project, genes)
table$schema
-## Schema(columnIds=[], name='My Favorite Genes', concreteType='org.sagebionetworks.repo.model.table.TableEntity', parentId='syn61936067', columns_to_store=[{'name': 'Name', 'columnType': 'STRING', 'maximumSize': 30, 'defaultValue': '', 'concreteType': 'org.sagebionetworks.repo.model.table.ColumnModel'}, {'name': 'Chromosome', 'columnType': 'INTEGER', 'concreteType': 'org.sagebionetworks.repo.model.table.ColumnModel'}, {'name': 'Start', 'columnType': 'INTEGER', 'concreteType': 'org.sagebionetworks.repo.model.table.ColumnModel'}, {'name': 'End', 'columnType': 'INTEGER', 'concreteType': 'org.sagebionetworks.repo.model.table.ColumnModel'}, {'name': 'Strand', 'columnType': 'STRING', 'maximumSize': 30, 'defaultValue': '', 'concreteType': 'org.sagebionetworks.repo.model.table.ColumnModel'}, {'name': 'TranscriptionFactor', 'columnType': 'BOOLEAN', 'concreteType': 'org.sagebionetworks.repo.model.table.ColumnModel'}, {'name': 'Time', 'columnType': 'INTEGER', 'concreteType': 'org.sagebionetworks.repo.model.table.ColumnModel'}])
synBuildTable
creates a Table Schema based on the data
and returns a Table object that can be stored in Synapse using
synStore()
. To create a custom Table Schema, defines the
@@ -222,7 +222,7 @@
For example, let’s update the names of some of our favorite genes:
@@ -364,14 +364,14 @@Notes on Dates and Timesdf <- as.data.frame(results) df$Time <- as.POSIXlt("2015-07-04 05:22", tz = "UTC", format = "%Y-%m-%d %H:%M") synStore(Table(tableId, moreGenes)) -## <synapseclient.table.CsvFileTable object at 0x74741ab61fc0>
Dates may also be submitted in timestamp milliseconds:
results <- synTableQuery(sprintf("select * from %s where Name='zap'", tableId))
df <- as.data.frame(results)
df$Time <- timestamp
synStore(Table(tableId, moreGenes))
-## <synapseclient.table.CsvFileTable object at 0x74741ab25ed0>
Note that using POSIXlt
is strongly preferred over
POSIXct
, because POSIXct
does not store values
with enough precision to reliably recover milliseconds. For more
@@ -416,7 +416,7 @@
To view annotations on table, retrieve the schema:
schema <- synGet(tableId)
@@ -499,7 +499,7 @@ Queries
-Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
diff --git a/docs/articles/troubleshooting.html b/docs/articles/troubleshooting.html
index 210c862c..54b40f7c 100644
--- a/docs/articles/troubleshooting.html
+++ b/docs/articles/troubleshooting.html
@@ -33,7 +33,7 @@
@@ -105,7 +105,7 @@
Troubleshooting
Tom Yu
- 2024-08-01
+ 2024-08-21
Source: vignettes/troubleshooting.Rmd
troubleshooting.Rmd
@@ -262,7 +262,7 @@ Type Conversions
-Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
diff --git a/docs/articles/upload.html b/docs/articles/upload.html
index d2617101..931d2bf6 100644
--- a/docs/articles/upload.html
+++ b/docs/articles/upload.html
@@ -33,7 +33,7 @@
@@ -105,7 +105,7 @@
File Upload
Tom Yu
- 2024-08-01
+ 2024-08-21
Source: vignettes/upload.Rmd
upload.Rmd
@@ -241,7 +241,7 @@ Downloading a Specific Version
-Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
vignettes/views.Rmd
views.Rmd
data <- as.data.frame(queryResults)
data
## ROW_ID ROW_VERSION ROW_ETAG id
-## 1 61936088 1 24b535f4-5dc4-452c-8f2f-273b0a1065ba syn61936088
-## 2 61936090 1 9f61a946-506d-4c38-80c1-ad416a66c662 syn61936090
+## 1 62283536 1 fc8f9520-9eac-4e86-9bb5-80827c26b91f syn62283536
+## 2 62283537 1 85fa4ee1-e28f-4113-8486-a27b070de4e7 syn62283537
## name description createdOn createdBy
-## 1 file5f68b331f1c <NA> 2024-08-01 16:25:59 3434599
-## 2 file5f68516c0850 <NA> 2024-08-01 16:25:59 3434599
+## 1 filec3d26300b69f <NA> 2024-08-21 00:59:41 3434599
+## 2 filec3d26e1406ab <NA> 2024-08-21 00:59:42 3434599
## etag modifiedOn modifiedBy
-## 1 24b535f4-5dc4-452c-8f2f-273b0a1065ba 2024-08-01 16:25:59 3434599
-## 2 9f61a946-506d-4c38-80c1-ad416a66c662 2024-08-01 16:26:00 3434599
+## 1 fc8f9520-9eac-4e86-9bb5-80827c26b91f 2024-08-21 00:59:41 3434599
+## 2 85fa4ee1-e28f-4113-8486-a27b070de4e7 2024-08-21 00:59:42 3434599
## path type
-## 1 My unique project 30ebf9058adab6f606eec173f5a6c485/file5f68b331f1c file
-## 2 My unique project 30ebf9058adab6f606eec173f5a6c485/file5f68516c0850 file
+## 1 My unique project 0fb1ce7d28c510effb6f19e613694b46/filec3d26300b69f file
+## 2 My unique project 0fb1ce7d28c510effb6f19e613694b46/filec3d26e1406ab file
## currentVersion parentId benefactorId projectId dataFileHandleId
-## 1 1 syn61936087 syn61936087 syn61936087 145242556
-## 2 1 syn61936087 syn61936087 syn61936087 145242558
+## 1 1 syn62283535 syn62283535 syn62283535 146071347
+## 2 1 syn62283535 syn62283535 syn62283535 146071348
## dataFileName dataFileSizeBytes dataFileMD5Hex
-## 1 file5f68b331f1c 37 47dfe7f5eaa49a5413c7b79b67ab9c43
-## 2 file5f68516c0850 38 ba01e01b9e3ffea3ebef95efa62998b0
+## 1 filec3d26300b69f 37 47dfe7f5eaa49a5413c7b79b67ab9c43
+## 2 filec3d26e1406ab 38 ba01e01b9e3ffea3ebef95efa62998b0
## dataFileConcreteType dataFileBucket
## 1 org.sagebionetworks.repo.model.file.S3FileHandle proddata.sagebase.org
## 2 org.sagebionetworks.repo.model.file.S3FileHandle proddata.sagebase.org
## dataFileKey contributor
-## 1 3434599/79ca9df2-76d2-4e5a-b6fe-85300911ef39/file5f68b331f1c UW
-## 2 3434599/6d00c029-74de-45e5-95ae-ba19858ff3b9/file5f68516c0850 UW
+## 1 3434599/3ae1ce75-7edc-4c11-8ca2-23527177cf32/filec3d26300b69f UW
+## 2 3434599/ba98835c-e1ce-40cb-a111-b07f9fe35ecf/filec3d26e1406ab UW
## class rank
## 1 <NA> X
## 2 <NA> X
@@ -241,7 +241,7 @@
data$contributor[1] <- c("Sage Bionetworks")
synStore(Table(view$properties$id, data[1,]))
-## <synapseclient.table.CsvFileTable object at 0x7614993efdc0>
+## <synapseclient.table.CsvFileTable object at 0x7863a8c6fe80>
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Tom Yu. Maintainer. +
Dan Lu. Author, maintainer. +
+Tom Yu. Author.
Hoff B (2024). +
Lu D, Yu T, Hoff B (2024). synapser: R Language Bindings for Synapse API. -R package version 2.1.0, https://www.synapse.org. +R package version 2.1.1, https://www.synapse.org.
@Manual{, title = {synapser: R Language Bindings for Synapse API}, - author = {Bruce Hoff}, + author = {Dan Lu and Tom Yu and Bruce Hoff}, year = {2024}, - note = {R package version 2.1.0}, + note = {R package version 2.1.1}, url = {https://www.synapse.org}, }@@ -122,7 +126,7 @@
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
synapser
can be installed or upgraded using the standard install.packages()
command, adding the Sage Bionetworks R Archive Network (RAN) to the repository list, e.g.:
-install.packages("synapser", repos=c("http://ran.synapse.org", "http://cran.fhcrc.org"))
install.packages("synapser", repos=c("http://ran.synapse.org", "https://cloud.r-project.org"))
Alternatively, edit your ~/.Rprofile and configure your default repositories:
+options(repos=c("http://ran.synapse.org", "https://cloud.r-project.org"))
after which you may run install.packages without specifying the repositories:
install.packages("synapser")
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
NEWS.md
~/.synapseConfig
file.rememberMe
has been deprecated in synLogin
.synGet
and synSetProvenance
.synStore
.synCreateExternalS3FileHandle
.For more changes, please view the Release Notes on the Python client documentation.
+rememberMe
has been deprecated in synLogin
.synSetAnnotations
removed as it is not working as expected due to implementation in the Python API.Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.
Developed by Tom Yu, Bruce Hoff.
+Developed by Dan Lu, Tom Yu, Bruce Hoff.