From aarthimohan11@gmail.com Wed May 17 03:21:09 2017 From: Aarthi Mohan To: galaxy-dev@lists.galaxyproject.org Subject: [galaxy-dev] Which ID ('id', 'workflow_id', and 'dataset_id') should be used? Date: Wed, 17 May 2017 15:21:08 +0800 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0724535329579047512==" --===============0724535329579047512== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi all, I will appreciate your help in understanding the 'id' key returned from the API. I am using Galaxy Version 15.03 & bioblend Version 0.8.0. Example: I have highlighted the id and related fields with bold and red. >>> workflowClient.get_invocations('f7bb1edd6b95db62') > [{u'inputs': {u'1': {u'src': u'hda', u'id': u'06d9fe130fbe098e'}}, > u'update_time': u'2017-05-17T03:09:10', u'uuid': > u'fd066a98-3aad-11e7-90e9-1cc1de6d5ef4', u'history_id': > u'b8a0d6158b9961df', u'state': u'scheduled', *u'workflow_id': > u'915ae9a80309f157'*, u'steps': > ... > u'model_class': u'WorkflowInvocation', *u'id': u'8c49be448cfe29bc'*}] Why is the '*workflow_id*' different from the one I passed to the fucntion? And why is that '*workflow_id' *is not found anywhere in the return value? >>> historyClient.show_dataset(hid,'468b2dfe96a5a9a1') > {u'accessible': True, u'resubmitted': False, u'create_time': > u'2017-05-17T03:04:02', u'download_url': > u'/api/histories/b8a0d6158b9961df/contents/468b2dfe96a5a9a1/display', > u'file_size': 545, *u'dataset_id': u'56c890cbef28295c', u'id': > u'468b2dfe96a5a9a1'*, u'misc_info': u'uploaded fastqsanger file', > u'hda_ldda': u'hda', u'metadata_sequences': 5, u'state': u'ok', > u'display_types': [], u'display_apps': [], u'type': u'file', u'file_path': > None, u'misc_blurb': u'5 sequences', u'peek': u' cellpadding=3D"3">
@1
tccacaagccattgtgtgtaattaaccac= taattgtgtataagtttaaact
+
IIIIIIIIIIIIIIIIII= IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
@2
tccaca= agccattgtgtgtaattaaccactaattgtgtataagtttaaact
', > u'update_time': u'2017-05-17T03:04:06', u'data_type': > u'galaxy.datatypes.sequence.FastqSanger', u'tags': [], u'deleted': False, > u'history_id': u'b8a0d6158b9961df', u'meta_files': [], u'genome_build': > u'?', u'hid': 1, u'model_class': u'HistoryDatasetAssociation', > u'metadata_data_lines': 20, u'file_ext': u'fastqsanger', u'annotation': > None, u'metadata_dbkey': u'?', u'history_content_type': u'dataset', *u'name= ': > u'a_1.fastq'*, u'extension': u'fastqsanger', u'visible': True, u'url': > u'/api/histories/b8a0d6158b9961df/contents/468b2dfe96a5a9a1', u'uuid': > u'aa6dcf49-6fe9-49e0-8064-c8bc275a37d5', u'visualizations': [], u'purged': > False, u'api_type': u'file'} > >>> historyClient.show_dataset(hid,'56c890cbef28295c') > {u'accessible': True, u'resubmitted': False, u'create_time': > u'2017-05-17T02:59:27', u'file_size': 64, *u'dataset_id': > u'9ccf9e6f1cf4d1fa', u'id': u'56c890cbef28295c'*, u'misc_info': > u'##fileformat=3DVCFv4.1\n##FILTER=3D passed">\n##fileDate=3D20170517\n##source=3DfreeBayes > v0.9.20\n##reference=3Dlocalref.fa\n##phasing=3Dnone\n##commandline=3D"free= bayes > --bam localbam_0.bam --fasta-reference localref.fa --vcf /home/sphadmi', > u'hda_ldda': u'hda', u'download_url': > u'/api/histories/06ec17aefa2d49dd/contents/56c890cbef28295c/display', > u'state': u'ok', u'display_types': [], u'display_apps': [], u'type': > u'file', u'file_path': None, u'misc_blurb': u'0 lines', u'peek': u' cellspacing=3D"0" cellpadding=3D"3">
#Calculation and writing of high > density regions has completed.
', u'update_time': > u'2017-05-17T02:59:36', u'data_type': u'galaxy.datatypes.data.Text', > u'tags': [], u'deleted': False, u'history_id': u'06ec17aefa2d49dd', > u'meta_files': [], u'genome_build': u'?', u'hid': 44, u'model_class': > u'HistoryDatasetAssociation', u'metadata_data_lines': None, u'file_ext': > u'txt', u'annotation': None, u'metadata_dbkey': u'?', > u'history_content_type': u'dataset', *u'name': u'High density regions',* > u'extension': u'txt', u'visible': False, u'url': > u'/api/histories/06ec17aefa2d49dd/contents/56c890cbef28295c', u'uuid': > u'8b8c70a4-cd2e-43d3-bc77-b06511557c96', u'visualizations': [], u'purged': > False, u'api_type': u'file'} Similarly, here the '*dataset_id' *is different from the one I passed to *show_dataset* method. If I check the '*dataset_id*' from first call, it points to another different file! Please let me know which of these 'id' should be used and what would be the purpose of the other id? Thanks for your help and time! Best, Aarthi --===============0724535329579047512== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.htm" MIME-Version: 1.0 PGRpdiBkaXI9Imx0ciI+SGkgYWxsLDxkaXY+PGJyPjwvZGl2PjxkaXY+SSB3aWxsIGFwcHJlY2lh dGUgeW91ciBoZWxwIGluIHVuZGVyc3RhbmRpbmcgdGhlICYjMzk7aWQmIzM5OyBrZXkgcmV0dXJu ZWQgZnJvbSB0aGUgQVBJLiBJIGFtIHVzaW5nIEdhbGF4eSBWZXJzaW9uIDE1LjAzICZhbXA7IGJp b2JsZW5kIFZlcnNpb24gMC44LjAuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5FeGFtcGxlOjwv ZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+SSBoYXZlIGhpZ2hsaWdodGVkIHRoZSBpZCBhbmQgcmVs YXRlZCBmaWVsZHMgd2l0aCBib2xkIGFuZCByZWQuwqA8L2Rpdj48ZGl2Pjxicj48L2Rpdj48Ymxv Y2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MHB4IDBweCAwcHggMC44 ZXg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0OjFl eCI+Jmd0OyZndDsmZ3Q7IHdvcmtmbG93Q2xpZW50LmdldF9pbnZvY2F0aW9ucygmIzM5O2Y3YmIx ZWRkNmI5NWRiNjImIzM5OynCoDxicj5be3UmIzM5O2lucHV0cyYjMzk7OiB7dSYjMzk7MSYjMzk7 OiB7dSYjMzk7c3JjJiMzOTs6IHUmIzM5O2hkYSYjMzk7LCB1JiMzOTtpZCYjMzk7OiB1JiMzOTsw NmQ5ZmUxMzBmYmUwOThlJiMzOTt9fSwgdSYjMzk7dXBkYXRlX3RpbWUmIzM5OzogdSYjMzk7MjAx Ny0wNS0xN1QwMzowOToxMCYjMzk7LCB1JiMzOTt1dWlkJiMzOTs6IHUmIzM5O2ZkMDY2YTk4LTNh YWQtMTFlNy05MGU5LTFjYzFkZTZkNWVmNCYjMzk7LCB1JiMzOTtoaXN0b3J5X2lkJiMzOTs6IHUm IzM5O2I4YTBkNjE1OGI5OTYxZGYmIzM5OywgdSYjMzk7c3RhdGUmIzM5OzogdSYjMzk7c2NoZWR1 bGVkJiMzOTssIDxiPjxmb250IGNvbG9yPSIjZmYwMDAwIj51JiMzOTt3b3JrZmxvd19pZCYjMzk7 OiB1JiMzOTs5MTVhZTlhODAzMDlmMTU3JiMzOTs8L2ZvbnQ+PC9iPiwgdSYjMzk7c3RlcHMmIzM5 Ozo8YnI+Li4uPGJyPsKgdSYjMzk7bW9kZWxfY2xhc3MmIzM5OzogdSYjMzk7V29ya2Zsb3dJbnZv Y2F0aW9uJiMzOTssIDxiPjxmb250IGNvbG9yPSIjZmYwMDAwIj51JiMzOTtpZCYjMzk7OiB1JiMz OTs4YzQ5YmU0NDhjZmUyOWJjJiMzOTs8L2ZvbnQ+PC9iPn1dPC9ibG9ja3F1b3RlPjxkaXY+PGJy PjwvZGl2PjxkaXY+V2h5IGlzIHRoZSAmIzM5OzxpPndvcmtmbG93X2lkPC9pPiYjMzk7IGRpZmZl cmVudCBmcm9tIHRoZSBvbmUgSSBwYXNzZWQgdG8gdGhlIGZ1Y250aW9uPyBBbmQgd2h5IGlzIHRo YXQgJiMzOTs8aT53b3JrZmxvd19pZCYjMzk7wqA8L2k+aXMgbm90IGZvdW5kIGFueXdoZXJlIGlu IHRoZSByZXR1cm4gdmFsdWU/PC9kaXY+PGRpdj48YnI+PC9kaXY+PGJsb2NrcXVvdGUgY2xhc3M9 ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0 OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPiZndDsmZ3Q7Jmd0 OyBoaXN0b3J5Q2xpZW50LnNob3dfZGF0YXNldChoaWQsJiMzOTs0NjhiMmRmZTk2YTVhOWExJiMz OTspPGJyPnt1JiMzOTthY2Nlc3NpYmxlJiMzOTs6IFRydWUsIHUmIzM5O3Jlc3VibWl0dGVkJiMz OTs6IEZhbHNlLCB1JiMzOTtjcmVhdGVfdGltZSYjMzk7OiB1JiMzOTsyMDE3LTA1LTE3VDAzOjA0 OjAyJiMzOTssIHUmIzM5O2Rvd25sb2FkX3VybCYjMzk7OiB1JiMzOTsvYXBpL2hpc3Rvcmllcy9i OGEwZDYxNThiOTk2MWRmL2NvbnRlbnRzLzQ2OGIyZGZlOTZhNWE5YTEvZGlzcGxheSYjMzk7LCB1 JiMzOTtmaWxlX3NpemUmIzM5OzogNTQ1LCA8Zm9udCBjb2xvcj0iI2ZmMDAwMCI+PGI+dSYjMzk7 ZGF0YXNldF9pZCYjMzk7OiB1JiMzOTs1NmM4OTBjYmVmMjgyOTVjJiMzOTssIHUmIzM5O2lkJiMz OTs6IHUmIzM5OzQ2OGIyZGZlOTZhNWE5YTEmIzM5OzwvYj48L2ZvbnQ+LCB1JiMzOTttaXNjX2lu Zm8mIzM5OzogdSYjMzk7dXBsb2FkZWQgZmFzdHFzYW5nZXIgZmlsZSYjMzk7LCB1JiMzOTtoZGFf bGRkYSYjMzk7OiB1JiMzOTtoZGEmIzM5OywgdSYjMzk7bWV0YWRhdGFfc2VxdWVuY2VzJiMzOTs6 IDUsIHUmIzM5O3N0YXRlJiMzOTs6IHUmIzM5O29rJiMzOTssIHUmIzM5O2Rpc3BsYXlfdHlwZXMm IzM5OzogW10sIHUmIzM5O2Rpc3BsYXlfYXBwcyYjMzk7OiBbXSwgdSYjMzk7dHlwZSYjMzk7OiB1 JiMzOTtmaWxlJiMzOTssIHUmIzM5O2ZpbGVfcGF0aCYjMzk7OiBOb25lLCB1JiMzOTttaXNjX2Js dXJiJiMzOTs6IHUmIzM5OzUgc2VxdWVuY2VzJiMzOTssIHUmIzM5O3BlZWsmIzM5OzogdSYjMzk7 Jmx0O3RhYmxlIGNlbGxzcGFjaW5nPSZxdW90OzAmcXVvdDsgY2VsbHBhZGRpbmc9JnF1b3Q7MyZx dW90OyZndDsmbHQ7dHImZ3Q7Jmx0O3RkJmd0O0AxJmx0Oy90ZCZndDsmbHQ7L3RyJmd0OyZsdDt0 ciZndDsmbHQ7dGQmZ3Q7dGNjYWNhYWdjY2F0dGd0Z3RndGFhdHRhYWNjYWN0YWF0dGd0Z3RhdGFh Z3R0dGFhYWN0Jmx0Oy90ZCZndDsmbHQ7L3RyJmd0OyZsdDt0ciZndDsmbHQ7dGQmZ3Q7KyZsdDsv dGQmZ3Q7Jmx0Oy90ciZndDsmbHQ7dHImZ3Q7Jmx0O3RkJmd0O0lJSUlJSUlJSUlJSUlJSUlJSUlJ SUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSSZsdDsvdGQmZ3Q7Jmx0Oy90ciZndDsmbHQ7 dHImZ3Q7Jmx0O3RkJmd0O0AyJmx0Oy90ZCZndDsmbHQ7L3RyJmd0OyZsdDt0ciZndDsmbHQ7dGQm Z3Q7dGNjYWNhYWdjY2F0dGd0Z3RndGFhdHRhYWNjYWN0YWF0dGd0Z3RhdGFhZ3R0dGFhYWN0Jmx0 Oy90ZCZndDsmbHQ7L3RyJmd0OyZsdDsvdGFibGUmZ3Q7JiMzOTssIHUmIzM5O3VwZGF0ZV90aW1l JiMzOTs6IHUmIzM5OzIwMTctMDUtMTdUMDM6MDQ6MDYmIzM5OywgdSYjMzk7ZGF0YV90eXBlJiMz OTs6IHUmIzM5O2dhbGF4eS5kYXRhdHlwZXMuc2VxdWVuY2UuRmFzdHFTYW5nZXImIzM5OywgdSYj Mzk7dGFncyYjMzk7OiBbXSwgdSYjMzk7ZGVsZXRlZCYjMzk7OiBGYWxzZSwgdSYjMzk7aGlzdG9y eV9pZCYjMzk7OiB1JiMzOTtiOGEwZDYxNThiOTk2MWRmJiMzOTssIHUmIzM5O21ldGFfZmlsZXMm IzM5OzogW10sIHUmIzM5O2dlbm9tZV9idWlsZCYjMzk7OiB1JiMzOTs/JiMzOTssIHUmIzM5O2hp ZCYjMzk7OiAxLCB1JiMzOTttb2RlbF9jbGFzcyYjMzk7OiB1JiMzOTtIaXN0b3J5RGF0YXNldEFz c29jaWF0aW9uJiMzOTssIHUmIzM5O21ldGFkYXRhX2RhdGFfbGluZXMmIzM5OzogMjAsIHUmIzM5 O2ZpbGVfZXh0JiMzOTs6IHUmIzM5O2Zhc3Rxc2FuZ2VyJiMzOTssIHUmIzM5O2Fubm90YXRpb24m IzM5OzogTm9uZSwgdSYjMzk7bWV0YWRhdGFfZGJrZXkmIzM5OzogdSYjMzk7PyYjMzk7LCB1JiMz OTtoaXN0b3J5X2NvbnRlbnRfdHlwZSYjMzk7OiB1JiMzOTtkYXRhc2V0JiMzOTssIDxmb250IGNv bG9yPSIjZmYwMDAwIj48Yj51JiMzOTtuYW1lJiMzOTs6IHUmIzM5O2FfMS5mYXN0cSYjMzk7PC9i PjwvZm9udD4sIHUmIzM5O2V4dGVuc2lvbiYjMzk7OiB1JiMzOTtmYXN0cXNhbmdlciYjMzk7LCB1 JiMzOTt2aXNpYmxlJiMzOTs6IFRydWUsIHUmIzM5O3VybCYjMzk7OiB1JiMzOTsvYXBpL2hpc3Rv cmllcy9iOGEwZDYxNThiOTk2MWRmL2NvbnRlbnRzLzQ2OGIyZGZlOTZhNWE5YTEmIzM5OywgdSYj Mzk7dXVpZCYjMzk7OiB1JiMzOTthYTZkY2Y0OS02ZmU5LTQ5ZTAtODA2NC1jOGJjMjc1YTM3ZDUm IzM5OywgdSYjMzk7dmlzdWFsaXphdGlvbnMmIzM5OzogW10sIHUmIzM5O3B1cmdlZCYjMzk7OiBG YWxzZSwgdSYjMzk7YXBpX3R5cGUmIzM5OzogdSYjMzk7ZmlsZSYjMzk7fTxicj48L2Jsb2NrcXVv dGU+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHgg MHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmct bGVmdDoxZXgiPsKgPC9ibG9ja3F1b3RlPjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIg c3R5bGU9Im1hcmdpbjowcHggMHB4IDBweCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdi KDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij4mZ3Q7Jmd0OyZndDsgaGlzdG9yeUNsaWVu dC5zaG93X2RhdGFzZXQoaGlkLCYjMzk7NTZjODkwY2JlZjI4Mjk1YyYjMzk7KTxicj57dSYjMzk7 YWNjZXNzaWJsZSYjMzk7OiBUcnVlLCB1JiMzOTtyZXN1Ym1pdHRlZCYjMzk7OiBGYWxzZSwgdSYj Mzk7Y3JlYXRlX3RpbWUmIzM5OzogdSYjMzk7MjAxNy0wNS0xN1QwMjo1OToyNyYjMzk7LCB1JiMz OTtmaWxlX3NpemUmIzM5OzogNjQsIDxiPjxmb250IGNvbG9yPSIjZmYwMDAwIj51JiMzOTtkYXRh c2V0X2lkJiMzOTs6IHUmIzM5OzljY2Y5ZTZmMWNmNGQxZmEmIzM5OywgdSYjMzk7aWQmIzM5Ozog dSYjMzk7NTZjODkwY2JlZjI4Mjk1YyYjMzk7PC9mb250PjwvYj4sIHUmIzM5O21pc2NfaW5mbyYj Mzk7OiB1JiMzOTsjI2ZpbGVmb3JtYXQ9VkNGdjQuMVxuIyNGSUxURVI9Jmx0O0lEPVBBU1MsRGVz Y3JpcHRpb249JnF1b3Q7QWxsIGZpbHRlcnMgcGFzc2VkJnF1b3Q7Jmd0O1xuIyNmaWxlRGF0ZT0y MDE3MDUxN1xuIyNzb3VyY2U9ZnJlZUJheWVzIHYwLjkuMjBcbiMjcmVmZXJlbmNlPWxvY2FscmVm LmZhXG4jI3BoYXNpbmc9bm9uZVxuIyNjb21tYW5kbGluZT0mcXVvdDtmcmVlYmF5ZXMgLS1iYW0g bG9jYWxiYW1fMC5iYW0gLS1mYXN0YS1yZWZlcmVuY2UgbG9jYWxyZWYuZmEgLS12Y2YgL2hvbWUv c3BoYWRtaSYjMzk7LCB1JiMzOTtoZGFfbGRkYSYjMzk7OiB1JiMzOTtoZGEmIzM5OywgdSYjMzk7 ZG93bmxvYWRfdXJsJiMzOTs6IHUmIzM5Oy9hcGkvaGlzdG9yaWVzLzA2ZWMxN2FlZmEyZDQ5ZGQv Y29udGVudHMvNTZjODkwY2JlZjI4Mjk1Yy9kaXNwbGF5JiMzOTssIHUmIzM5O3N0YXRlJiMzOTs6 IHUmIzM5O29rJiMzOTssIHUmIzM5O2Rpc3BsYXlfdHlwZXMmIzM5OzogW10sIHUmIzM5O2Rpc3Bs YXlfYXBwcyYjMzk7OiBbXSwgdSYjMzk7dHlwZSYjMzk7OiB1JiMzOTtmaWxlJiMzOTssIHUmIzM5 O2ZpbGVfcGF0aCYjMzk7OiBOb25lLCB1JiMzOTttaXNjX2JsdXJiJiMzOTs6IHUmIzM5OzAgbGlu ZXMmIzM5OywgdSYjMzk7cGVlayYjMzk7OiB1JiMzOTsmbHQ7dGFibGUgY2VsbHNwYWNpbmc9JnF1 b3Q7MCZxdW90OyBjZWxscGFkZGluZz0mcXVvdDszJnF1b3Q7Jmd0OyZsdDt0ciZndDsmbHQ7dGQm Z3Q7I0NhbGN1bGF0aW9uIGFuZCB3cml0aW5nIG9mIGhpZ2ggZGVuc2l0eSByZWdpb25zIGhhcyBj b21wbGV0ZWQuJmx0Oy90ZCZndDsmbHQ7L3RyJmd0OyZsdDsvdGFibGUmZ3Q7JiMzOTssIHUmIzM5 O3VwZGF0ZV90aW1lJiMzOTs6IHUmIzM5OzIwMTctMDUtMTdUMDI6NTk6MzYmIzM5OywgdSYjMzk7 ZGF0YV90eXBlJiMzOTs6IHUmIzM5O2dhbGF4eS5kYXRhdHlwZXMuZGF0YS5UZXh0JiMzOTssIHUm IzM5O3RhZ3MmIzM5OzogW10sIHUmIzM5O2RlbGV0ZWQmIzM5OzogRmFsc2UsIHUmIzM5O2hpc3Rv cnlfaWQmIzM5OzogdSYjMzk7MDZlYzE3YWVmYTJkNDlkZCYjMzk7LCB1JiMzOTttZXRhX2ZpbGVz JiMzOTs6IFtdLCB1JiMzOTtnZW5vbWVfYnVpbGQmIzM5OzogdSYjMzk7PyYjMzk7LCB1JiMzOTto aWQmIzM5OzogNDQsIHUmIzM5O21vZGVsX2NsYXNzJiMzOTs6IHUmIzM5O0hpc3RvcnlEYXRhc2V0 QXNzb2NpYXRpb24mIzM5OywgdSYjMzk7bWV0YWRhdGFfZGF0YV9saW5lcyYjMzk7OiBOb25lLCB1 JiMzOTtmaWxlX2V4dCYjMzk7OiB1JiMzOTt0eHQmIzM5OywgdSYjMzk7YW5ub3RhdGlvbiYjMzk7 OiBOb25lLCB1JiMzOTttZXRhZGF0YV9kYmtleSYjMzk7OiB1JiMzOTs/JiMzOTssIHUmIzM5O2hp c3RvcnlfY29udGVudF90eXBlJiMzOTs6IHUmIzM5O2RhdGFzZXQmIzM5OywgPGZvbnQgY29sb3I9 IiNmZjAwMDAiPjxiPnUmIzM5O25hbWUmIzM5OzogdSYjMzk7SGlnaCBkZW5zaXR5IHJlZ2lvbnMm IzM5Oyw8L2I+PC9mb250PiB1JiMzOTtleHRlbnNpb24mIzM5OzogdSYjMzk7dHh0JiMzOTssIHUm IzM5O3Zpc2libGUmIzM5OzogRmFsc2UsIHUmIzM5O3VybCYjMzk7OiB1JiMzOTsvYXBpL2hpc3Rv cmllcy8wNmVjMTdhZWZhMmQ0OWRkL2NvbnRlbnRzLzU2Yzg5MGNiZWYyODI5NWMmIzM5OywgdSYj Mzk7dXVpZCYjMzk7OiB1JiMzOTs4YjhjNzBhNC1jZDJlLTQzZDMtYmM3Ny1iMDY1MTE1NTdjOTYm IzM5OywgdSYjMzk7dmlzdWFsaXphdGlvbnMmIzM5OzogW10sIHUmIzM5O3B1cmdlZCYjMzk7OiBG YWxzZSwgdSYjMzk7YXBpX3R5cGUmIzM5OzogdSYjMzk7ZmlsZSYjMzk7fTwvYmxvY2txdW90ZT48 ZGl2Pjxicj48L2Rpdj48ZGl2PlNpbWlsYXJseSwgaGVyZSB0aGUgJiMzOTs8aT5kYXRhc2V0X2lk JiMzOTsgPC9pPmlzIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgSSBwYXNzZWQgdG8gPHU+c2hvd19k YXRhc2V0PC91PiBtZXRob2QuIElmIEkgY2hlY2sgdGhlICYjMzk7PGk+ZGF0YXNldF9pZDwvaT4m IzM5OyBmcm9tIGZpcnN0IGNhbGwsIGl0IHBvaW50cyB0byBhbm90aGVyIGRpZmZlcmVudCBmaWxl ITwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+UGxlYXNlIGxldCBtZSBrbm93IHdoaWNoIG9mIHRo ZXNlICYjMzk7aWQmIzM5OyBzaG91bGQgYmUgdXNlZCBhbmQgd2hhdCB3b3VsZCBiZSB0aGUgcHVy cG9zZSBvZiB0aGUgb3RoZXIgaWQ/PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5UaGFua3MgZm9y IHlvdXIgaGVscCBhbmQgdGltZSE8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkJlc3QsPC9kaXY+ PGRpdj5BYXJ0aGk8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pjxicj48 L2Rpdj48L2Rpdj4K --===============0724535329579047512==-- From nsoranzo@tiscali.it Wed May 17 06:29:35 2017 From: Nicola Soranzo To: galaxy-dev@lists.galaxyproject.org Subject: Re: [galaxy-dev] Which ID ('id', 'workflow_id', and 'dataset_id') should be used? Date: Wed, 17 May 2017 11:29:32 +0100 Message-ID: <425570fb-89c2-1e0e-4679-fbb357c872ea@tiscali.it> In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0541843058260231373==" --===============0541843058260231373== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi Aarthi, thanks for your email, see my replies inline. On 17/05/17 08:21, Aarthi Mohan wrote: > Hi all, > > I will appreciate your help in understanding the 'id' key returned=20 > from the API. I am using Galaxy Version 15.03 & bioblend Version 0.8.0. > > Example: > > I have highlighted the id and related fields with bold and red. > > >>> workflowClient.get_invocations('f7bb1edd6b95db62') > [{u'inputs': {u'1': {u'src': u'hda', u'id': u'06d9fe130fbe098e'}}, > u'update_time': u'2017-05-17T03:09:10', u'uuid': > u'fd066a98-3aad-11e7-90e9-1cc1de6d5ef4', u'history_id': > u'b8a0d6158b9961df', u'state': u'scheduled', *u'workflow_id': > u'915ae9a80309f157'*, u'steps': > ... > u'model_class': u'WorkflowInvocation', *u'id': u'8c49be448cfe29bc'*}] > > > Why is the '/workflow_id/' different from the one I passed to the=20 > fucntion? And why is that '/workflow_id' /is not found anywhere in the=20 > return value? The confusion here is generated by the API mixing 2 concepts used by=20 Galaxy to manage workflows: "stored workflows" and "workflows". A stored=20 workflow represents a workflow throughout its life (storing name,=20 description, owner, if it's deleted/published...), while a workflow is=20 particular version of a stored workflow, with the description of the=20 various input, steps, subworkflows. Every time you modify and save a=20 stored workflow in the UI, a new workflow is generated and associated to=20 the stored workflow. The stored workflow is always linked to the latest=20 workflow version. The ids used to interact with the API are the stored workflow ids=20 ('f7bb1edd6b95db62' in your example above), while get_invocations()=20 returns the workflow id ('915ae9a80309f157' in your case). That's=20 because an invocation derives from a particular version of the workflow.=20 It may be good to extend the API to also return the stored workflow id. > > >>> historyClient.show_dataset(hid,'468b2dfe96a5a9a1') > {u'accessible': True, u'resubmitted': False, u'create_time': > u'2017-05-17T03:04:02', u'download_url': > u'/api/histories/b8a0d6158b9961df/contents/468b2dfe96a5a9a1/display', > u'file_size': 545, *u'dataset_id': u'56c890cbef28295c', u'id': > u'468b2dfe96a5a9a1'*, u'misc_info': u'uploaded fastqsanger file', > u'hda_ldda': u'hda', u'metadata_sequences': 5, u'state': u'ok', > u'display_types': [], u'display_apps': [], u'type': u'file', > u'file_path': None, u'misc_blurb': u'5 sequences', u'peek': > u' cellpadding=3D"3">
@1
tccacaagccattgtgtgtaattaa= ccactaattgtgtataagtttaaact
+
IIIIIIIIIIIIII= IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
@2
tc= cacaagccattgtgtgtaattaaccactaattgtgtataagtttaaact
', > u'update_time': u'2017-05-17T03:04:06', u'data_type': > u'galaxy.datatypes.sequence.FastqSanger', u'tags': [], u'deleted': > False, u'history_id': u'b8a0d6158b9961df', u'meta_files': [], > u'genome_build': u'?', u'hid': 1, u'model_class': > u'HistoryDatasetAssociation', u'metadata_data_lines': 20, > u'file_ext': u'fastqsanger', u'annotation': None, > u'metadata_dbkey': u'?', u'history_content_type': u'dataset', > *u'name': u'a_1.fastq'*, u'extension': u'fastqsanger', u'visible': > True, u'url': > u'/api/histories/b8a0d6158b9961df/contents/468b2dfe96a5a9a1', > u'uuid': u'aa6dcf49-6fe9-49e0-8064-c8bc275a37d5', > u'visualizations': [], u'purged': False, u'api_type': u'file'} > > >>> historyClient.show_dataset(hid,'56c890cbef28295c') > {u'accessible': True, u'resubmitted': False, u'create_time': > u'2017-05-17T02:59:27', u'file_size': 64, *u'dataset_id': > u'9ccf9e6f1cf4d1fa', u'id': u'56c890cbef28295c'*, u'misc_info': > u'##fileformat=3DVCFv4.1\n##FILTER=3D passed">\n##fileDate=3D20170517\n##source=3DfreeBayes > v0.9.20\n##reference=3Dlocalref.fa\n##phasing=3Dnone\n##commandline=3D"= freebayes > --bam localbam_0.bam --fasta-reference localref.fa --vcf > /home/sphadmi', u'hda_ldda': u'hda', u'download_url': > u'/api/histories/06ec17aefa2d49dd/contents/56c890cbef28295c/display', > u'state': u'ok', u'display_types': [], u'display_apps': [], > u'type': u'file', u'file_path': None, u'misc_blurb': u'0 lines', > u'peek': u' cellpadding=3D"3">
#Calculation and writing of high density > regions has completed.
', u'update_time': > u'2017-05-17T02:59:36', u'data_type': > u'galaxy.datatypes.data.Text', u'tags': [], u'deleted': False, > u'history_id': u'06ec17aefa2d49dd', u'meta_files': [], > u'genome_build': u'?', u'hid': 44, u'model_class': > u'HistoryDatasetAssociation', u'metadata_data_lines': None, > u'file_ext': u'txt', u'annotation': None, u'metadata_dbkey': u'?', > u'history_content_type': u'dataset', *u'name': u'High density > regions',* u'extension': u'txt', u'visible': False, u'url': > u'/api/histories/06ec17aefa2d49dd/contents/56c890cbef28295c', > u'uuid': u'8b8c70a4-cd2e-43d3-bc77-b06511557c96', > u'visualizations': [], u'purged': False, u'api_type': u'file'} > > > Similarly, here the '/dataset_id' /is different from the one I passed=20 > to _show_dataset_ method. If I check the '/dataset_id/' from first=20 > call, it points to another different file! There's nothing wrong here, the API returns the id of the history=20 dataset you requested in the 'id' field. The 'dataset_id' does not refer=20 to a "history dataset", but to the more general "dataset". A history=20 dataset is a particular instance of a dataset in one history, but the=20 same dataset can be used in other histories or libraries and can be=20 shared with other users. So you may have multiple history datasets and=20 library datasets all pointing to the same file on disk. Cheers, Nicola > Please let me know which of these 'id' should be used and what would=20 > be the purpose of the other id? > > Thanks for your help and time! > > Best, > Aarthi > > > > > > ___________________________________________________________ > Please keep all replies on the list by using "reply all" > in your mail client. To manage your subscriptions to this > and other Galaxy lists, please use the interface at: > https://lists.galaxyproject.org/ > > To search Galaxy mailing lists use the unified search at: > http://galaxyproject.org/search/ --===============0541843058260231373== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.htm" MIME-Version: 1.0 PGh0bWw+CiAgPGhlYWQ+CiAgICA8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRm LTgiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSI+CiAgPC9oZWFkPgogIDxib2R5IGJnY29sb3I9 IiNGRkZGRkYiIHRleHQ9IiMwMDAwMDAiPgogICAgSGkgQWFydGhpLDxicj4KICAgIHRoYW5rcyBm b3IgeW91ciBlbWFpbCwgc2VlIG15IHJlcGxpZXMgaW5saW5lLjxicj4KICAgIDxicj4KICAgIDxk aXYgY2xhc3M9Im1vei1jaXRlLXByZWZpeCI+T24gMTcvMDUvMTcgMDg6MjEsIEFhcnRoaSBNb2hh biB3cm90ZTo8YnI+CiAgICA8L2Rpdj4KICAgIDxibG9ja3F1b3RlCmNpdGU9Im1pZDpDQUpyNGl3 d1A0aTVpS1N6PXZuK040dFBDdHhzdHNqNmVyakVndHg5WVFGPThRT0JEU3dAbWFpbC5nbWFpbC5j b20iCiAgICAgIHR5cGU9ImNpdGUiPgogICAgICA8ZGl2IGRpcj0ibHRyIj5IaSBhbGwsCiAgICAg ICAgPGRpdj48YnI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdj5JIHdpbGwgYXBwcmVjaWF0 ZSB5b3VyIGhlbHAgaW4gdW5kZXJzdGFuZGluZyB0aGUgJ2lkJyBrZXkKICAgICAgICAgIHJldHVy bmVkIGZyb20gdGhlIEFQSS4gSSBhbSB1c2luZyBHYWxheHkgVmVyc2lvbiAxNS4wMyAmYW1wOwog ICAgICAgICAgYmlvYmxlbmQgVmVyc2lvbiAwLjguMC48L2Rpdj4KICAgICAgICA8ZGl2Pjxicj4K ICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2PkV4YW1wbGU6PC9kaXY+CiAgICAgICAgPGRpdj48 YnI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdj5JIGhhdmUgaGlnaGxpZ2h0ZWQgdGhlIGlk IGFuZCByZWxhdGVkIGZpZWxkcyB3aXRoIGJvbGQgYW5kCiAgICAgICAgICByZWQuwqA8L2Rpdj4K ICAgICAgICA8ZGl2Pjxicj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YmxvY2txdW90ZSBjbGFz cz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MHB4IDBweCAwcHgKICAgICAgICAgIDAuOGV4 O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgi PiZndDsmZ3Q7Jmd0OwogICAgICAgICAgd29ya2Zsb3dDbGllbnQuZ2V0X2ludm9jYXRpb25zKCdm N2JiMWVkZDZiOTVkYjYyJynCoDxicj4KICAgICAgICAgIFt7dSdpbnB1dHMnOiB7dScxJzoge3Un c3JjJzogdSdoZGEnLCB1J2lkJzoKICAgICAgICAgIHUnMDZkOWZlMTMwZmJlMDk4ZSd9fSwgdSd1 cGRhdGVfdGltZSc6IHUnMjAxNy0wNS0xN1QwMzowOToxMCcsCiAgICAgICAgICB1J3V1aWQnOiB1 J2ZkMDY2YTk4LTNhYWQtMTFlNy05MGU5LTFjYzFkZTZkNWVmNCcsCiAgICAgICAgICB1J2hpc3Rv cnlfaWQnOiB1J2I4YTBkNjE1OGI5OTYxZGYnLCB1J3N0YXRlJzogdSdzY2hlZHVsZWQnLCA8Yj48 Zm9udAogICAgICAgICAgICAgIGNvbG9yPSIjZmYwMDAwIj51J3dvcmtmbG93X2lkJzogdSc5MTVh ZTlhODAzMDlmMTU3JzwvZm9udD48L2I+LAogICAgICAgICAgdSdzdGVwcyc6PGJyPgogICAgICAg ICAgLi4uPGJyPgogICAgICAgICAgwqB1J21vZGVsX2NsYXNzJzogdSdXb3JrZmxvd0ludm9jYXRp b24nLCA8Yj48Zm9udAogICAgICAgICAgICAgIGNvbG9yPSIjZmYwMDAwIj51J2lkJzogdSc4YzQ5 YmU0NDhjZmUyOWJjJzwvZm9udD48L2I+fV08L2Jsb2NrcXVvdGU+CiAgICAgICAgPGRpdj48YnI+ CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdj5XaHkgaXMgdGhlICc8aT53b3JrZmxvd19pZDwv aT4nIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgSQogICAgICAgICAgcGFzc2VkIHRvIHRoZSBmdWNu dGlvbj8gQW5kIHdoeSBpcyB0aGF0ICc8aT53b3JrZmxvd19pZCfCoDwvaT5pcwogICAgICAgICAg bm90IGZvdW5kIGFueXdoZXJlIGluIHRoZSByZXR1cm4gdmFsdWU/PC9kaXY+CiAgICAgIDwvZGl2 PgogICAgPC9ibG9ja3F1b3RlPgogICAgPGJyPgogICAgVGhlIGNvbmZ1c2lvbiBoZXJlIGlzIGdl bmVyYXRlZCBieSB0aGUgQVBJIG1peGluZyAyIGNvbmNlcHRzIHVzZWQgYnkKICAgIEdhbGF4eSB0 byBtYW5hZ2Ugd29ya2Zsb3dzOiAic3RvcmVkIHdvcmtmbG93cyIgYW5kICJ3b3JrZmxvd3MiLiBB CiAgICBzdG9yZWQgd29ya2Zsb3cgcmVwcmVzZW50cyBhIHdvcmtmbG93IHRocm91Z2hvdXQgaXRz IGxpZmUgKHN0b3JpbmcKICAgIG5hbWUsIGRlc2NyaXB0aW9uLCBvd25lciwgaWYgaXQncyBkZWxl dGVkL3B1Ymxpc2hlZC4uLiksIHdoaWxlIGEKICAgIHdvcmtmbG93IGlzIHBhcnRpY3VsYXIgdmVy c2lvbiBvZiBhIHN0b3JlZCB3b3JrZmxvdywgd2l0aCB0aGUKICAgIGRlc2NyaXB0aW9uIG9mIHRo ZSB2YXJpb3VzIGlucHV0LCBzdGVwcywgc3Vid29ya2Zsb3dzLiBFdmVyeSB0aW1lCiAgICB5b3Ug bW9kaWZ5IGFuZCBzYXZlIGEgc3RvcmVkIHdvcmtmbG93IGluIHRoZSBVSSwgYSBuZXcgd29ya2Zs b3cgaXMKICAgIGdlbmVyYXRlZCBhbmQgYXNzb2NpYXRlZCB0byB0aGUgc3RvcmVkIHdvcmtmbG93 LiBUaGUgc3RvcmVkIHdvcmtmbG93CiAgICBpcyBhbHdheXMgbGlua2VkIHRvIHRoZSBsYXRlc3Qg d29ya2Zsb3cgdmVyc2lvbi48YnI+CiAgICA8YnI+CiAgICBUaGUgaWRzIHVzZWQgdG8gaW50ZXJh Y3Qgd2l0aCB0aGUgQVBJIGFyZSB0aGUgc3RvcmVkIHdvcmtmbG93IGlkcwogICAgKCdmN2JiMWVk ZDZiOTVkYjYyJyBpbiB5b3VyIGV4YW1wbGUgYWJvdmUpLCB3aGlsZSBnZXRfaW52b2NhdGlvbnMo KQogICAgcmV0dXJucyB0aGUgd29ya2Zsb3cgaWQgKCc5MTVhZTlhODAzMDlmMTU3JyBpbiB5b3Vy IGNhc2UpLiBUaGF0J3MKICAgIGJlY2F1c2UgYW4gaW52b2NhdGlvbiBkZXJpdmVzIGZyb20gYSBw YXJ0aWN1bGFyIHZlcnNpb24gb2YgdGhlCiAgICB3b3JrZmxvdy4gSXQgbWF5IGJlIGdvb2QgdG8g ZXh0ZW5kIHRoZSBBUEkgdG8gYWxzbyByZXR1cm4gdGhlIHN0b3JlZAogICAgd29ya2Zsb3cgaWQu PGJyPgogICAgPGJyPgogICAgPGJsb2NrcXVvdGUKY2l0ZT0ibWlkOkNBSnI0aXd3UDRpNWlLU3o9 dm4rTjR0UEN0eHN0c2o2ZXJqRWd0eDlZUUY9OFFPQkRTd0BtYWlsLmdtYWlsLmNvbSIKICAgICAg dHlwZT0iY2l0ZSI+CiAgICAgIDxkaXYgZGlyPSJsdHIiPgogICAgICAgIDxkaXY+PGJyPgogICAg ICAgIDwvZGl2PgogICAgICAgIDxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9 Im1hcmdpbjowcHggMHB4IDBweAogICAgICAgICAgMC44ZXg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlk IHJnYigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0OjFleCI+Jmd0OyZndDsmZ3Q7CiAgICAgICAg ICBoaXN0b3J5Q2xpZW50LnNob3dfZGF0YXNldChoaWQsJzQ2OGIyZGZlOTZhNWE5YTEnKTxicj4K ICAgICAgICAgIHt1J2FjY2Vzc2libGUnOiBUcnVlLCB1J3Jlc3VibWl0dGVkJzogRmFsc2UsIHUn Y3JlYXRlX3RpbWUnOgogICAgICAgICAgdScyMDE3LTA1LTE3VDAzOjA0OjAyJywgdSdkb3dubG9h ZF91cmwnOgogICAgICAgICAgdScvYXBpL2hpc3Rvcmllcy9iOGEwZDYxNThiOTk2MWRmL2NvbnRl bnRzLzQ2OGIyZGZlOTZhNWE5YTEvZGlzcGxheScsCiAgICAgICAgICB1J2ZpbGVfc2l6ZSc6IDU0 NSwgPGZvbnQgY29sb3I9IiNmZjAwMDAiPjxiPnUnZGF0YXNldF9pZCc6CiAgICAgICAgICAgICAg dSc1NmM4OTBjYmVmMjgyOTVjJywgdSdpZCc6IHUnNDY4YjJkZmU5NmE1YTlhMSc8L2I+PC9mb250 PiwKICAgICAgICAgIHUnbWlzY19pbmZvJzogdSd1cGxvYWRlZCBmYXN0cXNhbmdlciBmaWxlJywg dSdoZGFfbGRkYSc6CiAgICAgICAgICB1J2hkYScsIHUnbWV0YWRhdGFfc2VxdWVuY2VzJzogNSwg dSdzdGF0ZSc6IHUnb2snLAogICAgICAgICAgdSdkaXNwbGF5X3R5cGVzJzogW10sIHUnZGlzcGxh eV9hcHBzJzogW10sIHUndHlwZSc6IHUnZmlsZScsCiAgICAgICAgICB1J2ZpbGVfcGF0aCc6IE5v bmUsIHUnbWlzY19ibHVyYic6IHUnNSBzZXF1ZW5jZXMnLCB1J3BlZWsnOgogICAgICAgICAgdScm bHQ7dGFibGUgY2VsbHNwYWNpbmc9IjAiCmNlbGxwYWRkaW5nPSIzIiZndDsmbHQ7dHImZ3Q7Jmx0 O3RkJmd0O0AxJmx0Oy90ZCZndDsmbHQ7L3RyJmd0OyZsdDt0ciZndDsmbHQ7dGQmZ3Q7dGNjYWNh YWdjY2F0dGd0Z3RndGFhdHRhYWNjYWN0YWF0dGd0Z3RhdGFhZ3R0dGFhYWN0Jmx0Oy90ZCZndDsm bHQ7L3RyJmd0OyZsdDt0ciZndDsmbHQ7dGQmZ3Q7KyZsdDsvdGQmZ3Q7Jmx0Oy90ciZndDsmbHQ7 dHImZ3Q7Jmx0O3RkJmd0O0lJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJ SUlJSUlJSUlJSSZsdDsvdGQmZ3Q7Jmx0Oy90ciZndDsmbHQ7dHImZ3Q7Jmx0O3RkJmd0O0AyJmx0 Oy90ZCZndDsmbHQ7L3RyJmd0OyZsdDt0ciZndDsmbHQ7dGQmZ3Q7dGNjYWNhYWdjY2F0dGd0Z3Rn dGFhdHRhYWNjYWN0YWF0dGd0Z3RhdGFhZ3R0dGFhYWN0Jmx0Oy90ZCZndDsmbHQ7L3RyJmd0OyZs dDsvdGFibGUmZ3Q7JywKICAgICAgICAgIHUndXBkYXRlX3RpbWUnOiB1JzIwMTctMDUtMTdUMDM6 MDQ6MDYnLCB1J2RhdGFfdHlwZSc6CiAgICAgICAgICB1J2dhbGF4eS5kYXRhdHlwZXMuc2VxdWVu Y2UuRmFzdHFTYW5nZXInLCB1J3RhZ3MnOiBbXSwKICAgICAgICAgIHUnZGVsZXRlZCc6IEZhbHNl LCB1J2hpc3RvcnlfaWQnOiB1J2I4YTBkNjE1OGI5OTYxZGYnLAogICAgICAgICAgdSdtZXRhX2Zp bGVzJzogW10sIHUnZ2Vub21lX2J1aWxkJzogdSc/JywgdSdoaWQnOiAxLAogICAgICAgICAgdSdt b2RlbF9jbGFzcyc6IHUnSGlzdG9yeURhdGFzZXRBc3NvY2lhdGlvbicsCiAgICAgICAgICB1J21l dGFkYXRhX2RhdGFfbGluZXMnOiAyMCwgdSdmaWxlX2V4dCc6IHUnZmFzdHFzYW5nZXInLAogICAg ICAgICAgdSdhbm5vdGF0aW9uJzogTm9uZSwgdSdtZXRhZGF0YV9kYmtleSc6IHUnPycsCiAgICAg ICAgICB1J2hpc3RvcnlfY29udGVudF90eXBlJzogdSdkYXRhc2V0JywgPGZvbnQgY29sb3I9IiNm ZjAwMDAiPjxiPnUnbmFtZSc6CiAgICAgICAgICAgICAgdSdhXzEuZmFzdHEnPC9iPjwvZm9udD4s IHUnZXh0ZW5zaW9uJzogdSdmYXN0cXNhbmdlcicsCiAgICAgICAgICB1J3Zpc2libGUnOiBUcnVl LCB1J3VybCc6CiAgICAgICAgICB1Jy9hcGkvaGlzdG9yaWVzL2I4YTBkNjE1OGI5OTYxZGYvY29u dGVudHMvNDY4YjJkZmU5NmE1YTlhMScsCiAgICAgICAgICB1J3V1aWQnOiB1J2FhNmRjZjQ5LTZm ZTktNDllMC04MDY0LWM4YmMyNzVhMzdkNScsCiAgICAgICAgICB1J3Zpc3VhbGl6YXRpb25zJzog W10sIHUncHVyZ2VkJzogRmFsc2UsIHUnYXBpX3R5cGUnOiB1J2ZpbGUnfTxicj4KICAgICAgICA8 L2Jsb2NrcXVvdGU+CiAgICAgICAgPGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHls ZT0ibWFyZ2luOjBweCAwcHggMHB4CiAgICAgICAgICAwLjhleDtib3JkZXItbGVmdDoxcHggc29s aWQgcmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij7CoDwvYmxvY2txdW90ZT4KICAg ICAgICA8YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MHB4IDBw eCAwcHgKICAgICAgICAgIDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwy MDQpO3BhZGRpbmctbGVmdDoxZXgiPiZndDsmZ3Q7Jmd0OwogICAgICAgICAgaGlzdG9yeUNsaWVu dC5zaG93X2RhdGFzZXQoaGlkLCc1NmM4OTBjYmVmMjgyOTVjJyk8YnI+CiAgICAgICAgICB7dSdh Y2Nlc3NpYmxlJzogVHJ1ZSwgdSdyZXN1Ym1pdHRlZCc6IEZhbHNlLCB1J2NyZWF0ZV90aW1lJzoK ICAgICAgICAgIHUnMjAxNy0wNS0xN1QwMjo1OToyNycsIHUnZmlsZV9zaXplJzogNjQsIDxiPjxm b250CiAgICAgICAgICAgICAgY29sb3I9IiNmZjAwMDAiPnUnZGF0YXNldF9pZCc6IHUnOWNjZjll NmYxY2Y0ZDFmYScsIHUnaWQnOgogICAgICAgICAgICAgIHUnNTZjODkwY2JlZjI4Mjk1Yyc8L2Zv bnQ+PC9iPiwgdSdtaXNjX2luZm8nOgogICAgICAgICAgdScjI2ZpbGVmb3JtYXQ9VkNGdjQuMVxu IyNGSUxURVI9Jmx0O0lEPVBBU1MsRGVzY3JpcHRpb249IkFsbAogICAgICAgICAgZmlsdGVycyBw YXNzZWQiJmd0O1xuIyNmaWxlRGF0ZT0yMDE3MDUxN1xuIyNzb3VyY2U9ZnJlZUJheWVzCnYwLjku MjBcbiMjcmVmZXJlbmNlPWxvY2FscmVmLmZhXG4jI3BoYXNpbmc9bm9uZVxuIyNjb21tYW5kbGlu ZT0iZnJlZWJheWVzCiAgICAgICAgICAtLWJhbSBsb2NhbGJhbV8wLmJhbSAtLWZhc3RhLXJlZmVy ZW5jZSBsb2NhbHJlZi5mYSAtLXZjZgogICAgICAgICAgL2hvbWUvc3BoYWRtaScsIHUnaGRhX2xk ZGEnOiB1J2hkYScsIHUnZG93bmxvYWRfdXJsJzoKICAgICAgICAgIHUnL2FwaS9oaXN0b3JpZXMv MDZlYzE3YWVmYTJkNDlkZC9jb250ZW50cy81NmM4OTBjYmVmMjgyOTVjL2Rpc3BsYXknLAogICAg ICAgICAgdSdzdGF0ZSc6IHUnb2snLCB1J2Rpc3BsYXlfdHlwZXMnOiBbXSwgdSdkaXNwbGF5X2Fw cHMnOiBbXSwKICAgICAgICAgIHUndHlwZSc6IHUnZmlsZScsIHUnZmlsZV9wYXRoJzogTm9uZSwg dSdtaXNjX2JsdXJiJzogdScwCiAgICAgICAgICBsaW5lcycsIHUncGVlayc6IHUnJmx0O3RhYmxl IGNlbGxzcGFjaW5nPSIwIgogICAgICAgICAgY2VsbHBhZGRpbmc9IjMiJmd0OyZsdDt0ciZndDsm bHQ7dGQmZ3Q7I0NhbGN1bGF0aW9uIGFuZAogICAgICAgICAgd3JpdGluZyBvZiBoaWdoIGRlbnNp dHkgcmVnaW9ucyBoYXMKICAgICAgICAgIGNvbXBsZXRlZC4mbHQ7L3RkJmd0OyZsdDsvdHImZ3Q7 Jmx0Oy90YWJsZSZndDsnLAogICAgICAgICAgdSd1cGRhdGVfdGltZSc6IHUnMjAxNy0wNS0xN1Qw Mjo1OTozNicsIHUnZGF0YV90eXBlJzoKICAgICAgICAgIHUnZ2FsYXh5LmRhdGF0eXBlcy5kYXRh LlRleHQnLCB1J3RhZ3MnOiBbXSwgdSdkZWxldGVkJzogRmFsc2UsCiAgICAgICAgICB1J2hpc3Rv cnlfaWQnOiB1JzA2ZWMxN2FlZmEyZDQ5ZGQnLCB1J21ldGFfZmlsZXMnOiBbXSwKICAgICAgICAg IHUnZ2Vub21lX2J1aWxkJzogdSc/JywgdSdoaWQnOiA0NCwgdSdtb2RlbF9jbGFzcyc6CiAgICAg ICAgICB1J0hpc3RvcnlEYXRhc2V0QXNzb2NpYXRpb24nLCB1J21ldGFkYXRhX2RhdGFfbGluZXMn OiBOb25lLAogICAgICAgICAgdSdmaWxlX2V4dCc6IHUndHh0JywgdSdhbm5vdGF0aW9uJzogTm9u ZSwgdSdtZXRhZGF0YV9kYmtleSc6CiAgICAgICAgICB1Jz8nLCB1J2hpc3RvcnlfY29udGVudF90 eXBlJzogdSdkYXRhc2V0JywgPGZvbnQKICAgICAgICAgICAgY29sb3I9IiNmZjAwMDAiPjxiPnUn bmFtZSc6IHUnSGlnaCBkZW5zaXR5IHJlZ2lvbnMnLDwvYj48L2ZvbnQ+CiAgICAgICAgICB1J2V4 dGVuc2lvbic6IHUndHh0JywgdSd2aXNpYmxlJzogRmFsc2UsIHUndXJsJzoKICAgICAgICAgIHUn L2FwaS9oaXN0b3JpZXMvMDZlYzE3YWVmYTJkNDlkZC9jb250ZW50cy81NmM4OTBjYmVmMjgyOTVj JywKICAgICAgICAgIHUndXVpZCc6IHUnOGI4YzcwYTQtY2QyZS00M2QzLWJjNzctYjA2NTExNTU3 Yzk2JywKICAgICAgICAgIHUndmlzdWFsaXphdGlvbnMnOiBbXSwgdSdwdXJnZWQnOiBGYWxzZSwg dSdhcGlfdHlwZSc6IHUnZmlsZSd9PC9ibG9ja3F1b3RlPgogICAgICAgIDxkaXY+PGJyPgogICAg ICAgIDwvZGl2PgogICAgICAgIDxkaXY+U2ltaWxhcmx5LCBoZXJlIHRoZSAnPGk+ZGF0YXNldF9p ZCcgPC9pPmlzIGRpZmZlcmVudCBmcm9tCiAgICAgICAgICB0aGUgb25lIEkgcGFzc2VkIHRvIDx1 PnNob3dfZGF0YXNldDwvdT4gbWV0aG9kLiBJZiBJIGNoZWNrCiAgICAgICAgICB0aGUgJzxpPmRh dGFzZXRfaWQ8L2k+JyBmcm9tIGZpcnN0IGNhbGwsIGl0IHBvaW50cyB0byBhbm90aGVyCiAgICAg ICAgICBkaWZmZXJlbnQgZmlsZSE8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Jsb2NrcXVvdGU+ CiAgICA8YnI+CiAgICBUaGVyZSdzIG5vdGhpbmcgd3JvbmcgaGVyZSwgdGhlIEFQSSByZXR1cm5z IHRoZSBpZCBvZiB0aGUgaGlzdG9yeQogICAgZGF0YXNldCB5b3UgcmVxdWVzdGVkIGluIHRoZSAn aWQnIGZpZWxkLiBUaGUgJ2RhdGFzZXRfaWQnIGRvZXMgbm90CiAgICByZWZlciB0byBhICJoaXN0 b3J5IGRhdGFzZXQiLCBidXQgdG8gdGhlIG1vcmUgZ2VuZXJhbCAiZGF0YXNldCIuIEEKICAgIGhp c3RvcnkgZGF0YXNldCBpcyBhIHBhcnRpY3VsYXIgaW5zdGFuY2Ugb2YgYSBkYXRhc2V0IGluIG9u ZQogICAgaGlzdG9yeSwgYnV0IHRoZSBzYW1lIGRhdGFzZXQgY2FuIGJlIHVzZWQgaW4gb3RoZXIg aGlzdG9yaWVzIG9yCiAgICBsaWJyYXJpZXMgYW5kIGNhbiBiZSBzaGFyZWQgd2l0aCBvdGhlciB1 c2Vycy4gU28geW91IG1heSBoYXZlCiAgICBtdWx0aXBsZSBoaXN0b3J5IGRhdGFzZXRzIGFuZCBs aWJyYXJ5IGRhdGFzZXRzIGFsbCBwb2ludGluZyB0byB0aGUKICAgIHNhbWUgZmlsZSBvbiBkaXNr Ljxicj4KICAgIDxicj4KICAgIENoZWVycyw8YnI+CiAgICBOaWNvbGE8YnI+CiAgICA8YnI+CiAg ICA8YmxvY2txdW90ZQpjaXRlPSJtaWQ6Q0FKcjRpd3dQNGk1aUtTej12bitONHRQQ3R4c3RzajZl cmpFZ3R4OVlRRj04UU9CRFN3QG1haWwuZ21haWwuY29tIgogICAgICB0eXBlPSJjaXRlIj4KICAg ICAgPGRpdiBkaXI9Imx0ciI+CiAgICAgICAgPGRpdj5QbGVhc2UgbGV0IG1lIGtub3cgd2hpY2gg b2YgdGhlc2UgJ2lkJyBzaG91bGQgYmUgdXNlZCBhbmQKICAgICAgICAgIHdoYXQgd291bGQgYmUg dGhlIHB1cnBvc2Ugb2YgdGhlIG90aGVyIGlkPzwvZGl2PgogICAgICAgIDxkaXY+PGJyPgogICAg ICAgIDwvZGl2PgogICAgICAgIDxkaXY+VGhhbmtzIGZvciB5b3VyIGhlbHAgYW5kIHRpbWUhPC9k aXY+CiAgICAgICAgPGRpdj48YnI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdj5CZXN0LDwv ZGl2PgogICAgICAgIDxkaXY+QWFydGhpPC9kaXY+CiAgICAgICAgPGRpdj48YnI+CiAgICAgICAg PC9kaXY+CiAgICAgICAgPGRpdj48YnI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdj48YnI+ CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8YnI+CiAgICAgIDxmaWVsZHNldCBj bGFzcz0ibWltZUF0dGFjaG1lbnRIZWFkZXIiPjwvZmllbGRzZXQ+CiAgICAgIDxicj4KICAgICAg PHByZSB3cmFwPSIiPl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClBsZWFzZSBrZWVwIGFsbCByZXBsaWVzIG9uIHRoZSBsaXN0IGJ5IHVz aW5nICJyZXBseSBhbGwiCmluIHlvdXIgbWFpbCBjbGllbnQuICBUbyBtYW5hZ2UgeW91ciBzdWJz Y3JpcHRpb25zIHRvIHRoaXMKYW5kIG90aGVyIEdhbGF4eSBsaXN0cywgcGxlYXNlIHVzZSB0aGUg aW50ZXJmYWNlIGF0OgogIDxhIGNsYXNzPSJtb3otdHh0LWxpbmstZnJlZXRleHQiIGhyZWY9Imh0 dHBzOi8vbGlzdHMuZ2FsYXh5cHJvamVjdC5vcmcvIj5odHRwczovL2xpc3RzLmdhbGF4eXByb2pl Y3Qub3JnLzwvYT4KClRvIHNlYXJjaCBHYWxheHkgbWFpbGluZyBsaXN0cyB1c2UgdGhlIHVuaWZp ZWQgc2VhcmNoIGF0OgogIDxhIGNsYXNzPSJtb3otdHh0LWxpbmstZnJlZXRleHQiIGhyZWY9Imh0 dHA6Ly9nYWxheHlwcm9qZWN0Lm9yZy9zZWFyY2gvIj5odHRwOi8vZ2FsYXh5cHJvamVjdC5vcmcv c2VhcmNoLzwvYT48L3ByZT4KICAgIDwvYmxvY2txdW90ZT4KICAgIDxicj4KICA8L2JvZHk+Cjwv aHRtbD4K --===============0541843058260231373==-- From aarthimohan11@gmail.com Mon May 22 01:55:57 2017 From: Aarthi Mohan To: galaxy-dev@lists.galaxyproject.org Subject: Re: [galaxy-dev] Which ID ('id', 'workflow_id', and 'dataset_id') should be used? Date: Mon, 22 May 2017 13:55:56 +0800 Message-ID: In-Reply-To: <425570fb-89c2-1e0e-4679-fbb357c872ea@tiscali.it> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6120345892896205717==" --===============6120345892896205717== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Thanks for the detailed explanation Nicola! Best, Aarthi On Wed, May 17, 2017 at 6:29 PM, Nicola Soranzo wrote: > Hi Aarthi, > thanks for your email, see my replies inline. > > On 17/05/17 08:21, Aarthi Mohan wrote: > > Hi all, > > I will appreciate your help in understanding the 'id' key returned from > the API. I am using Galaxy Version 15.03 & bioblend Version 0.8.0. > > Example: > > I have highlighted the id and related fields with bold and red. > > >>> workflowClient.get_invocations('f7bb1edd6b95db62') >> [{u'inputs': {u'1': {u'src': u'hda', u'id': u'06d9fe130fbe098e'}}, >> u'update_time': u'2017-05-17T03:09:10', u'uuid': u'fd066a98-3aad-11e7-90e9= -1cc1de6d5ef4', >> u'history_id': u'b8a0d6158b9961df', u'state': u'scheduled', *u'workflow_id= ': >> u'915ae9a80309f157'*, u'steps': >> ... >> u'model_class': u'WorkflowInvocation', *u'id': u'8c49be448cfe29bc'*}] > > > Why is the '*workflow_id*' different from the one I passed to the > fucntion? And why is that '*workflow_id' *is not found anywhere in the > return value? > > > The confusion here is generated by the API mixing 2 concepts used by > Galaxy to manage workflows: "stored workflows" and "workflows". A stored > workflow represents a workflow throughout its life (storing name, > description, owner, if it's deleted/published...), while a workflow is > particular version of a stored workflow, with the description of the > various input, steps, subworkflows. Every time you modify and save a stored > workflow in the UI, a new workflow is generated and associated to the > stored workflow. The stored workflow is always linked to the latest > workflow version. > > The ids used to interact with the API are the stored workflow ids > ('f7bb1edd6b95db62' in your example above), while get_invocations() returns > the workflow id ('915ae9a80309f157' in your case). That's because an > invocation derives from a particular version of the workflow. It may be > good to extend the API to also return the stored workflow id. > > > >>> historyClient.show_dataset(hid,'468b2dfe96a5a9a1') >> {u'accessible': True, u'resubmitted': False, u'create_time': >> u'2017-05-17T03:04:02', u'download_url': u'/api/histories/ >> b8a0d6158b9961df/contents/468b2dfe96a5a9a1/display', u'file_size': 545, *u= 'dataset_id': >> u'56c890cbef28295c', u'id': u'468b2dfe96a5a9a1'*, u'misc_info': >> u'uploaded fastqsanger file', u'hda_ldda': u'hda', u'metadata_sequences': >> 5, u'state': u'ok', u'display_types': [], u'display_apps': [], u'type': >> u'file', u'file_path': None, u'misc_blurb': u'5 sequences', u'peek': >> u'> tr>
@1
>> tccacaagccattgtgtgtaattaaccactaattgtgtataagtttaaact
+
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII >> IIIIIIIIIIIIIIIIIIIII
@2
>> tccacaagccattgtgtgtaattaaccactaattgtgtataagtttaaact
', >> u'update_time': u'2017-05-17T03:04:06', u'data_type': >> u'galaxy.datatypes.sequence.FastqSanger', u'tags': [], u'deleted': >> False, u'history_id': u'b8a0d6158b9961df', u'meta_files': [], >> u'genome_build': u'?', u'hid': 1, u'model_class': >> u'HistoryDatasetAssociation', u'metadata_data_lines': 20, u'file_ext': >> u'fastqsanger', u'annotation': None, u'metadata_dbkey': u'?', >> u'history_content_type': u'dataset', *u'name': u'a_1.fastq'*, >> u'extension': u'fastqsanger', u'visible': True, u'url': u'/api/histories/ >> b8a0d6158b9961df/contents/468b2dfe96a5a9a1', u'uuid': >> u'aa6dcf49-6fe9-49e0-8064-c8bc275a37d5', u'visualizations': [], >> u'purged': False, u'api_type': u'file'} >> > > > >>> historyClient.show_dataset(hid,'56c890cbef28295c') >> {u'accessible': True, u'resubmitted': False, u'create_time': >> u'2017-05-17T02:59:27', u'file_size': 64, *u'dataset_id': >> u'9ccf9e6f1cf4d1fa', u'id': u'56c890cbef28295c'*, u'misc_info': >> u'##fileformat=3DVCFv4.1\n##FILTER=3D> passed">\n##fileDate=3D20170517\n##source=3DfreeBayes >> v0.9.20\n##reference=3Dlocalref.fa\n##phasing=3Dnone\n##commandline=3D"fre= ebayes >> --bam localbam_0.bam --fasta-reference localref.fa --vcf /home/sphadmi', >> u'hda_ldda': u'hda', u'download_url': u'/api/histories/ >> 06ec17aefa2d49dd/contents/56c890cbef28295c/display', u'state': u'ok', >> u'display_types': [], u'display_apps': [], u'type': u'file', u'file_path': >> None, u'misc_blurb': u'0 lines', u'peek': u'> cellpadding=3D"3">
#Calculation and writing of high density regions >> has completed.
', u'update_time': u'2017-05-17T02:59:36', >> u'data_type': u'galaxy.datatypes.data.Text', u'tags': [], u'deleted': >> False, u'history_id': u'06ec17aefa2d49dd', u'meta_files': [], >> u'genome_build': u'?', u'hid': 44, u'model_class': >> u'HistoryDatasetAssociation', u'metadata_data_lines': None, u'file_ext': >> u'txt', u'annotation': None, u'metadata_dbkey': u'?', >> u'history_content_type': u'dataset', *u'name': u'High density regions',* >> u'extension': u'txt', u'visible': False, u'url': u'/api/histories/ >> 06ec17aefa2d49dd/contents/56c890cbef28295c', u'uuid': >> u'8b8c70a4-cd2e-43d3-bc77-b06511557c96', u'visualizations': [], >> u'purged': False, u'api_type': u'file'} > > > Similarly, here the '*dataset_id' *is different from the one I passed to > *show_dataset* method. If I check the '*dataset_id*' from first call, it > points to another different file! > > > There's nothing wrong here, the API returns the id of the history dataset > you requested in the 'id' field. The 'dataset_id' does not refer to a > "history dataset", but to the more general "dataset". A history dataset is > a particular instance of a dataset in one history, but the same dataset can > be used in other histories or libraries and can be shared with other users. > So you may have multiple history datasets and library datasets all pointing > to the same file on disk. > > Cheers, > Nicola > > Please let me know which of these 'id' should be used and what would be > the purpose of the other id? > > Thanks for your help and time! > > Best, > Aarthi > > > > > > ___________________________________________________________ > Please keep all replies on the list by using "reply all" > in your mail client. To manage your subscriptions to this > and other Galaxy lists, please use the interface at: > https://lists.galaxyproject.org/ > > To search Galaxy mailing lists use the unified search at: > http://galaxyproject.org/search/ > > > --===============6120345892896205717== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.htm" MIME-Version: 1.0 PGRpdiBkaXI9Imx0ciI+VGhhbmtzIGZvciB0aGUgZGV0YWlsZWQgZXhwbGFuYXRpb24gTmljb2xh IcKgPGRpdj48YnI+PC9kaXY+PGRpdj5CZXN0LDwvZGl2PjxkaXY+QWFydGhpPC9kaXY+PC9kaXY+ PGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+T24g V2VkLCBNYXkgMTcsIDIwMTcgYXQgNjoyOSBQTSwgTmljb2xhIFNvcmFuem8gPHNwYW4gZGlyPSJs dHIiPiZsdDs8YSBocmVmPSJtYWlsdG86bnNvcmFuem9AdGlzY2FsaS5pdCIgdGFyZ2V0PSJfYmxh bmsiPm5zb3JhbnpvQHRpc2NhbGkuaXQ8L2E+Jmd0Ozwvc3Bhbj4gd3JvdGU6PGJyPjxibG9ja3F1 b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4O2JvcmRlci1s ZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPgogIAogICAgCiAgCiAgPGRpdiBi Z2NvbG9yPSIjRkZGRkZGIiB0ZXh0PSIjMDAwMDAwIj4KICAgIEhpIEFhcnRoaSw8YnI+CiAgICB0 aGFua3MgZm9yIHlvdXIgZW1haWwsIHNlZSBteSByZXBsaWVzIGlubGluZS48YnI+CiAgICA8YnI+ CiAgICA8ZGl2IGNsYXNzPSJtXy0zODcxNjQ1MDQxODQyNjk5NzNtb3otY2l0ZS1wcmVmaXgiPk9u IDE3LzA1LzE3IDA4OjIxLCBBYXJ0aGkgTW9oYW4gd3JvdGU6PGJyPgogICAgPC9kaXY+CiAgICA8 YmxvY2txdW90ZSB0eXBlPSJjaXRlIj4KICAgICAgPGRpdiBkaXI9Imx0ciI+SGkgYWxsLAogICAg ICAgIDxkaXY+PGJyPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXY+SSB3aWxsIGFwcHJlY2lh dGUgeW91ciBoZWxwIGluIHVuZGVyc3RhbmRpbmcgdGhlICYjMzk7aWQmIzM5OyBrZXkKICAgICAg ICAgIHJldHVybmVkIGZyb20gdGhlIEFQSS4gSSBhbSB1c2luZyBHYWxheHkgVmVyc2lvbiAxNS4w MyAmYW1wOwogICAgICAgICAgYmlvYmxlbmQgVmVyc2lvbiAwLjguMC48L2Rpdj4KICAgICAgICA8 ZGl2Pjxicj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2PkV4YW1wbGU6PC9kaXY+CiAgICAg ICAgPGRpdj48YnI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdj5JIGhhdmUgaGlnaGxpZ2h0 ZWQgdGhlIGlkIGFuZCByZWxhdGVkIGZpZWxkcyB3aXRoIGJvbGQgYW5kCiAgICAgICAgICByZWQu wqA8L2Rpdj4KICAgICAgICA8ZGl2Pjxicj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YmxvY2tx dW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MHB4IDBweCAwcHggMC44ZXg7 Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0OjFleCI+ Jmd0OyZndDsmZ3Q7CiAgICAgICAgICB3b3JrZmxvd0NsaWVudC5nZXRfPHdicj5pbnZvY2F0aW9u cygmIzM5O2Y3YmIxZWRkNmI5NWRiNjImIzM5Ozx3YnI+KcKgPGJyPgogICAgICAgICAgW3t1JiMz OTtpbnB1dHMmIzM5Ozoge3UmIzM5OzEmIzM5Ozoge3UmIzM5O3NyYyYjMzk7OiB1JiMzOTtoZGEm IzM5OywgdSYjMzk7aWQmIzM5OzoKICAgICAgICAgIHUmIzM5OzA2ZDlmZTEzMGZiZTA5OGUmIzM5 O319LCB1JiMzOTt1cGRhdGVfdGltZSYjMzk7OiB1JiMzOTsyMDE3LTA1LTE3VDAzOjA5OjEwJiMz OTssCiAgICAgICAgICB1JiMzOTt1dWlkJiMzOTs6IHUmIzM5O2ZkMDY2YTk4LTNhYWQtMTFlNy05 MGU5LTx3YnI+MWNjMWRlNmQ1ZWY0JiMzOTssCiAgICAgICAgICB1JiMzOTtoaXN0b3J5X2lkJiMz OTs6IHUmIzM5O2I4YTBkNjE1OGI5OTYxZGYmIzM5OywgdSYjMzk7c3RhdGUmIzM5OzogdSYjMzk7 c2NoZWR1bGVkJiMzOTssIDxiPjxmb250IGNvbG9yPSIjZmYwMDAwIj51JiMzOTt3b3JrZmxvd19p ZCYjMzk7OiB1JiMzOTs5MTVhZTlhODAzMDlmMTU3JiMzOTs8L2ZvbnQ+PC9iPiwKICAgICAgICAg IHUmIzM5O3N0ZXBzJiMzOTs6PGJyPgogICAgICAgICAgLi4uPGJyPgogICAgICAgICAgwqB1JiMz OTttb2RlbF9jbGFzcyYjMzk7OiB1JiMzOTtXb3JrZmxvd0ludm9jYXRpb24mIzM5OywgPGI+PGZv bnQgY29sb3I9IiNmZjAwMDAiPnUmIzM5O2lkJiMzOTs6IHUmIzM5OzhjNDliZTQ0OGNmZTI5YmMm IzM5OzwvZm9udD48L2I+fV08L2Jsb2NrcXVvdGU+CiAgICAgICAgPGRpdj48YnI+CiAgICAgICAg PC9kaXY+CiAgICAgICAgPGRpdj5XaHkgaXMgdGhlICYjMzk7PGk+d29ya2Zsb3dfaWQ8L2k+JiMz OTsgZGlmZmVyZW50IGZyb20gdGhlIG9uZSBJCiAgICAgICAgICBwYXNzZWQgdG8gdGhlIGZ1Y250 aW9uPyBBbmQgd2h5IGlzIHRoYXQgJiMzOTs8aT53b3JrZmxvd19pZCYjMzk7wqA8L2k+aXMKICAg ICAgICAgIG5vdCBmb3VuZCBhbnl3aGVyZSBpbiB0aGUgcmV0dXJuIHZhbHVlPzwvZGl2PgogICAg ICA8L2Rpdj4KICAgIDwvYmxvY2txdW90ZT4KICAgIDxicj4KICAgIFRoZSBjb25mdXNpb24gaGVy ZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIEFQSSBtaXhpbmcgMiBjb25jZXB0cyB1c2VkIGJ5CiAgICBH YWxheHkgdG8gbWFuYWdlIHdvcmtmbG93czogJnF1b3Q7c3RvcmVkIHdvcmtmbG93cyZxdW90OyBh bmQgJnF1b3Q7d29ya2Zsb3dzJnF1b3Q7LiBBCiAgICBzdG9yZWQgd29ya2Zsb3cgcmVwcmVzZW50 cyBhIHdvcmtmbG93IHRocm91Z2hvdXQgaXRzIGxpZmUgKHN0b3JpbmcKICAgIG5hbWUsIGRlc2Ny aXB0aW9uLCBvd25lciwgaWYgaXQmIzM5O3MgZGVsZXRlZC9wdWJsaXNoZWQuLi4pLCB3aGlsZSBh CiAgICB3b3JrZmxvdyBpcyBwYXJ0aWN1bGFyIHZlcnNpb24gb2YgYSBzdG9yZWQgd29ya2Zsb3cs IHdpdGggdGhlCiAgICBkZXNjcmlwdGlvbiBvZiB0aGUgdmFyaW91cyBpbnB1dCwgc3RlcHMsIHN1 YndvcmtmbG93cy4gRXZlcnkgdGltZQogICAgeW91IG1vZGlmeSBhbmQgc2F2ZSBhIHN0b3JlZCB3 b3JrZmxvdyBpbiB0aGUgVUksIGEgbmV3IHdvcmtmbG93IGlzCiAgICBnZW5lcmF0ZWQgYW5kIGFz c29jaWF0ZWQgdG8gdGhlIHN0b3JlZCB3b3JrZmxvdy4gVGhlIHN0b3JlZCB3b3JrZmxvdwogICAg aXMgYWx3YXlzIGxpbmtlZCB0byB0aGUgbGF0ZXN0IHdvcmtmbG93IHZlcnNpb24uPGJyPgogICAg PGJyPgogICAgVGhlIGlkcyB1c2VkIHRvIGludGVyYWN0IHdpdGggdGhlIEFQSSBhcmUgdGhlIHN0 b3JlZCB3b3JrZmxvdyBpZHMKICAgICgmIzM5O2Y3YmIxZWRkNmI5NWRiNjImIzM5OyBpbiB5b3Vy IGV4YW1wbGUgYWJvdmUpLCB3aGlsZSBnZXRfaW52b2NhdGlvbnMoKQogICAgcmV0dXJucyB0aGUg d29ya2Zsb3cgaWQgKCYjMzk7OTE1YWU5YTgwMzA5ZjE1NyYjMzk7IGluIHlvdXIgY2FzZSkuIFRo YXQmIzM5O3MKICAgIGJlY2F1c2UgYW4gaW52b2NhdGlvbiBkZXJpdmVzIGZyb20gYSBwYXJ0aWN1 bGFyIHZlcnNpb24gb2YgdGhlCiAgICB3b3JrZmxvdy4gSXQgbWF5IGJlIGdvb2QgdG8gZXh0ZW5k IHRoZSBBUEkgdG8gYWxzbyByZXR1cm4gdGhlIHN0b3JlZAogICAgd29ya2Zsb3cgaWQuPGJyPgog ICAgPGJyPgogICAgPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+CiAgICAgIDxkaXYgZGlyPSJsdHIi PgogICAgICAgIDxkaXY+PGJyPgogICAgICAgIDwvZGl2PgogICAgICAgIDxibG9ja3F1b3RlIGNs YXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowcHggMHB4IDBweCAwLjhleDtib3JkZXIt bGVmdDoxcHggc29saWQgcmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij4mZ3Q7Jmd0 OyZndDsKICAgICAgICAgIGhpc3RvcnlDbGllbnQuc2hvd19kYXRhc2V0KDx3YnI+aGlkLCYjMzk7 NDY4YjJkZmU5NmE1YTlhMSYjMzk7KTxicj4KICAgICAgICAgIHt1JiMzOTthY2Nlc3NpYmxlJiMz OTs6IFRydWUsIHUmIzM5O3Jlc3VibWl0dGVkJiMzOTs6IEZhbHNlLCB1JiMzOTtjcmVhdGVfdGlt ZSYjMzk7OgogICAgICAgICAgdSYjMzk7MjAxNy0wNS0xN1QwMzowNDowMiYjMzk7LCB1JiMzOTtk b3dubG9hZF91cmwmIzM5OzoKICAgICAgICAgIHUmIzM5Oy9hcGkvaGlzdG9yaWVzLzx3YnI+Yjhh MGQ2MTU4Yjk5NjFkZi9jb250ZW50cy88d2JyPjQ2OGIyZGZlOTZhNWE5YTEvZGlzcGxheSYjMzk7 LAogICAgICAgICAgdSYjMzk7ZmlsZV9zaXplJiMzOTs6IDU0NSwgPGZvbnQgY29sb3I9IiNmZjAw MDAiPjxiPnUmIzM5O2RhdGFzZXRfaWQmIzM5OzoKICAgICAgICAgICAgICB1JiMzOTs1NmM4OTBj YmVmMjgyOTVjJiMzOTssIHUmIzM5O2lkJiMzOTs6IHUmIzM5OzQ2OGIyZGZlOTZhNWE5YTEmIzM5 OzwvYj48L2ZvbnQ+LAogICAgICAgICAgdSYjMzk7bWlzY19pbmZvJiMzOTs6IHUmIzM5O3VwbG9h ZGVkIGZhc3Rxc2FuZ2VyIGZpbGUmIzM5OywgdSYjMzk7aGRhX2xkZGEmIzM5OzoKICAgICAgICAg IHUmIzM5O2hkYSYjMzk7LCB1JiMzOTttZXRhZGF0YV9zZXF1ZW5jZXMmIzM5OzogNSwgdSYjMzk7 c3RhdGUmIzM5OzogdSYjMzk7b2smIzM5OywKICAgICAgICAgIHUmIzM5O2Rpc3BsYXlfdHlwZXMm IzM5OzogW10sIHUmIzM5O2Rpc3BsYXlfYXBwcyYjMzk7OiBbXSwgdSYjMzk7dHlwZSYjMzk7OiB1 JiMzOTtmaWxlJiMzOTssCiAgICAgICAgICB1JiMzOTtmaWxlX3BhdGgmIzM5OzogTm9uZSwgdSYj Mzk7bWlzY19ibHVyYiYjMzk7OiB1JiMzOTs1IHNlcXVlbmNlcyYjMzk7LCB1JiMzOTtwZWVrJiMz OTs6CiAgICAgICAgICB1JiMzOTsmbHQ7dGFibGUgY2VsbHNwYWNpbmc9JnF1b3Q7MCZxdW90Owpj ZWxscGFkZGluZz0mcXVvdDszJnF1b3Q7Jmd0OyZsdDt0ciZndDsmbHQ7dGQmZ3Q7QDEmbHQ7Lzx3 YnI+dGQmZ3Q7Jmx0Oy90ciZndDsmbHQ7dHImZ3Q7Jmx0O3RkJmd0Ozx3YnI+dGNjYWNhYWdjY2F0 dGd0Z3RndGFhdHRhYWNjYWN0PHdicj5hYXR0Z3RndGF0YWFndHR0YWFhY3QmbHQ7L3RkJmd0OyZs dDsvPHdicj50ciZndDsmbHQ7dHImZ3Q7Jmx0O3RkJmd0OysmbHQ7L3RkJmd0OyZsdDsvdHImZ3Q7 Jmx0O3RyJmd0OyZsdDt0ZCZndDs8d2JyPklJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSTx3 YnI+SUlJSUlJSUlJSUlJSUlJSUlJSUlJJmx0Oy90ZCZndDsmbHQ7Lzx3YnI+dHImZ3Q7Jmx0O3Ry Jmd0OyZsdDt0ZCZndDtAMiZsdDsvdGQmZ3Q7Jmx0Oy90ciZndDsmbHQ7dHImZ3Q7Jmx0Ozx3YnI+ dGQmZ3Q7PHdicj50Y2NhY2FhZ2NjYXR0Z3RndGd0YWF0dGFhY2NhY3Q8d2JyPmFhdHRndGd0YXRh YWd0dHRhYWFjdCZsdDsvdGQmZ3Q7Jmx0Oy88d2JyPnRyJmd0OyZsdDsvdGFibGUmZ3Q7JiMzOTss CiAgICAgICAgICB1JiMzOTt1cGRhdGVfdGltZSYjMzk7OiB1JiMzOTsyMDE3LTA1LTE3VDAzOjA0 OjA2JiMzOTssIHUmIzM5O2RhdGFfdHlwZSYjMzk7OgogICAgICAgICAgdSYjMzk7Z2FsYXh5LmRh dGF0eXBlcy5zZXF1ZW5jZS48d2JyPkZhc3RxU2FuZ2VyJiMzOTssIHUmIzM5O3RhZ3MmIzM5Ozog W10sCiAgICAgICAgICB1JiMzOTtkZWxldGVkJiMzOTs6IEZhbHNlLCB1JiMzOTtoaXN0b3J5X2lk JiMzOTs6IHUmIzM5O2I4YTBkNjE1OGI5OTYxZGYmIzM5OywKICAgICAgICAgIHUmIzM5O21ldGFf ZmlsZXMmIzM5OzogW10sIHUmIzM5O2dlbm9tZV9idWlsZCYjMzk7OiB1JiMzOTs/JiMzOTssIHUm IzM5O2hpZCYjMzk7OiAxLAogICAgICAgICAgdSYjMzk7bW9kZWxfY2xhc3MmIzM5OzogdSYjMzk7 SGlzdG9yeURhdGFzZXRBc3NvY2lhdGlvbiYjMzk7LAogICAgICAgICAgdSYjMzk7bWV0YWRhdGFf ZGF0YV9saW5lcyYjMzk7OiAyMCwgdSYjMzk7ZmlsZV9leHQmIzM5OzogdSYjMzk7ZmFzdHFzYW5n ZXImIzM5OywKICAgICAgICAgIHUmIzM5O2Fubm90YXRpb24mIzM5OzogTm9uZSwgdSYjMzk7bWV0 YWRhdGFfZGJrZXkmIzM5OzogdSYjMzk7PyYjMzk7LAogICAgICAgICAgdSYjMzk7aGlzdG9yeV9j b250ZW50X3R5cGUmIzM5OzogdSYjMzk7ZGF0YXNldCYjMzk7LCA8Zm9udCBjb2xvcj0iI2ZmMDAw MCI+PGI+dSYjMzk7bmFtZSYjMzk7OgogICAgICAgICAgICAgIHUmIzM5O2FfMS5mYXN0cSYjMzk7 PC9iPjwvZm9udD4sIHUmIzM5O2V4dGVuc2lvbiYjMzk7OiB1JiMzOTtmYXN0cXNhbmdlciYjMzk7 LAogICAgICAgICAgdSYjMzk7dmlzaWJsZSYjMzk7OiBUcnVlLCB1JiMzOTt1cmwmIzM5OzoKICAg ICAgICAgIHUmIzM5Oy9hcGkvaGlzdG9yaWVzLzx3YnI+YjhhMGQ2MTU4Yjk5NjFkZi9jb250ZW50 cy88d2JyPjQ2OGIyZGZlOTZhNWE5YTEmIzM5OywKICAgICAgICAgIHUmIzM5O3V1aWQmIzM5Ozog dSYjMzk7YWE2ZGNmNDktNmZlOS00OWUwLTgwNjQtPHdicj5jOGJjMjc1YTM3ZDUmIzM5OywKICAg ICAgICAgIHUmIzM5O3Zpc3VhbGl6YXRpb25zJiMzOTs6IFtdLCB1JiMzOTtwdXJnZWQmIzM5Ozog RmFsc2UsIHUmIzM5O2FwaV90eXBlJiMzOTs6IHUmIzM5O2ZpbGUmIzM5O308YnI+CiAgICAgICAg PC9ibG9ja3F1b3RlPgogICAgICAgIDxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5 bGU9Im1hcmdpbjowcHggMHB4IDBweCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiKDIw NCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij7CoDwvYmxvY2txdW90ZT4KICAgICAgICA8Ymxv Y2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MHB4IDBweCAwcHggMC44 ZXg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0OjFl eCI+Jmd0OyZndDsmZ3Q7CiAgICAgICAgICBoaXN0b3J5Q2xpZW50LnNob3dfZGF0YXNldCg8d2Jy PmhpZCwmIzM5OzU2Yzg5MGNiZWYyODI5NWMmIzM5Oyk8YnI+CiAgICAgICAgICB7dSYjMzk7YWNj ZXNzaWJsZSYjMzk7OiBUcnVlLCB1JiMzOTtyZXN1Ym1pdHRlZCYjMzk7OiBGYWxzZSwgdSYjMzk7 Y3JlYXRlX3RpbWUmIzM5OzoKICAgICAgICAgIHUmIzM5OzIwMTctMDUtMTdUMDI6NTk6MjcmIzM5 OywgdSYjMzk7ZmlsZV9zaXplJiMzOTs6IDY0LCA8Yj48Zm9udCBjb2xvcj0iI2ZmMDAwMCI+dSYj Mzk7ZGF0YXNldF9pZCYjMzk7OiB1JiMzOTs5Y2NmOWU2ZjFjZjRkMWZhJiMzOTssIHUmIzM5O2lk JiMzOTs6CiAgICAgICAgICAgICAgdSYjMzk7NTZjODkwY2JlZjI4Mjk1YyYjMzk7PC9mb250Pjwv Yj4sIHUmIzM5O21pc2NfaW5mbyYjMzk7OgogICAgICAgICAgdSYjMzk7IyNmaWxlZm9ybWF0PVZD RnY0LjFcbiMjPHdicj5GSUxURVI9Jmx0O0lEPVBBU1MsRGVzY3JpcHRpb249JnF1b3Q7PHdicj5B bGwKICAgICAgICAgIGZpbHRlcnMgcGFzc2VkJnF1b3Q7Jmd0O1xuIyNmaWxlRGF0ZT0yMDE3MDUx N1w8d2JyPm4jI3NvdXJjZT1mcmVlQmF5ZXMKdjAuOS4yMFxuIyNyZWZlcmVuY2U9bG9jYWxyZWYu PHdicj5mYVxuIyNwaGFzaW5nPW5vbmVcbiMjPHdicj5jb21tYW5kbGluZT0mcXVvdDtmcmVlYmF5 ZXMKICAgICAgICAgIC0tYmFtIGxvY2FsYmFtXzAuYmFtIC0tZmFzdGEtcmVmZXJlbmNlIGxvY2Fs cmVmLmZhIC0tdmNmCiAgICAgICAgICAvaG9tZS9zcGhhZG1pJiMzOTssIHUmIzM5O2hkYV9sZGRh JiMzOTs6IHUmIzM5O2hkYSYjMzk7LCB1JiMzOTtkb3dubG9hZF91cmwmIzM5OzoKICAgICAgICAg IHUmIzM5Oy9hcGkvaGlzdG9yaWVzLzx3YnI+MDZlYzE3YWVmYTJkNDlkZC9jb250ZW50cy88d2Jy PjU2Yzg5MGNiZWYyODI5NWMvZGlzcGxheSYjMzk7LAogICAgICAgICAgdSYjMzk7c3RhdGUmIzM5 OzogdSYjMzk7b2smIzM5OywgdSYjMzk7ZGlzcGxheV90eXBlcyYjMzk7OiBbXSwgdSYjMzk7ZGlz cGxheV9hcHBzJiMzOTs6IFtdLAogICAgICAgICAgdSYjMzk7dHlwZSYjMzk7OiB1JiMzOTtmaWxl JiMzOTssIHUmIzM5O2ZpbGVfcGF0aCYjMzk7OiBOb25lLCB1JiMzOTttaXNjX2JsdXJiJiMzOTs6 IHUmIzM5OzAKICAgICAgICAgIGxpbmVzJiMzOTssIHUmIzM5O3BlZWsmIzM5OzogdSYjMzk7Jmx0 O3RhYmxlIGNlbGxzcGFjaW5nPSZxdW90OzAmcXVvdDsKICAgICAgICAgIGNlbGxwYWRkaW5nPSZx dW90OzMmcXVvdDsmZ3Q7Jmx0O3RyJmd0OyZsdDt0ZCZndDsjPHdicj5DYWxjdWxhdGlvbiBhbmQK ICAgICAgICAgIHdyaXRpbmcgb2YgaGlnaCBkZW5zaXR5IHJlZ2lvbnMgaGFzCiAgICAgICAgICBj b21wbGV0ZWQuJmx0Oy90ZCZndDsmbHQ7L3RyJmd0OyZsdDsvdGFibGUmZ3Q7JiMzOTssCiAgICAg ICAgICB1JiMzOTt1cGRhdGVfdGltZSYjMzk7OiB1JiMzOTsyMDE3LTA1LTE3VDAyOjU5OjM2JiMz OTssIHUmIzM5O2RhdGFfdHlwZSYjMzk7OgogICAgICAgICAgdSYjMzk7Z2FsYXh5LmRhdGF0eXBl cy5kYXRhLlRleHQmIzM5OywgdSYjMzk7dGFncyYjMzk7OiBbXSwgdSYjMzk7ZGVsZXRlZCYjMzk7 OiBGYWxzZSwKICAgICAgICAgIHUmIzM5O2hpc3RvcnlfaWQmIzM5OzogdSYjMzk7MDZlYzE3YWVm YTJkNDlkZCYjMzk7LCB1JiMzOTttZXRhX2ZpbGVzJiMzOTs6IFtdLAogICAgICAgICAgdSYjMzk7 Z2Vub21lX2J1aWxkJiMzOTs6IHUmIzM5Oz8mIzM5OywgdSYjMzk7aGlkJiMzOTs6IDQ0LCB1JiMz OTttb2RlbF9jbGFzcyYjMzk7OgogICAgICAgICAgdSYjMzk7SGlzdG9yeURhdGFzZXRBc3NvY2lh dGlvbiYjMzk7LCB1JiMzOTttZXRhZGF0YV9kYXRhX2xpbmVzJiMzOTs6IE5vbmUsCiAgICAgICAg ICB1JiMzOTtmaWxlX2V4dCYjMzk7OiB1JiMzOTt0eHQmIzM5OywgdSYjMzk7YW5ub3RhdGlvbiYj Mzk7OiBOb25lLCB1JiMzOTttZXRhZGF0YV9kYmtleSYjMzk7OgogICAgICAgICAgdSYjMzk7PyYj Mzk7LCB1JiMzOTtoaXN0b3J5X2NvbnRlbnRfdHlwZSYjMzk7OiB1JiMzOTtkYXRhc2V0JiMzOTss IDxmb250IGNvbG9yPSIjZmYwMDAwIj48Yj51JiMzOTtuYW1lJiMzOTs6IHUmIzM5O0hpZ2ggZGVu c2l0eSByZWdpb25zJiMzOTssPC9iPjwvZm9udD4KICAgICAgICAgIHUmIzM5O2V4dGVuc2lvbiYj Mzk7OiB1JiMzOTt0eHQmIzM5OywgdSYjMzk7dmlzaWJsZSYjMzk7OiBGYWxzZSwgdSYjMzk7dXJs JiMzOTs6CiAgICAgICAgICB1JiMzOTsvYXBpL2hpc3Rvcmllcy88d2JyPjA2ZWMxN2FlZmEyZDQ5 ZGQvY29udGVudHMvPHdicj41NmM4OTBjYmVmMjgyOTVjJiMzOTssCiAgICAgICAgICB1JiMzOTt1 dWlkJiMzOTs6IHUmIzM5OzhiOGM3MGE0LWNkMmUtNDNkMy1iYzc3LTx3YnI+YjA2NTExNTU3Yzk2 JiMzOTssCiAgICAgICAgICB1JiMzOTt2aXN1YWxpemF0aW9ucyYjMzk7OiBbXSwgdSYjMzk7cHVy Z2VkJiMzOTs6IEZhbHNlLCB1JiMzOTthcGlfdHlwZSYjMzk7OiB1JiMzOTtmaWxlJiMzOTt9PC9i bG9ja3F1b3RlPgogICAgICAgIDxkaXY+PGJyPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXY+ U2ltaWxhcmx5LCBoZXJlIHRoZSAmIzM5OzxpPmRhdGFzZXRfaWQmIzM5OyA8L2k+aXMgZGlmZmVy ZW50IGZyb20KICAgICAgICAgIHRoZSBvbmUgSSBwYXNzZWQgdG8gPHU+c2hvd19kYXRhc2V0PC91 PiBtZXRob2QuIElmIEkgY2hlY2sKICAgICAgICAgIHRoZSAmIzM5OzxpPmRhdGFzZXRfaWQ8L2k+ JiMzOTsgZnJvbSBmaXJzdCBjYWxsLCBpdCBwb2ludHMgdG8gYW5vdGhlcgogICAgICAgICAgZGlm ZmVyZW50IGZpbGUhPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9ibG9ja3F1b3RlPgogICAgPGJy PgogICAgVGhlcmUmIzM5O3Mgbm90aGluZyB3cm9uZyBoZXJlLCB0aGUgQVBJIHJldHVybnMgdGhl IGlkIG9mIHRoZSBoaXN0b3J5CiAgICBkYXRhc2V0IHlvdSByZXF1ZXN0ZWQgaW4gdGhlICYjMzk7 aWQmIzM5OyBmaWVsZC4gVGhlICYjMzk7ZGF0YXNldF9pZCYjMzk7IGRvZXMgbm90CiAgICByZWZl ciB0byBhICZxdW90O2hpc3RvcnkgZGF0YXNldCZxdW90OywgYnV0IHRvIHRoZSBtb3JlIGdlbmVy YWwgJnF1b3Q7ZGF0YXNldCZxdW90Oy4gQQogICAgaGlzdG9yeSBkYXRhc2V0IGlzIGEgcGFydGlj dWxhciBpbnN0YW5jZSBvZiBhIGRhdGFzZXQgaW4gb25lCiAgICBoaXN0b3J5LCBidXQgdGhlIHNh bWUgZGF0YXNldCBjYW4gYmUgdXNlZCBpbiBvdGhlciBoaXN0b3JpZXMgb3IKICAgIGxpYnJhcmll cyBhbmQgY2FuIGJlIHNoYXJlZCB3aXRoIG90aGVyIHVzZXJzLiBTbyB5b3UgbWF5IGhhdmUKICAg IG11bHRpcGxlIGhpc3RvcnkgZGF0YXNldHMgYW5kIGxpYnJhcnkgZGF0YXNldHMgYWxsIHBvaW50 aW5nIHRvIHRoZQogICAgc2FtZSBmaWxlIG9uIGRpc2suPGJyPgogICAgPGJyPgogICAgQ2hlZXJz LDxicj4KICAgIE5pY29sYTxicj4KICAgIDxicj4KICAgIDxibG9ja3F1b3RlIHR5cGU9ImNpdGUi PgogICAgICA8ZGl2IGRpcj0ibHRyIj4KICAgICAgICA8ZGl2PlBsZWFzZSBsZXQgbWUga25vdyB3 aGljaCBvZiB0aGVzZSAmIzM5O2lkJiMzOTsgc2hvdWxkIGJlIHVzZWQgYW5kCiAgICAgICAgICB3 aGF0IHdvdWxkIGJlIHRoZSBwdXJwb3NlIG9mIHRoZSBvdGhlciBpZD88L2Rpdj4KICAgICAgICA8 ZGl2Pjxicj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2PlRoYW5rcyBmb3IgeW91ciBoZWxw IGFuZCB0aW1lITwvZGl2PgogICAgICAgIDxkaXY+PGJyPgogICAgICAgIDwvZGl2PgogICAgICAg IDxkaXY+QmVzdCw8L2Rpdj4KICAgICAgICA8ZGl2PkFhcnRoaTwvZGl2PgogICAgICAgIDxkaXY+ PGJyPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXY+PGJyPgogICAgICAgIDwvZGl2PgogICAg ICAgIDxkaXY+PGJyPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGJyPgogICAg ICA8ZmllbGRzZXQgY2xhc3M9Im1fLTM4NzE2NDUwNDE4NDI2OTk3M21pbWVBdHRhY2htZW50SGVh ZGVyIj48L2ZpZWxkc2V0PgogICAgICA8YnI+CiAgICAgIDxwcmU+X19fX19fX19fX19fX19fX19f X19fX19fX19fX19fPHdicj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpQbGVhc2Uga2Vl cCBhbGwgcmVwbGllcyBvbiB0aGUgbGlzdCBieSB1c2luZyAmcXVvdDtyZXBseSBhbGwmcXVvdDsK aW4geW91ciBtYWlsIGNsaWVudC4gIFRvIG1hbmFnZSB5b3VyIHN1YnNjcmlwdGlvbnMgdG8gdGhp cwphbmQgb3RoZXIgR2FsYXh5IGxpc3RzLCBwbGVhc2UgdXNlIHRoZSBpbnRlcmZhY2UgYXQ6CiAg PGEgY2xhc3M9Im1fLTM4NzE2NDUwNDE4NDI2OTk3M21vei10eHQtbGluay1mcmVldGV4dCIgaHJl Zj0iaHR0cHM6Ly9saXN0cy5nYWxheHlwcm9qZWN0Lm9yZy8iIHRhcmdldD0iX2JsYW5rIj5odHRw czovL2xpc3RzLmdhbGF4eXByb2plY3QuPHdicj5vcmcvPC9hPgoKVG8gc2VhcmNoIEdhbGF4eSBt YWlsaW5nIGxpc3RzIHVzZSB0aGUgdW5pZmllZCBzZWFyY2ggYXQ6CiAgPGEgY2xhc3M9Im1fLTM4 NzE2NDUwNDE4NDI2OTk3M21vei10eHQtbGluay1mcmVldGV4dCIgaHJlZj0iaHR0cDovL2dhbGF4 eXByb2plY3Qub3JnL3NlYXJjaC8iIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vZ2FsYXh5cHJvamVj dC5vcmcvPHdicj5zZWFyY2gvPC9hPjwvcHJlPgogICAgPC9ibG9ja3F1b3RlPgogICAgPGJyPgog IDwvZGl2PgoKPC9ibG9ja3F1b3RlPjwvZGl2Pjxicj48L2Rpdj4K --===============6120345892896205717==--