@burgan-tech/morph-touch-runtime 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/burgan-tech-morph-touch-runtime-0.0.9.tgz +0 -0
  2. package/morph-touch/Functions/get-absence-entry.1.0.0.json +1 -1
  3. package/morph-touch/Functions/get-advisor-stats.1.0.0.json +1 -1
  4. package/morph-touch/Functions/get-available-slots.1.0.0.json +1 -1
  5. package/morph-touch/Functions/get-chat-rooms.http +4 -4
  6. package/morph-touch/Functions/get-rezervations.1.0.0.json +1 -1
  7. package/morph-touch/Functions/src/GetAbsenceEntryMapping.csx +18 -4
  8. package/morph-touch/Functions/src/GetAdvisorStatsMapping.csx +22 -8
  9. package/morph-touch/Functions/src/GetAvailableSlotsMapping.csx +22 -14
  10. package/morph-touch/Functions/src/GetRezervationsMapping.csx +19 -2
  11. package/morph-touch/Functions/src/SendCancelNotificationMapping.csx +27 -2
  12. package/morph-touch/Tasks/check-existing-permanent-chat-room.1.0.0.json +1 -1
  13. package/morph-touch/Tasks/login-for-chat.1.0.0.json +27 -0
  14. package/morph-touch/Tasks/register-for-chat.1.0.0.json +27 -0
  15. package/morph-touch/Tasks/start-register-matrix-user.1.0.0.json +22 -0
  16. package/morph-touch/Workflows/chat-room.json +196 -14
  17. package/morph-touch/Workflows/notification-sender.json +2 -2
  18. package/morph-touch/Workflows/register-matrix-user.json +128 -0
  19. package/morph-touch/Workflows/rezervation-start.json +28 -2
  20. package/morph-touch/Workflows/rezervation-transfer.json +34 -8
  21. package/morph-touch/Workflows/rezervation-update.json +5 -5
  22. package/morph-touch/Workflows/rezervation.json +135 -45
  23. package/morph-touch/Workflows/src/AlwaysTrueRule.csx +0 -3
  24. package/morph-touch/Workflows/src/CanStartRezervationTimerMapping.csx +18 -3
  25. package/morph-touch/Workflows/src/ChatRoomRemoveMapping.csx +10 -1
  26. package/morph-touch/Workflows/src/ChatRoomTransferInviteMapping.csx +10 -1
  27. package/morph-touch/Workflows/src/ChatRoomTransferRemoveMapping.csx +9 -1
  28. package/morph-touch/Workflows/src/ChatRoomUpdateMapping.csx +10 -1
  29. package/morph-touch/Workflows/src/CheckDuplicateRezervationMapping.csx +17 -3
  30. package/morph-touch/Workflows/src/CheckExistingPermanentChatRoomMapping.csx +4 -7
  31. package/morph-touch/Workflows/src/CheckRandevuTimeMapping.csx +16 -2
  32. package/morph-touch/Workflows/src/CreateChatRoomForRezervationMapping.csx +12 -2
  33. package/morph-touch/Workflows/src/CreatePermanentChatRoomMapping.csx +11 -1
  34. package/morph-touch/Workflows/src/EnrichRezervationsForTransferMapping.csx +18 -4
  35. package/morph-touch/Workflows/src/FetchRoomMessagesForSummaryMapping.csx +10 -2
  36. package/morph-touch/Workflows/src/InviteAdvisorForRandevuUpdateMapping.csx +10 -1
  37. package/morph-touch/Workflows/src/InviteNewAdvisorToRezervationRoomMapping.csx +11 -2
  38. package/morph-touch/Workflows/src/InviteNewParticipantToRandevuRoomMapping.csx +10 -1
  39. package/morph-touch/Workflows/src/JoinChatRoomForAddParticipantMapping.csx +5 -1
  40. package/morph-touch/Workflows/src/JoinChatRoomForRandevuStartMapping.csx +5 -1
  41. package/morph-touch/Workflows/src/JoinChatRoomForRezervationMapping.csx +4 -0
  42. package/morph-touch/Workflows/src/JoinMatrixRoomMapping.csx +11 -1
  43. package/morph-touch/Workflows/src/JoinUserToRoomMapping.csx +6 -0
  44. package/morph-touch/Workflows/src/LoginForAddParticipantChatMapping.csx +35 -6
  45. package/morph-touch/Workflows/src/LoginForChatRoomMapping.csx +121 -0
  46. package/morph-touch/Workflows/src/LoginForJoinUserToRoomMapping.csx +142 -0
  47. package/morph-touch/Workflows/src/LoginForRandevuStartChatMapping.csx +35 -10
  48. package/morph-touch/Workflows/src/LoginForTransferChatMapping.csx +153 -0
  49. package/morph-touch/Workflows/src/RegisterForAddParticipantChatMapping.csx +74 -0
  50. package/morph-touch/Workflows/src/RegisterForChatRoomMapping.csx +52 -0
  51. package/morph-touch/Workflows/src/RegisterForJoinUserToRoomMapping.csx +63 -0
  52. package/morph-touch/Workflows/src/RegisterForRandevuStartChatMapping.csx +56 -0
  53. package/morph-touch/Workflows/src/RegisterForTransferChatMapping.csx +90 -0
  54. package/morph-touch/Workflows/src/RegisterMatrixUserMapping.csx +73 -0
  55. package/morph-touch/Workflows/src/SendPushNotificationMapping.csx +25 -4
  56. package/morph-touch/Workflows/src/SendSmsNotificationMapping.csx +25 -4
  57. package/morph-touch/Workflows/src/SendSummaryToNewRoomMapping.csx +10 -2
  58. package/morph-touch/Workflows/src/SetRoomHistoryVisibilityMapping.csx +12 -4
  59. package/morph-touch/Workflows/src/ValidateDateForRezervationMapping.csx +16 -2
  60. package/morph-touch/Workflows/src/ValidateSlotForRandevuUpdateMapping.csx +22 -15
  61. package/morph-touch/Workflows/src/ValidateSlotForRezervationMapping.csx +23 -16
  62. package/morph-touch/Workflows/src/ValidateTransferMapping.csx +16 -2
  63. package/morph-touch/Workflows/start-chat.json +1 -1
  64. package/morph-touch/doc/morph-touch-domain.en.md +1 -1
  65. package/morph-touch/doc/morph-touch-domain.md +1 -1
  66. package/package.json +1 -1
  67. package/vnext.config.json +1 -1
  68. package/burgan-tech-morph-touch-runtime-0.0.7.tgz +0 -0
@@ -118,6 +118,32 @@
118
118
  },
119
119
  {
120
120
  "order": 2,
121
+ "task": {
122
+ "domain": "morph-touch",
123
+ "flow": "sys-tasks",
124
+ "key": "start-register-matrix-user",
125
+ "version": "1.0.0"
126
+ },
127
+ "mapping": {
128
+ "location": "./src/RegisterForChatRoomMapping.csx",
129
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBNYXBwaW5nIGZvciBzdGFydC1yZWdpc3Rlci1tYXRyaXgtdXNlciBTdGFydFRhc2sgKFR5cGUgMTEpIGluIGNoYXQtcm9vbSB3b3JrZmxvdy4KLy8vIFN0YXJ0cyByZWdpc3Rlci1tYXRyaXgtdXNlciBmbG93IHdpdGggbWF0cml4VXNlcm5hbWUgPSAidSIgKyBkYXRhLnVzZXIuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBSZWdpc3RlckZvckNoYXRSb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgc3RhcnRUYXNrID0gdGFzayBhcyBTdGFydFRhc2s7CiAgICAgICAgaWYgKHN0YXJ0VGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGEgU3RhcnRUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHVzZXIpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiQ2Fubm90IGRldGVybWluZSByZWdpc3RlciB1c2VyOiBkYXRhLnVzZXIgaXMgbWlzc2luZyIpOwoKICAgICAgICB2YXIgbWF0cml4VXNlcm5hbWUgPSAidSIgKyB1c2VyOwoKICAgICAgICBzdGFydFRhc2suU2V0RG9tYWluKCJtb3JwaC10b3VjaCIpOwogICAgICAgIHN0YXJ0VGFzay5TZXRGbG93KCJyZWdpc3Rlci1tYXRyaXgtdXNlciIpOwogICAgICAgIHN0YXJ0VGFzay5TZXRTeW5jKHRydWUpOwogICAgICAgIHN0YXJ0VGFzay5TZXRCb2R5KG5ldyB7IG1hdHJpeFVzZXJuYW1lIH0pOwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0K"
130
+ }
131
+ },
132
+ {
133
+ "order": 3,
134
+ "task": {
135
+ "domain": "morph-touch",
136
+ "flow": "sys-tasks",
137
+ "key": "login-for-chat",
138
+ "version": "1.0.0"
139
+ },
140
+ "mapping": {
141
+ "location": "./src/LoginForChatRoomMapping.csx",
142
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgbG9naW4tZm9yLWNoYXQgd2hlbiB1c2VkIGluIGNoYXQtcm9vbSB3b3JrZmxvdy4KLy8vIENhbGxzIFBPU1QgL19tYXRyaXgvY2xpZW50L3YzL2xvZ2luIG9uIFN5bmFwc2UuCi8vLyBMb2dzIGluIGFzIGRhdGEudXNlciAodGhlIGN1c3RvbWVyL3Jvb20gb3duZXIpLgovLy8gU3RvcmVzIGFjY2Vzc190b2tlbiBhcyBzZXNzaW9uSWQgaW4gY2hhdEludGVncmF0aW9uIGZvciBzdWJzZXF1ZW50IE1hdHJpeCBBUEkgY2FsbHMuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBMb2dpbkZvckNoYXRSb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBzZWNyZXROYW1lID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZWNyZXROYW1lKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgbWF0cml4QmFzZVVybCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIHN5bmFwc2VQYXNzd29yZCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiU3luYXBzZVBhc3N3b3JkIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc3luYXBzZVBhc3N3b3JkKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlN5bmFwc2VQYXNzd29yZCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIHZhciBsb2dpblVzZXJuYW1lID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VyIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobG9naW5Vc2VybmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJDYW5ub3QgZGV0ZXJtaW5lIGxvZ2luIHVzZXI6IGRhdGEudXNlciBpcyBtaXNzaW5nIik7CgogICAgICAgIHZhciBmdWxsVXJsID0gbWF0cml4QmFzZVVybC5UcmltRW5kKCcvJykgKyAiL19tYXRyaXgvY2xpZW50L3YzL2xvZ2luIjsKICAgICAgICBodHRwVGFzay5TZXRVcmwoZnVsbFVybCk7CgogICAgICAgIGh0dHBUYXNrLlNldEhlYWRlcnMobmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICBbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIkFjY2VwdCJdID0gImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgfSk7CgogICAgICAgIGh0dHBUYXNrLlNldEJvZHkobmV3CiAgICAgICAgewogICAgICAgICAgICB0eXBlID0gIm0ubG9naW4ucGFzc3dvcmQiLAogICAgICAgICAgICBpZGVudGlmaWVyID0gbmV3IHsgdHlwZSA9ICJtLmlkLnVzZXIiLCB1c2VyID0gInUiICsgbG9naW5Vc2VybmFtZSB9LAogICAgICAgICAgICBwYXNzd29yZCA9IHN5bmFwc2VQYXNzd29yZAogICAgICAgIH0pOwogICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgICAgIHZhciByZXNwb25zZSA9IGNvbnRleHQuQm9keTsKICAgICAgICB2YXIgaW5zdGFuY2VEYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgc3RyaW5nIGV4aXN0aW5nUm9vbUlkID0gbnVsbDsKICAgICAgICBpZiAoaW5zdGFuY2VEYXRhICE9IG51bGwgJiYgSGFzUHJvcGVydHkoaW5zdGFuY2VEYXRhLCAiY2hhdEludGVncmF0aW9uIikgJiYgaW5zdGFuY2VEYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICBleGlzdGluZ1Jvb21JZCA9IEdldFN0cmluZyhpbnN0YW5jZURhdGEuY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CgogICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzID09IHRydWUpCiAgICAgICAgewogICAgICAgICAgICBkeW5hbWljIGRhdGEgPSByZXNwb25zZS5kYXRhOwogICAgICAgICAgICBzdHJpbmcgc2Vzc2lvbklkID0gR2V0U3RyaW5nKGRhdGEsICJhY2Nlc3NfdG9rZW4iKTsKICAgICAgICAgICAgc3RyaW5nIHVzZXJJZCA9IEdldFN0cmluZyhkYXRhLCAidXNlcl9pZCIpOwogICAgICAgICAgICBzdHJpbmcgdXNlcm5hbWUgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXJuYW1lIik7CgogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzZXNzaW9uSWQsCiAgICAgICAgICAgICAgICAgICAgdXNlcklkLAogICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lLAogICAgICAgICAgICAgICAgICAgIHJvb21JZCA9IGV4aXN0aW5nUm9vbUlkLAogICAgICAgICAgICAgICAgICAgIGVycm9yID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIGVycm9yQ29kZSA9IChzdHJpbmcpbnVsbAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBzdHJpbmcgZXJyb3JNZXNzYWdlID0gcmVzcG9uc2U/LmVycm9yTWVzc2FnZT8uVG9TdHJpbmcoKSA/PyAiQ2hhdCBsb2dpbiBmYWlsZWQiOwogICAgICAgICAgICBzdHJpbmcgc3RhdHVzQ29kZSA9IHJlc3BvbnNlPy5zdGF0dXNDb2RlICE9IG51bGwgPyByZXNwb25zZS5zdGF0dXNDb2RlLlRvU3RyaW5nKCkgOiBudWxsOwogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzZXNzaW9uSWQgPSAoc3RyaW5nKW51bGwsCiAgICAgICAgICAgICAgICAgICAgdXNlcklkID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIHJvb21JZCA9IGV4aXN0aW5nUm9vbUlkLAogICAgICAgICAgICAgICAgICAgIGVycm9yID0gZXJyb3JNZXNzYWdlLAogICAgICAgICAgICAgICAgICAgIGVycm9yQ29kZSA9IHN0YXR1c0NvZGUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
143
+ }
144
+ },
145
+ {
146
+ "order": 4,
121
147
  "task": {
122
148
  "domain": "morph-touch",
123
149
  "flow": "sys-tasks",
@@ -126,11 +152,37 @@
126
152
  },
127
153
  "mapping": {
128
154
  "location": "./src/CreatePermanentChatRoomMapping.csx",
129
- "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgY3JlYXRlLXBlcm1hbmVudC1jaGF0LXJvb20gSHR0cFRhc2sgKFR5cGUgNikgaW4gdGhlIGNoYXQtcm9vbSBzdWJmbG93LgovLy8gQ3JlYXRlcyBhIHBlcm1hbmVudCBNYXRyaXggcm9vbSB2aWEgbmF0aXZlIC9fbWF0cml4L2NsaWVudC92My9jcmVhdGVSb29tLgovLy8gQVBJU0lYIGNvbnZlcnRzIFgtTWF0cml4LVVzZXIgaGVhZGVyIHRvIEJlYXJlciB0b2tlbiBhdXRvbWF0aWNhbGx5LgovLy8gUm9vbSBuYW1lID0ge3VzZXJ9X3tpbnN0YW5jZUtleX0te2Fkdmlzb3JUeXBlfSwgYWR2aXNvciBpbnZpdGVkLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgQ3JlYXRlUGVybWFuZW50Q2hhdFJvb21NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHJpdmF0ZSAgcmVhZG9ubHkgSGFzaFNldDxzdHJpbmc+IEFsbG93ZWRIaXN0b3J5VmlzaWJpbGl0eSA9IG5ldyBIYXNoU2V0PHN0cmluZz4oU3RyaW5nQ29tcGFyZXIuT3JkaW5hbElnbm9yZUNhc2UpCiAgICB7CiAgICAgICAgInNoYXJlZCIsICJpbnZpdGVkIiwgImpvaW5lZCIsICJ3b3JsZF9yZWFkYWJsZSIKICAgIH07CgogICAgcHVibGljIGFzeW5jIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBodHRwVGFzayA9IHRhc2sgYXMgSHR0cFRhc2s7CiAgICAgICAgaWYgKGh0dHBUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYW4gSHR0cFRhc2siKTsKCiAgICAgICAgdmFyIHNlY3JldE5hbWUgPSBHZXRDb25maWdWYWx1ZSgiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHNlY3JldE5hbWUpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSBjb25maWd1cmF0aW9uIGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBtYXRyaXhCYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoc2VjcmV0TmFtZSwgIndvcmtmbG93LXNlY3JldCIsICJNYXRyaXhCYXNlVXJsIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobWF0cml4QmFzZVVybCkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJNYXRyaXhCYXNlVXJsIHNlY3JldCBpcyByZXF1aXJlZCIpOwogICAgICAgIHZhciBmdWxsVXJsID0gbWF0cml4QmFzZVVybC5UcmltRW5kKCcvJykgKyAiL19tYXRyaXgvY2xpZW50L3YzL2NyZWF0ZVJvb20iOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIGluc3RhbmNlS2V5ID0gY29udGV4dC5JbnN0YW5jZT8uS2V5OwogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciByb29tVHlwZSA9IEdldFN0cmluZyhkYXRhLCAicm9vbVR5cGUiKTsKICAgICAgICB2YXIgcmFuZGV2dUtleSA9IEdldFN0cmluZyhkYXRhLCAicmFuZGV2dUtleSIpOwogICAgICAgIHZhciBhZHZpc29yVHlwZSA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvclR5cGUiKSA/PyAicG0iOwogICAgICAgIHZhciBhZHZpc29ySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwogICAgICAgIHZhciBoaXN0b3J5VmlzaWJpbGl0eSA9IE5vcm1hbGl6ZUhpc3RvcnlWaXNpYmlsaXR5KEdldFN0cmluZyhkYXRhLCAiaGlzdG9yeVZpc2liaWxpdHkiKSkgPz8gImludml0ZWQiOwoKICAgICAgICB2YXIgcm9vbU5hbWUgPSBzdHJpbmcuRXF1YWxzKHJvb21UeXBlLCAicmV6ZXJ2YXRpb24iLCBTdHJpbmdDb21wYXJpc29uLk9yZGluYWxJZ25vcmVDYXNlKSAmJgogICAgICAgICAgICAgICAgICAgICAgICFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJhbmRldnVLZXkpCiAgICAgICAgICAgID8gcmFuZGV2dUtleS5UcmltKCkKICAgICAgICAgICAgOiAoaW5zdGFuY2VLZXkgPz8gc3RyaW5nLkVtcHR5KTsKICAgICAgICB2YXIgbm9ybWFsaXplZFJvb21OYW1lID0gTm9ybWFsaXplUm9vbU5hbWUocm9vbU5hbWUpOwogICAgICAgIHZhciBwcmVmaXhlZE5hbWUgPSBub3JtYWxpemVkUm9vbU5hbWU7CiAgICAgICAgdmFyIGFsaWFzTmFtZSA9IG5vcm1hbGl6ZWRSb29tTmFtZTsKICAgICAgICB2YXIgdG9waWMgPSAkIlJvb20gY3JlYXRlZCBieSB7dXNlcn0iOwoKICAgICAgICB2YXIgaW52aXRlTGlzdCA9IG5ldyBMaXN0PHN0cmluZz4oKTsKICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoYWR2aXNvcklkKSkKICAgICAgICAgICAgaW52aXRlTGlzdC5BZGQoYWR2aXNvcklkLlN0YXJ0c1dpdGgoIkAiKSA/IGFkdmlzb3JJZCA6ICQiQHthZHZpc29ySWR9OmxvY2FsaG9zdCIpOwoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB1c2VyCiAgICAgICAgfTsKICAgICAgICBodHRwVGFzay5TZXRIZWFkZXJzKGhlYWRlcnMpOwoKICAgICAgICB2YXIgYm9keSA9IG5ldwogICAgICAgIHsKICAgICAgICAgICAgbmFtZSA9IHByZWZpeGVkTmFtZSwKICAgICAgICAgICAgcm9vbV9hbGlhc19uYW1lID0gYWxpYXNOYW1lLAogICAgICAgICAgICB0b3BpYyA9IHRvcGljLAogICAgICAgICAgICBwcmVzZXQgPSAicHJpdmF0ZV9jaGF0IiwKICAgICAgICAgICAgdmlzaWJpbGl0eSA9ICJwcml2YXRlIiwKICAgICAgICAgICAgaW5pdGlhbF9zdGF0ZSA9IG5ldyBvYmplY3RbXQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXcgeyB0eXBlID0gIm0ucm9vbS5qb2luX3J1bGVzIiwgc3RhdGVfa2V5ID0gIiIsIGNvbnRlbnQgPSBuZXcgeyBqb2luX3J1bGUgPSAiaW52aXRlIiB9IH0sCiAgICAgICAgICAgICAgICBuZXcgeyB0eXBlID0gIm0ucm9vbS5oaXN0b3J5X3Zpc2liaWxpdHkiLCBzdGF0ZV9rZXkgPSAiIiwgY29udGVudCA9IG5ldyB7IGhpc3RvcnlfdmlzaWJpbGl0eSA9IGhpc3RvcnlWaXNpYmlsaXR5IH0gfQogICAgICAgICAgICB9LAogICAgICAgICAgICBpbnZpdGUgPSBpbnZpdGVMaXN0CiAgICAgICAgfTsKICAgICAgICBodHRwVGFzay5TZXRCb2R5KGJvZHkpOwoKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciByZXN1bHQgPSBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgICAgICB2YXIgcmVzcG9uc2UgPSBjb250ZXh0LkJvZHk7CiAgICAgICAgdmFyIGJvZHlEYXRhID0gcmVzcG9uc2U/LmRhdGE7CiAgICAgICAgdmFyIGluc3RhbmNlRGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgIHN0cmluZyByb29tSWQgPSBHZXRTdHJpbmcoYm9keURhdGEsICJyb29tX2lkIik7CiAgICAgICAgc3RyaW5nIGVycmNvZGUgPSBHZXRTdHJpbmcoYm9keURhdGEsICJlcnJjb2RlIik7CiAgICAgICAgc3RyaW5nIGVycm9yTXNnID0gR2V0U3RyaW5nKGJvZHlEYXRhLCAiZXJyb3IiKTsKICAgICAgICBzdHJpbmcgYWR2aXNvcklkID0gR2V0U3RyaW5nKGluc3RhbmNlRGF0YSwgImFkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGVycmNvZGUpKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKGVycmNvZGUgPT0gIk1fUk9PTV9JTl9VU0UiKQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiTV9ST09NX0lOX1VTRSIpOwoKICAgICAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2hhdEludGVncmF0aW9uID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcm9vbUlkID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIGVycm9yID0gZXJyb3JNc2csCiAgICAgICAgICAgICAgICAgICAgZXJyb3JDb2RlID0gZXJyY29kZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBzdHJpbmcgdXNlciA9IEdldFN0cmluZyhpbnN0YW5jZURhdGEsICJ1c2VyIik7CiAgICAgICAgICAgIHZhciBtZW1iZXJzID0gbmV3IExpc3Q8b2JqZWN0PigpOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodXNlcikpCiAgICAgICAgICAgICAgICBtZW1iZXJzLkFkZChuZXcgeyBtZW1iZXJJZCA9IHVzZXIsIHJvbGUgPSAib3duZXIiIH0pOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoYWR2aXNvcklkKSkKICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gYWR2aXNvcklkLCByb2xlID0gImFkdmlzb3IiIH0pOwoKICAgICAgICAgICAgdmFyIG1lbWJlcldpdGhvdXRBcnJheSA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPigpOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodXNlcikpCiAgICAgICAgICAgICAgICBtZW1iZXJXaXRob3V0QXJyYXlbdXNlcl0gPSAib3duZXIiOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoYWR2aXNvcklkKSkKICAgICAgICAgICAgICAgIG1lbWJlcldpdGhvdXRBcnJheVthZHZpc29ySWRdID0gImFkdmlzb3IiOwoKICAgICAgICAgICAgc3RyaW5nIHJvb21UeXBlID0gR2V0U3RyaW5nKGluc3RhbmNlRGF0YSwgInJvb21UeXBlIik7CiAgICAgICAgICAgIHN0cmluZyByYW5kZXZ1S2V5ID0gR2V0U3RyaW5nKGluc3RhbmNlRGF0YSwgInJhbmRldnVLZXkiKTsKICAgICAgICAgICAgc3RyaW5nIHN0YXJ0RGF0ZVRpbWUgPSBHZXRTdHJpbmcoaW5zdGFuY2VEYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgICAgICBzdHJpbmcgZW5kRGF0ZVRpbWUgPSBHZXRTdHJpbmcoaW5zdGFuY2VEYXRhLCAiZW5kRGF0ZVRpbWUiKTsKCiAgICAgICAgICAgIHJlc3VsdC5EYXRhID0gbmV3CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNoYXRJbnRlZ3JhdGlvbiA9IG5ldwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHJvb21JZCwKICAgICAgICAgICAgICAgICAgICBlcnJvciA9IChzdHJpbmcpbnVsbCwKICAgICAgICAgICAgICAgICAgICBlcnJvckNvZGUgPSAoc3RyaW5nKW51bGwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICByb29tVHlwZSwKICAgICAgICAgICAgICAgIHJhbmRldnVLZXksCiAgICAgICAgICAgICAgICBzdGFydERhdGVUaW1lLAogICAgICAgICAgICAgICAgZW5kRGF0ZVRpbWUsCiAgICAgICAgICAgICAgICBtZW1iZXJzID0gbWVtYmVycywKICAgICAgICAgICAgICAgIG1lbWJlcldpdGhvdXRBcnJheSA9IG1lbWJlcldpdGhvdXRBcnJheSwKICAgICAgICAgICAgICAgIHBlbmRpbmdKb2luVXNlcklkID0gYWR2aXNvcklkLAogICAgICAgICAgICAgICAgYm9keURhdGE9Ym9keURhdGEKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlICBzdHJpbmcgTm9ybWFsaXplSGlzdG9yeVZpc2liaWxpdHkoc3RyaW5nIHJhdykKICAgIHsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyYXcpKSByZXR1cm4gbnVsbDsKICAgICAgICB2YXIgbG93ZXIgPSByYXcuVHJpbSgpLlRvTG93ZXJJbnZhcmlhbnQoKTsKICAgICAgICBpZiAoIUFsbG93ZWRIaXN0b3J5VmlzaWJpbGl0eS5Db250YWlucyhsb3dlcikpIHJldHVybiBudWxsOwogICAgICAgIHJldHVybiBsb3dlcjsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBOb3JtYWxpemVSb29tTmFtZShzdHJpbmcgcmF3KQogICAgewogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJhdykpIHJldHVybiBzdHJpbmcuRW1wdHk7CiAgICAgICAgcmV0dXJuIHJhdy5UcmltKCkKICAgICAgICAgICAgLlJlcGxhY2UoIi0iLCBzdHJpbmcuRW1wdHkpCiAgICAgICAgICAgIC5SZXBsYWNlKCIuIiwgc3RyaW5nLkVtcHR5KQogICAgICAgICAgICAuUmVwbGFjZSgiOiIsIHN0cmluZy5FbXB0eSk7CiAgICB9Cn0K"
155
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgY3JlYXRlLXBlcm1hbmVudC1jaGF0LXJvb20gSHR0cFRhc2sgKFR5cGUgNikgaW4gdGhlIGNoYXQtcm9vbSBzdWJmbG93LgovLy8gQ3JlYXRlcyBhIHBlcm1hbmVudCBNYXRyaXggcm9vbSB2aWEgbmF0aXZlIC9fbWF0cml4L2NsaWVudC92My9jcmVhdGVSb29tLgovLy8gQVBJU0lYIGNvbnZlcnRzIFgtTWF0cml4LVVzZXIgaGVhZGVyIHRvIEJlYXJlciB0b2tlbiBhdXRvbWF0aWNhbGx5LgovLy8gUm9vbSBuYW1lID0ge3VzZXJ9X3tpbnN0YW5jZUtleX0te2Fkdmlzb3JUeXBlfSwgYWR2aXNvciBpbnZpdGVkLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgQ3JlYXRlUGVybWFuZW50Q2hhdFJvb21NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHJpdmF0ZSAgcmVhZG9ubHkgSGFzaFNldDxzdHJpbmc+IEFsbG93ZWRIaXN0b3J5VmlzaWJpbGl0eSA9IG5ldyBIYXNoU2V0PHN0cmluZz4oU3RyaW5nQ29tcGFyZXIuT3JkaW5hbElnbm9yZUNhc2UpCiAgICB7CiAgICAgICAgInNoYXJlZCIsICJpbnZpdGVkIiwgImpvaW5lZCIsICJ3b3JsZF9yZWFkYWJsZSIKICAgIH07CgogICAgcHVibGljIGFzeW5jIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBodHRwVGFzayA9IHRhc2sgYXMgSHR0cFRhc2s7CiAgICAgICAgaWYgKGh0dHBUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYW4gSHR0cFRhc2siKTsKCiAgICAgICAgdmFyIHNlY3JldE5hbWUgPSBHZXRDb25maWdWYWx1ZSgiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHNlY3JldE5hbWUpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSBjb25maWd1cmF0aW9uIGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBtYXRyaXhCYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoc2VjcmV0TmFtZSwgIndvcmtmbG93LXNlY3JldCIsICJNYXRyaXhCYXNlVXJsIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobWF0cml4QmFzZVVybCkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJNYXRyaXhCYXNlVXJsIHNlY3JldCBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgU3luYXBzZVNlcnZlciA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiU3luYXBzZVNlcnZlciIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKFN5bmFwc2VTZXJ2ZXIpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiU3luYXBzZVNlcnZlciBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIGZ1bGxVcmwgPSBtYXRyaXhCYXNlVXJsLlRyaW1FbmQoJy8nKSArICIvX21hdHJpeC9jbGllbnQvdjMvY3JlYXRlUm9vbSI7CiAgICAgICAgaHR0cFRhc2suU2V0VXJsKGZ1bGxVcmwpOwoKICAgICAgICB2YXIgaW5zdGFuY2VLZXkgPSBjb250ZXh0Lkluc3RhbmNlPy5LZXk7CiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIHZhciB1c2VyID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VyIik7CiAgICAgICAgdmFyIHJvb21UeXBlID0gR2V0U3RyaW5nKGRhdGEsICJyb29tVHlwZSIpOwogICAgICAgIHZhciByYW5kZXZ1S2V5ID0gR2V0U3RyaW5nKGRhdGEsICJyYW5kZXZ1S2V5Iik7CiAgICAgICAgdmFyIGFkdmlzb3JUeXBlID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29yVHlwZSIpID8/ICJwbSI7CiAgICAgICAgdmFyIGFkdmlzb3JJZCA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvcklkIik7CiAgICAgICAgdmFyIGhpc3RvcnlWaXNpYmlsaXR5ID0gTm9ybWFsaXplSGlzdG9yeVZpc2liaWxpdHkoR2V0U3RyaW5nKGRhdGEsICJoaXN0b3J5VmlzaWJpbGl0eSIpKSA/PyAiaW52aXRlZCI7CgogICAgICAgIHZhciByb29tTmFtZSA9IHN0cmluZy5FcXVhbHMocm9vbVR5cGUsICJyZXplcnZhdGlvbiIsIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbElnbm9yZUNhc2UpICYmCiAgICAgICAgICAgICAgICAgICAgICAgIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UocmFuZGV2dUtleSkKICAgICAgICAgICAgPyByYW5kZXZ1S2V5LlRyaW0oKQogICAgICAgICAgICA6IChpbnN0YW5jZUtleSA/PyBzdHJpbmcuRW1wdHkpOwogICAgICAgIHZhciBub3JtYWxpemVkUm9vbU5hbWUgPSBOb3JtYWxpemVSb29tTmFtZShyb29tTmFtZSk7CiAgICAgICAgdmFyIHByZWZpeGVkTmFtZSA9IG5vcm1hbGl6ZWRSb29tTmFtZTsKICAgICAgICB2YXIgYWxpYXNOYW1lID0gbm9ybWFsaXplZFJvb21OYW1lOwogICAgICAgIHZhciB0b3BpYyA9ICQiUm9vbSBjcmVhdGVkIGJ5IHt1c2VyfSI7CgogICAgICAgIHZhciBpbnZpdGVMaXN0ID0gbmV3IExpc3Q8c3RyaW5nPigpOwogICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShhZHZpc29ySWQpKQogICAgICAgICAgICBpbnZpdGVMaXN0LkFkZChhZHZpc29ySWQuU3RhcnRzV2l0aCgiQCIpID8gYWR2aXNvcklkIDogJCJAe2Fkdmlzb3JJZH06e1N5bmFwc2VTZXJ2ZXJ9Iik7CgogICAgICAgIHZhciBjaGF0SW50ZWdyYXRpb24gPSBkYXRhPy5jaGF0SW50ZWdyYXRpb247CiAgICAgICAgdmFyIHNlc3Npb25JZCA9IEdldFN0cmluZyhjaGF0SW50ZWdyYXRpb24sICJzZXNzaW9uSWQiKTsKCiAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4KICAgICAgICB7CiAgICAgICAgICAgIFsiQ29udGVudC1UeXBlIl0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiQWNjZXB0Il0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiWC1NYXRyaXgtVXNlciJdID0gdXNlcgogICAgICAgIH07CiAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHNlc3Npb25JZCkpCiAgICAgICAgICAgIGhlYWRlcnNbIkF1dGhvcml6YXRpb24iXSA9ICJCZWFyZXIgIiArIHNlc3Npb25JZDsKICAgICAgICBodHRwVGFzay5TZXRIZWFkZXJzKGhlYWRlcnMpOwoKICAgICAgICB2YXIgYm9keSA9IG5ldwogICAgICAgIHsKICAgICAgICAgICAgbmFtZSA9IHByZWZpeGVkTmFtZSwKICAgICAgICAgICAgcm9vbV9hbGlhc19uYW1lID0gYWxpYXNOYW1lLAogICAgICAgICAgICB0b3BpYyA9IHRvcGljLAogICAgICAgICAgICBwcmVzZXQgPSAicHJpdmF0ZV9jaGF0IiwKICAgICAgICAgICAgdmlzaWJpbGl0eSA9ICJwcml2YXRlIiwKICAgICAgICAgICAgaW5pdGlhbF9zdGF0ZSA9IG5ldyBvYmplY3RbXQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXcgeyB0eXBlID0gIm0ucm9vbS5qb2luX3J1bGVzIiwgc3RhdGVfa2V5ID0gIiIsIGNvbnRlbnQgPSBuZXcgeyBqb2luX3J1bGUgPSAiaW52aXRlIiB9IH0sCiAgICAgICAgICAgICAgICBuZXcgeyB0eXBlID0gIm0ucm9vbS5oaXN0b3J5X3Zpc2liaWxpdHkiLCBzdGF0ZV9rZXkgPSAiIiwgY29udGVudCA9IG5ldyB7IGhpc3RvcnlfdmlzaWJpbGl0eSA9IGhpc3RvcnlWaXNpYmlsaXR5IH0gfQogICAgICAgICAgICB9LAogICAgICAgICAgICBpbnZpdGUgPSBpbnZpdGVMaXN0CiAgICAgICAgfTsKICAgICAgICBodHRwVGFzay5TZXRCb2R5KGJvZHkpOwoKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciByZXN1bHQgPSBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgICAgICB2YXIgcmVzcG9uc2UgPSBjb250ZXh0LkJvZHk7CiAgICAgICAgdmFyIGJvZHlEYXRhID0gcmVzcG9uc2U/LmRhdGE7CiAgICAgICAgdmFyIGluc3RhbmNlRGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgIHN0cmluZyByb29tSWQgPSBHZXRTdHJpbmcoYm9keURhdGEsICJyb29tX2lkIik7CiAgICAgICAgc3RyaW5nIGVycmNvZGUgPSBHZXRTdHJpbmcoYm9keURhdGEsICJlcnJjb2RlIik7CiAgICAgICAgc3RyaW5nIGVycm9yTXNnID0gR2V0U3RyaW5nKGJvZHlEYXRhLCAiZXJyb3IiKTsKICAgICAgICBzdHJpbmcgYWR2aXNvcklkID0gR2V0U3RyaW5nKGluc3RhbmNlRGF0YSwgImFkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGVycmNvZGUpKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKGVycmNvZGUgPT0gIk1fUk9PTV9JTl9VU0UiKQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiTV9ST09NX0lOX1VTRSIpOwoKICAgICAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2hhdEludGVncmF0aW9uID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcm9vbUlkID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIGVycm9yID0gZXJyb3JNc2csCiAgICAgICAgICAgICAgICAgICAgZXJyb3JDb2RlID0gZXJyY29kZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBzdHJpbmcgdXNlciA9IEdldFN0cmluZyhpbnN0YW5jZURhdGEsICJ1c2VyIik7CiAgICAgICAgICAgIHZhciBtZW1iZXJzID0gbmV3IExpc3Q8b2JqZWN0PigpOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodXNlcikpCiAgICAgICAgICAgICAgICBtZW1iZXJzLkFkZChuZXcgeyBtZW1iZXJJZCA9IHVzZXIsIHJvbGUgPSAib3duZXIiIH0pOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoYWR2aXNvcklkKSkKICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gYWR2aXNvcklkLCByb2xlID0gImFkdmlzb3IiIH0pOwoKICAgICAgICAgICAgdmFyIG1lbWJlcldpdGhvdXRBcnJheSA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPigpOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodXNlcikpCiAgICAgICAgICAgICAgICBtZW1iZXJXaXRob3V0QXJyYXlbdXNlcl0gPSAib3duZXIiOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoYWR2aXNvcklkKSkKICAgICAgICAgICAgICAgIG1lbWJlcldpdGhvdXRBcnJheVthZHZpc29ySWRdID0gImFkdmlzb3IiOwoKICAgICAgICAgICAgc3RyaW5nIHJvb21UeXBlID0gR2V0U3RyaW5nKGluc3RhbmNlRGF0YSwgInJvb21UeXBlIik7CiAgICAgICAgICAgIHN0cmluZyByYW5kZXZ1S2V5ID0gR2V0U3RyaW5nKGluc3RhbmNlRGF0YSwgInJhbmRldnVLZXkiKTsKICAgICAgICAgICAgc3RyaW5nIHN0YXJ0RGF0ZVRpbWUgPSBHZXRTdHJpbmcoaW5zdGFuY2VEYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgICAgICBzdHJpbmcgZW5kRGF0ZVRpbWUgPSBHZXRTdHJpbmcoaW5zdGFuY2VEYXRhLCAiZW5kRGF0ZVRpbWUiKTsKCiAgICAgICAgICAgIHJlc3VsdC5EYXRhID0gbmV3CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNoYXRJbnRlZ3JhdGlvbiA9IG5ldwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHJvb21JZCwKICAgICAgICAgICAgICAgICAgICBlcnJvciA9IChzdHJpbmcpbnVsbCwKICAgICAgICAgICAgICAgICAgICBlcnJvckNvZGUgPSAoc3RyaW5nKW51bGwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICByb29tVHlwZSwKICAgICAgICAgICAgICAgIHJhbmRldnVLZXksCiAgICAgICAgICAgICAgICBzdGFydERhdGVUaW1lLAogICAgICAgICAgICAgICAgZW5kRGF0ZVRpbWUsCiAgICAgICAgICAgICAgICBtZW1iZXJzID0gbWVtYmVycywKICAgICAgICAgICAgICAgIG1lbWJlcldpdGhvdXRBcnJheSA9IG1lbWJlcldpdGhvdXRBcnJheSwKICAgICAgICAgICAgICAgIHBlbmRpbmdKb2luVXNlcklkID0gYWR2aXNvcklkLAogICAgICAgICAgICAgICAgYm9keURhdGE9Ym9keURhdGEKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlICBzdHJpbmcgTm9ybWFsaXplSGlzdG9yeVZpc2liaWxpdHkoc3RyaW5nIHJhdykKICAgIHsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyYXcpKSByZXR1cm4gbnVsbDsKICAgICAgICB2YXIgbG93ZXIgPSByYXcuVHJpbSgpLlRvTG93ZXJJbnZhcmlhbnQoKTsKICAgICAgICBpZiAoIUFsbG93ZWRIaXN0b3J5VmlzaWJpbGl0eS5Db250YWlucyhsb3dlcikpIHJldHVybiBudWxsOwogICAgICAgIHJldHVybiBsb3dlcjsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBOb3JtYWxpemVSb29tTmFtZShzdHJpbmcgcmF3KQogICAgewogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJhdykpIHJldHVybiBzdHJpbmcuRW1wdHk7CiAgICAgICAgcmV0dXJuIHJhdy5UcmltKCkKICAgICAgICAgICAgLlJlcGxhY2UoIi0iLCBzdHJpbmcuRW1wdHkpCiAgICAgICAgICAgIC5SZXBsYWNlKCIuIiwgc3RyaW5nLkVtcHR5KQogICAgICAgICAgICAuUmVwbGFjZSgiOiIsIHN0cmluZy5FbXB0eSk7CiAgICB9Cn0K"
130
156
  }
131
157
  },
132
158
  {
133
- "order": 3,
159
+ "order": 5,
160
+ "task": {
161
+ "domain": "morph-touch",
162
+ "flow": "sys-tasks",
163
+ "key": "start-register-matrix-user",
164
+ "version": "1.0.0"
165
+ },
166
+ "mapping": {
167
+ "location": "./src/RegisterForJoinUserToRoomMapping.csx",
168
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBNYXBwaW5nIGZvciBzdGFydC1yZWdpc3Rlci1tYXRyaXgtdXNlciBTdGFydFRhc2sgKFR5cGUgMTEpIGJlZm9yZSBqb2luLXVzZXItdG8tcm9vbS4KLy8vIFN0YXJ0cyByZWdpc3Rlci1tYXRyaXgtdXNlciBmbG93IHdpdGggbWF0cml4VXNlcm5hbWUgZnJvbSBwZW5kaW5nSm9pblVzZXJJZCAvIG5ld0Fkdmlzb3JJZCAvIGFkdmlzb3JJZC4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIFJlZ2lzdGVyRm9ySm9pblVzZXJUb1Jvb21NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBzdGFydFRhc2sgPSB0YXNrIGFzIFN0YXJ0VGFzazsKICAgICAgICBpZiAoc3RhcnRUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBTdGFydFRhc2siKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICB2YXIgam9pblVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInBlbmRpbmdKb2luVXNlcklkIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoam9pblVzZXIpKQogICAgICAgICAgICBqb2luVXNlciA9IEdldFN0cmluZyhkYXRhLCAibmV3QWR2aXNvcklkIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoam9pblVzZXIpKQogICAgICAgICAgICBqb2luVXNlciA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvcklkIik7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKGpvaW5Vc2VyKSkKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CgogICAgICAgIHZhciBtYXRyaXhVc2VybmFtZSA9IGpvaW5Vc2VyLlRyaW0oKTsKICAgICAgICBpZiAobWF0cml4VXNlcm5hbWUuU3RhcnRzV2l0aCgiQCIpKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGNvbG9uSWR4ID0gbWF0cml4VXNlcm5hbWUuSW5kZXhPZignOicpOwogICAgICAgICAgICBtYXRyaXhVc2VybmFtZSA9IGNvbG9uSWR4ID4gMCA/IG1hdHJpeFVzZXJuYW1lLlN1YnN0cmluZygxLCBjb2xvbklkeCAtIDEpIDogbWF0cml4VXNlcm5hbWUuU3Vic3RyaW5nKDEpOwogICAgICAgIH0KCiAgICAgICAgc3RhcnRUYXNrLlNldERvbWFpbigibW9ycGgtdG91Y2giKTsKICAgICAgICBzdGFydFRhc2suU2V0RmxvdygicmVnaXN0ZXItbWF0cml4LXVzZXIiKTsKICAgICAgICBzdGFydFRhc2suU2V0U3luYyh0cnVlKTsKICAgICAgICBzdGFydFRhc2suU2V0Qm9keShuZXcgeyBtYXRyaXhVc2VybmFtZSB9KTsKCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cg=="
169
+ }
170
+ },
171
+ {
172
+ "order": 6,
173
+ "task": {
174
+ "domain": "morph-touch",
175
+ "flow": "sys-tasks",
176
+ "key": "login-for-chat",
177
+ "version": "1.0.0"
178
+ },
179
+ "mapping": {
180
+ "location": "./src/LoginForJoinUserToRoomMapping.csx",
181
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgbG9naW4tZm9yLWNoYXQgd2hlbiB0aGUgbmV4dCBzdGVwIGlzIGpvaW4tdXNlci10by1yb29tLgovLy8gTG9ncyBpbiBhcyB0aGUgdXNlciB3aG8gd2lsbCBqb2luIHRoZSByb29tIChwZW5kaW5nSm9pblVzZXJJZCAvIG5ld0Fkdmlzb3JJZCAvIGFkdmlzb3JJZCkuCi8vLyBTdG9yZXMgYWNjZXNzX3Rva2VuIGluIGNoYXRJbnRlZ3JhdGlvbi5qb2luU2Vzc2lvbklkIHNvIEpvaW5Vc2VyVG9Sb29tTWFwcGluZwovLy8gdXNlcyB0aGUgY29ycmVjdCB0b2tlbiB3aXRob3V0IG92ZXJ3cml0aW5nIHRoZSByb29tLW93bmVyJ3Mgc2Vzc2lvbklkLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgTG9naW5Gb3JKb2luVXNlclRvUm9vbU1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgYXN5bmMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGh0dHBUYXNrID0gdGFzayBhcyBIdHRwVGFzazsKICAgICAgICBpZiAoaHR0cFRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhbiBIdHRwVGFzayIpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgIHZhciBqb2luVXNlciA9IEdldFN0cmluZyhkYXRhLCAicGVuZGluZ0pvaW5Vc2VySWQiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShqb2luVXNlcikpCiAgICAgICAgICAgIGpvaW5Vc2VyID0gR2V0U3RyaW5nKGRhdGEsICJuZXdBZHZpc29ySWQiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShqb2luVXNlcikpCiAgICAgICAgICAgIGpvaW5Vc2VyID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29ySWQiKTsKCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoam9pblVzZXIpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBsb2dpblVzZXJuYW1lID0gam9pblVzZXIuVHJpbSgpOwogICAgICAgIGlmIChsb2dpblVzZXJuYW1lLlN0YXJ0c1dpdGgoIkAiKSkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBjb2xvbklkeCA9IGxvZ2luVXNlcm5hbWUuSW5kZXhPZignOicpOwogICAgICAgICAgICBsb2dpblVzZXJuYW1lID0gY29sb25JZHggPiAwID8gbG9naW5Vc2VybmFtZS5TdWJzdHJpbmcoMSwgY29sb25JZHggLSAxKSA6IGxvZ2luVXNlcm5hbWUuU3Vic3RyaW5nKDEpOwogICAgICAgIH0KCiAgICAgICAgdmFyIHNlY3JldE5hbWUgPSBHZXRDb25maWdWYWx1ZSgiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHNlY3JldE5hbWUpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSBjb25maWd1cmF0aW9uIGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBtYXRyaXhCYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoc2VjcmV0TmFtZSwgIndvcmtmbG93LXNlY3JldCIsICJNYXRyaXhCYXNlVXJsIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobWF0cml4QmFzZVVybCkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJNYXRyaXhCYXNlVXJsIHNlY3JldCBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgc3luYXBzZVBhc3N3b3JkID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoc2VjcmV0TmFtZSwgIndvcmtmbG93LXNlY3JldCIsICJTeW5hcHNlUGFzc3dvcmQiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzeW5hcHNlUGFzc3dvcmQpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiU3luYXBzZVBhc3N3b3JkIHNlY3JldCBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9sb2dpbiI7CiAgICAgICAgaHR0cFRhc2suU2V0VXJsKGZ1bGxVcmwpOwoKICAgICAgICBodHRwVGFzay5TZXRIZWFkZXJzKG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIH0pOwoKICAgICAgICBodHRwVGFzay5TZXRCb2R5KG5ldwogICAgICAgIHsKICAgICAgICAgICAgdHlwZSA9ICJtLmxvZ2luLnBhc3N3b3JkIiwKICAgICAgICAgICAgaWRlbnRpZmllciA9IG5ldyB7IHR5cGUgPSAibS5pZC51c2VyIiwgdXNlciA9IGxvZ2luVXNlcm5hbWUgfSwKICAgICAgICAgICAgcGFzc3dvcmQgPSBzeW5hcHNlUGFzc3dvcmQKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciByZXN1bHQgPSBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgICAgICB2YXIgcmVzcG9uc2UgPSBjb250ZXh0LkJvZHk7CiAgICAgICAgdmFyIGluc3RhbmNlRGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgIHN0cmluZyBleGlzdGluZ1Nlc3Npb25JZCA9IG51bGw7CiAgICAgICAgc3RyaW5nIGV4aXN0aW5nVXNlcklkID0gbnVsbDsKICAgICAgICBzdHJpbmcgZXhpc3RpbmdVc2VybmFtZSA9IG51bGw7CiAgICAgICAgc3RyaW5nIGV4aXN0aW5nUm9vbUlkID0gbnVsbDsKICAgICAgICBpZiAoaW5zdGFuY2VEYXRhICE9IG51bGwgJiYgSGFzUHJvcGVydHkoaW5zdGFuY2VEYXRhLCAiY2hhdEludGVncmF0aW9uIikgJiYgaW5zdGFuY2VEYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgZXhpc3RpbmdTZXNzaW9uSWQgPSBHZXRTdHJpbmcoaW5zdGFuY2VEYXRhLmNoYXRJbnRlZ3JhdGlvbiwgInNlc3Npb25JZCIpOwogICAgICAgICAgICBleGlzdGluZ1VzZXJJZCA9IEdldFN0cmluZyhpbnN0YW5jZURhdGEuY2hhdEludGVncmF0aW9uLCAidXNlcklkIik7CiAgICAgICAgICAgIGV4aXN0aW5nVXNlcm5hbWUgPSBHZXRTdHJpbmcoaW5zdGFuY2VEYXRhLmNoYXRJbnRlZ3JhdGlvbiwgInVzZXJuYW1lIik7CiAgICAgICAgICAgIGV4aXN0aW5nUm9vbUlkID0gR2V0U3RyaW5nKGluc3RhbmNlRGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKICAgICAgICB9CgogICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzID09IHRydWUpCiAgICAgICAgewogICAgICAgICAgICBkeW5hbWljIGRhdGEgPSByZXNwb25zZS5kYXRhOwogICAgICAgICAgICBzdHJpbmcgam9pblNlc3Npb25JZCA9IEdldFN0cmluZyhkYXRhLCAiYWNjZXNzX3Rva2VuIik7CgogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzZXNzaW9uSWQgPSBleGlzdGluZ1Nlc3Npb25JZCwKICAgICAgICAgICAgICAgICAgICB1c2VySWQgPSBleGlzdGluZ1VzZXJJZCwKICAgICAgICAgICAgICAgICAgICB1c2VybmFtZSA9IGV4aXN0aW5nVXNlcm5hbWUsCiAgICAgICAgICAgICAgICAgICAgcm9vbUlkID0gZXhpc3RpbmdSb29tSWQsCiAgICAgICAgICAgICAgICAgICAgam9pblNlc3Npb25JZCwKICAgICAgICAgICAgICAgICAgICBlcnJvciA9IChzdHJpbmcpbnVsbCwKICAgICAgICAgICAgICAgICAgICBlcnJvckNvZGUgPSAoc3RyaW5nKW51bGwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgc3RyaW5nIGVycm9yTWVzc2FnZSA9IHJlc3BvbnNlPy5lcnJvck1lc3NhZ2U/LlRvU3RyaW5nKCkgPz8gIkpvaW4gdXNlciBsb2dpbiBmYWlsZWQiOwogICAgICAgICAgICBzdHJpbmcgc3RhdHVzQ29kZSA9IHJlc3BvbnNlPy5zdGF0dXNDb2RlICE9IG51bGwgPyByZXNwb25zZS5zdGF0dXNDb2RlLlRvU3RyaW5nKCkgOiBudWxsOwogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzZXNzaW9uSWQgPSBleGlzdGluZ1Nlc3Npb25JZCwKICAgICAgICAgICAgICAgICAgICB1c2VySWQgPSBleGlzdGluZ1VzZXJJZCwKICAgICAgICAgICAgICAgICAgICB1c2VybmFtZSA9IGV4aXN0aW5nVXNlcm5hbWUsCiAgICAgICAgICAgICAgICAgICAgcm9vbUlkID0gZXhpc3RpbmdSb29tSWQsCiAgICAgICAgICAgICAgICAgICAgam9pblNlc3Npb25JZCA9IChzdHJpbmcpbnVsbCwKICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGVycm9yTWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICBlcnJvckNvZGUgPSBzdGF0dXNDb2RlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHJlc3VsdCk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0K"
182
+ }
183
+ },
184
+ {
185
+ "order": 7,
134
186
  "task": {
135
187
  "domain": "morph-touch",
136
188
  "flow": "sys-tasks",
@@ -139,7 +191,7 @@
139
191
  },
140
192
  "mapping": {
141
193
  "location": "./src/JoinUserToRoomMapping.csx",
142
- "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gR2VuZXJpYyBtYXBwaW5nIGZvciBqb2luLXVzZXItdG8tcm9vbSBIdHRwVGFzayAoVHlwZSA2KS4KLy8vIEF1dG8tam9pbnMgdGhlIHVzZXIgc3BlY2lmaWVkIGluIGluc3RhbmNlRGF0YS5wZW5kaW5nSm9pblVzZXJJZCB0byB0aGUgcm9vbS4KLy8vIFgtTWF0cml4LVVzZXIgaXMgc2V0IHRvIHRoZSBqb2luaW5nIHVzZXIgc28gQVBJU0lYIGF1dGhlbnRpY2F0ZXMgYXMgdGhhdCB1c2VyLgovLy8gVXNlZCBhZnRlciBpbnZpdGUgaW46IHJvb20gY3JlYXRpb24gKG9uRW50cnkpLCB1cGRhdGUgKGFkZCBtZW1iZXIpLCB0cmFuc2ZlciB0cmFuc2l0aW9ucy4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIEpvaW5Vc2VyVG9Sb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIHBlbmRpbmdKb2luVXNlcklkID0gR2V0U3RyaW5nKGRhdGEsICJwZW5kaW5nSm9pblVzZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld0Fkdmlzb3JJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyb29tSWQpIHx8IHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UocGVuZGluZ0pvaW5Vc2VySWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBzZWNyZXROYW1lID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZWNyZXROYW1lKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgbWF0cml4QmFzZVVybCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9qb2luLyIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhyb29tSWQpOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIHhNYXRyaXhVc2VyID0gcGVuZGluZ0pvaW5Vc2VySWQuVHJpbSgpOwogICAgICAgIGlmICh4TWF0cml4VXNlci5TdGFydHNXaXRoKCJAIikpCiAgICAgICAgewogICAgICAgICAgICB2YXIgY29sb25JZHggPSB4TWF0cml4VXNlci5JbmRleE9mKCc6Jyk7CiAgICAgICAgICAgIHhNYXRyaXhVc2VyID0gY29sb25JZHggPiAwID8geE1hdHJpeFVzZXIuU3Vic3RyaW5nKDEsIGNvbG9uSWR4IC0gMSkgOiB4TWF0cml4VXNlci5TdWJzdHJpbmcoMSk7CiAgICAgICAgfQoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB4TWF0cml4VXNlcgogICAgICAgIH07CiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhoZWFkZXJzKTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShuZXcgeyB9KTsKCiAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBhZHZpc29yVHlwZSA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvclR5cGUiKTsKICAgICAgICB2YXIgYWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29ySWQiKTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIG1lbWJlcnMgPSBuZXcgTGlzdDxvYmplY3Q+KCk7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJtZW1iZXJzIikgJiYgZGF0YS5tZW1iZXJzICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBmb3JlYWNoICh2YXIgbSBpbiBkYXRhLm1lbWJlcnMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBtaWQgPSBHZXRTdHJpbmcobSwgIm1lbWJlcklkIikgPz8gR2V0U3RyaW5nKG0sICJhZHZpc29ySWQiKTsKICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbWlkLCByb2xlID0gR2V0U3RyaW5nKG0sICJyb2xlIikgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciByb29tVHlwZSA9IEdldFN0cmluZyhkYXRhLCAicm9vbVR5cGUiKTsKICAgICAgICB2YXIgc3RhcnREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgIHZhciBlbmREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAiZW5kRGF0ZVRpbWUiKTsKCiAgICAgICAgdmFyIG1lbWJlcldpdGhvdXRBcnJheSA9IEJ1aWxkTWVtYmVyV2l0aG91dEFycmF5KG1lbWJlcnMpOwoKICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgIHsKICAgICAgICAgICAgdXNlciwKICAgICAgICAgICAgYWR2aXNvclR5cGUsCiAgICAgICAgICAgIGFkdmlzb3JJZCwKICAgICAgICAgICAgY2hhdEludGVncmF0aW9uID0gbmV3IHsgcm9vbUlkIH0sCiAgICAgICAgICAgIHJvb21UeXBlLAogICAgICAgICAgICBzdGFydERhdGVUaW1lLAogICAgICAgICAgICBlbmREYXRlVGltZSwKICAgICAgICAgICAgbWVtYmVycyA9IG1lbWJlcnMsCiAgICAgICAgICAgIG1lbWJlcldpdGhvdXRBcnJheSA9IG1lbWJlcldpdGhvdXRBcnJheQogICAgICAgIH07CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBCdWlsZE1lbWJlcldpdGhvdXRBcnJheShJRW51bWVyYWJsZTxvYmplY3Q+IG1lbWJlcnMpCiAgICB7CiAgICAgICAgdmFyIG1hcCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPigpOwogICAgICAgIGlmIChtZW1iZXJzID09IG51bGwpIHJldHVybiBtYXA7CiAgICAgICAgZm9yZWFjaCAoZHluYW1pYyBtIGluIG1lbWJlcnMpCiAgICAgICAgewogICAgICAgICAgICB0cnkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICAgICAgICB2YXIgbWlkID0gbS5tZW1iZXJJZD8uVG9TdHJpbmcoKSA/PyBtLmFkdmlzb3JJZD8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1pZCkpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgbWFwW21pZF0gPSBtLnJvbGU/LlRvU3RyaW5nKCkgPz8gIiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXA7CiAgICB9Cn0K"
194
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gR2VuZXJpYyBtYXBwaW5nIGZvciBqb2luLXVzZXItdG8tcm9vbSBIdHRwVGFzayAoVHlwZSA2KS4KLy8vIEF1dG8tam9pbnMgdGhlIHVzZXIgc3BlY2lmaWVkIGluIGluc3RhbmNlRGF0YS5wZW5kaW5nSm9pblVzZXJJZCB0byB0aGUgcm9vbS4KLy8vIFgtTWF0cml4LVVzZXIgaXMgc2V0IHRvIHRoZSBqb2luaW5nIHVzZXIgc28gQVBJU0lYIGF1dGhlbnRpY2F0ZXMgYXMgdGhhdCB1c2VyLgovLy8gVXNlZCBhZnRlciBpbnZpdGUgaW46IHJvb20gY3JlYXRpb24gKG9uRW50cnkpLCB1cGRhdGUgKGFkZCBtZW1iZXIpLCB0cmFuc2ZlciB0cmFuc2l0aW9ucy4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIEpvaW5Vc2VyVG9Sb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIHBlbmRpbmdKb2luVXNlcklkID0gR2V0U3RyaW5nKGRhdGEsICJwZW5kaW5nSm9pblVzZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld0Fkdmlzb3JJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyb29tSWQpIHx8IHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UocGVuZGluZ0pvaW5Vc2VySWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBzZWNyZXROYW1lID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZWNyZXROYW1lKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgbWF0cml4QmFzZVVybCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9qb2luLyIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhyb29tSWQpOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIHhNYXRyaXhVc2VyID0gcGVuZGluZ0pvaW5Vc2VySWQuVHJpbSgpOwogICAgICAgIGlmICh4TWF0cml4VXNlci5TdGFydHNXaXRoKCJAIikpCiAgICAgICAgewogICAgICAgICAgICB2YXIgY29sb25JZHggPSB4TWF0cml4VXNlci5JbmRleE9mKCc6Jyk7CiAgICAgICAgICAgIHhNYXRyaXhVc2VyID0gY29sb25JZHggPiAwID8geE1hdHJpeFVzZXIuU3Vic3RyaW5nKDEsIGNvbG9uSWR4IC0gMSkgOiB4TWF0cml4VXNlci5TdWJzdHJpbmcoMSk7CiAgICAgICAgfQoKICAgICAgICBzdHJpbmcgam9pblNlc3Npb25JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICBqb2luU2Vzc2lvbklkID0gR2V0U3RyaW5nKGRhdGEuY2hhdEludGVncmF0aW9uLCAiam9pblNlc3Npb25JZCIpOwoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB4TWF0cml4VXNlcgogICAgICAgIH07CiAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKGpvaW5TZXNzaW9uSWQpKQogICAgICAgICAgICBoZWFkZXJzWyJBdXRob3JpemF0aW9uIl0gPSAiQmVhcmVyICIgKyBqb2luU2Vzc2lvbklkOwogICAgICAgIGh0dHBUYXNrLlNldEhlYWRlcnMoaGVhZGVycyk7CgogICAgICAgIGh0dHBUYXNrLlNldEJvZHkobmV3IHsgfSk7CgogICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgdmFyIHVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXIiKTsKICAgICAgICB2YXIgYWR2aXNvclR5cGUgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JUeXBlIik7CiAgICAgICAgdmFyIGFkdmlzb3JJZCA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvcklkIik7CgogICAgICAgIHN0cmluZyByb29tSWQgPSBudWxsOwogICAgICAgIGlmIChIYXNQcm9wZXJ0eShkYXRhLCAiY2hhdEludGVncmF0aW9uIikgJiYgZGF0YS5jaGF0SW50ZWdyYXRpb24gIT0gbnVsbCkKICAgICAgICAgICAgcm9vbUlkID0gR2V0U3RyaW5nKGRhdGEuY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CgogICAgICAgIHZhciBtZW1iZXJzID0gbmV3IExpc3Q8b2JqZWN0PigpOwogICAgICAgIGlmIChIYXNQcm9wZXJ0eShkYXRhLCAibWVtYmVycyIpICYmIGRhdGEubWVtYmVycyAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgZm9yZWFjaCAodmFyIG0gaW4gZGF0YS5tZW1iZXJzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgbWlkID0gR2V0U3RyaW5nKG0sICJtZW1iZXJJZCIpID8/IEdldFN0cmluZyhtLCAiYWR2aXNvcklkIik7CiAgICAgICAgICAgICAgICBtZW1iZXJzLkFkZChuZXcgeyBtZW1iZXJJZCA9IG1pZCwgcm9sZSA9IEdldFN0cmluZyhtLCAicm9sZSIpIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB2YXIgcm9vbVR5cGUgPSBHZXRTdHJpbmcoZGF0YSwgInJvb21UeXBlIik7CiAgICAgICAgdmFyIHN0YXJ0RGF0ZVRpbWUgPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICB2YXIgZW5kRGF0ZVRpbWUgPSBHZXRTdHJpbmcoZGF0YSwgImVuZERhdGVUaW1lIik7CgogICAgICAgIHZhciBtZW1iZXJXaXRob3V0QXJyYXkgPSBCdWlsZE1lbWJlcldpdGhvdXRBcnJheShtZW1iZXJzKTsKCiAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICB7CiAgICAgICAgICAgIHVzZXIsCiAgICAgICAgICAgIGFkdmlzb3JUeXBlLAogICAgICAgICAgICBhZHZpc29ySWQsCiAgICAgICAgICAgIGNoYXRJbnRlZ3JhdGlvbiA9IG5ldyB7IHJvb21JZCB9LAogICAgICAgICAgICByb29tVHlwZSwKICAgICAgICAgICAgc3RhcnREYXRlVGltZSwKICAgICAgICAgICAgZW5kRGF0ZVRpbWUsCiAgICAgICAgICAgIG1lbWJlcnMgPSBtZW1iZXJzLAogICAgICAgICAgICBtZW1iZXJXaXRob3V0QXJyYXkgPSBtZW1iZXJXaXRob3V0QXJyYXkKICAgICAgICB9OwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHJlc3VsdCk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gQnVpbGRNZW1iZXJXaXRob3V0QXJyYXkoSUVudW1lcmFibGU8b2JqZWN0PiBtZW1iZXJzKQogICAgewogICAgICAgIHZhciBtYXAgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4oKTsKICAgICAgICBpZiAobWVtYmVycyA9PSBudWxsKSByZXR1cm4gbWFwOwogICAgICAgIGZvcmVhY2ggKGR5bmFtaWMgbSBpbiBtZW1iZXJzKQogICAgICAgIHsKICAgICAgICAgICAgdHJ5CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChtID09IG51bGwpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgdmFyIG1pZCA9IG0ubWVtYmVySWQ/LlRvU3RyaW5nKCkgPz8gbS5hZHZpc29ySWQ/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtaWQpKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIG1hcFttaWRdID0gbS5yb2xlPy5Ub1N0cmluZygpID8/ICIiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoIHsgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbWFwOwogICAgfQp9Cg=="
143
195
  }
144
196
  }
145
197
  ],
@@ -250,6 +302,32 @@
250
302
  "onExecutionTasks": [
251
303
  {
252
304
  "order": 1,
305
+ "task": {
306
+ "domain": "morph-touch",
307
+ "flow": "sys-tasks",
308
+ "key": "start-register-matrix-user",
309
+ "version": "1.0.0"
310
+ },
311
+ "mapping": {
312
+ "location": "./src/RegisterForChatRoomMapping.csx",
313
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBNYXBwaW5nIGZvciBzdGFydC1yZWdpc3Rlci1tYXRyaXgtdXNlciBTdGFydFRhc2sgKFR5cGUgMTEpIGluIGNoYXQtcm9vbSB3b3JrZmxvdy4KLy8vIFN0YXJ0cyByZWdpc3Rlci1tYXRyaXgtdXNlciBmbG93IHdpdGggbWF0cml4VXNlcm5hbWUgPSAidSIgKyBkYXRhLnVzZXIuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBSZWdpc3RlckZvckNoYXRSb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgc3RhcnRUYXNrID0gdGFzayBhcyBTdGFydFRhc2s7CiAgICAgICAgaWYgKHN0YXJ0VGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGEgU3RhcnRUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHVzZXIpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiQ2Fubm90IGRldGVybWluZSByZWdpc3RlciB1c2VyOiBkYXRhLnVzZXIgaXMgbWlzc2luZyIpOwoKICAgICAgICB2YXIgbWF0cml4VXNlcm5hbWUgPSAidSIgKyB1c2VyOwoKICAgICAgICBzdGFydFRhc2suU2V0RG9tYWluKCJtb3JwaC10b3VjaCIpOwogICAgICAgIHN0YXJ0VGFzay5TZXRGbG93KCJyZWdpc3Rlci1tYXRyaXgtdXNlciIpOwogICAgICAgIHN0YXJ0VGFzay5TZXRTeW5jKHRydWUpOwogICAgICAgIHN0YXJ0VGFzay5TZXRCb2R5KG5ldyB7IG1hdHJpeFVzZXJuYW1lIH0pOwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0K"
314
+ }
315
+ },
316
+ {
317
+ "order": 2,
318
+ "task": {
319
+ "domain": "morph-touch",
320
+ "flow": "sys-tasks",
321
+ "key": "login-for-chat",
322
+ "version": "1.0.0"
323
+ },
324
+ "mapping": {
325
+ "location": "./src/LoginForChatRoomMapping.csx",
326
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgbG9naW4tZm9yLWNoYXQgd2hlbiB1c2VkIGluIGNoYXQtcm9vbSB3b3JrZmxvdy4KLy8vIENhbGxzIFBPU1QgL19tYXRyaXgvY2xpZW50L3YzL2xvZ2luIG9uIFN5bmFwc2UuCi8vLyBMb2dzIGluIGFzIGRhdGEudXNlciAodGhlIGN1c3RvbWVyL3Jvb20gb3duZXIpLgovLy8gU3RvcmVzIGFjY2Vzc190b2tlbiBhcyBzZXNzaW9uSWQgaW4gY2hhdEludGVncmF0aW9uIGZvciBzdWJzZXF1ZW50IE1hdHJpeCBBUEkgY2FsbHMuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBMb2dpbkZvckNoYXRSb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBzZWNyZXROYW1lID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZWNyZXROYW1lKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgbWF0cml4QmFzZVVybCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIHN5bmFwc2VQYXNzd29yZCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiU3luYXBzZVBhc3N3b3JkIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc3luYXBzZVBhc3N3b3JkKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlN5bmFwc2VQYXNzd29yZCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIHZhciBsb2dpblVzZXJuYW1lID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VyIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobG9naW5Vc2VybmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJDYW5ub3QgZGV0ZXJtaW5lIGxvZ2luIHVzZXI6IGRhdGEudXNlciBpcyBtaXNzaW5nIik7CgogICAgICAgIHZhciBmdWxsVXJsID0gbWF0cml4QmFzZVVybC5UcmltRW5kKCcvJykgKyAiL19tYXRyaXgvY2xpZW50L3YzL2xvZ2luIjsKICAgICAgICBodHRwVGFzay5TZXRVcmwoZnVsbFVybCk7CgogICAgICAgIGh0dHBUYXNrLlNldEhlYWRlcnMobmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICBbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIkFjY2VwdCJdID0gImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgfSk7CgogICAgICAgIGh0dHBUYXNrLlNldEJvZHkobmV3CiAgICAgICAgewogICAgICAgICAgICB0eXBlID0gIm0ubG9naW4ucGFzc3dvcmQiLAogICAgICAgICAgICBpZGVudGlmaWVyID0gbmV3IHsgdHlwZSA9ICJtLmlkLnVzZXIiLCB1c2VyID0gInUiICsgbG9naW5Vc2VybmFtZSB9LAogICAgICAgICAgICBwYXNzd29yZCA9IHN5bmFwc2VQYXNzd29yZAogICAgICAgIH0pOwogICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgICAgIHZhciByZXNwb25zZSA9IGNvbnRleHQuQm9keTsKICAgICAgICB2YXIgaW5zdGFuY2VEYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgc3RyaW5nIGV4aXN0aW5nUm9vbUlkID0gbnVsbDsKICAgICAgICBpZiAoaW5zdGFuY2VEYXRhICE9IG51bGwgJiYgSGFzUHJvcGVydHkoaW5zdGFuY2VEYXRhLCAiY2hhdEludGVncmF0aW9uIikgJiYgaW5zdGFuY2VEYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICBleGlzdGluZ1Jvb21JZCA9IEdldFN0cmluZyhpbnN0YW5jZURhdGEuY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CgogICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzID09IHRydWUpCiAgICAgICAgewogICAgICAgICAgICBkeW5hbWljIGRhdGEgPSByZXNwb25zZS5kYXRhOwogICAgICAgICAgICBzdHJpbmcgc2Vzc2lvbklkID0gR2V0U3RyaW5nKGRhdGEsICJhY2Nlc3NfdG9rZW4iKTsKICAgICAgICAgICAgc3RyaW5nIHVzZXJJZCA9IEdldFN0cmluZyhkYXRhLCAidXNlcl9pZCIpOwogICAgICAgICAgICBzdHJpbmcgdXNlcm5hbWUgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXJuYW1lIik7CgogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzZXNzaW9uSWQsCiAgICAgICAgICAgICAgICAgICAgdXNlcklkLAogICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lLAogICAgICAgICAgICAgICAgICAgIHJvb21JZCA9IGV4aXN0aW5nUm9vbUlkLAogICAgICAgICAgICAgICAgICAgIGVycm9yID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIGVycm9yQ29kZSA9IChzdHJpbmcpbnVsbAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBzdHJpbmcgZXJyb3JNZXNzYWdlID0gcmVzcG9uc2U/LmVycm9yTWVzc2FnZT8uVG9TdHJpbmcoKSA/PyAiQ2hhdCBsb2dpbiBmYWlsZWQiOwogICAgICAgICAgICBzdHJpbmcgc3RhdHVzQ29kZSA9IHJlc3BvbnNlPy5zdGF0dXNDb2RlICE9IG51bGwgPyByZXNwb25zZS5zdGF0dXNDb2RlLlRvU3RyaW5nKCkgOiBudWxsOwogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzZXNzaW9uSWQgPSAoc3RyaW5nKW51bGwsCiAgICAgICAgICAgICAgICAgICAgdXNlcklkID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIHJvb21JZCA9IGV4aXN0aW5nUm9vbUlkLAogICAgICAgICAgICAgICAgICAgIGVycm9yID0gZXJyb3JNZXNzYWdlLAogICAgICAgICAgICAgICAgICAgIGVycm9yQ29kZSA9IHN0YXR1c0NvZGUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
327
+ }
328
+ },
329
+ {
330
+ "order": 3,
253
331
  "task": {
254
332
  "domain": "morph-touch",
255
333
  "flow": "sys-tasks",
@@ -258,11 +336,11 @@
258
336
  },
259
337
  "mapping": {
260
338
  "location": "./src/SetRoomHistoryVisibilityMapping.csx",
261
- "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3Igc2V0LW1hdHJpeC1yb29tLWhpc3RvcnktdmlzaWJpbGl0eSBIdHRwVGFzayAoVHlwZSA2KSBpbiBjaGF0LXJvb20gdXBkYXRlIHRyYW5zaXRpb24uCi8vLyBSdW5zIGJlZm9yZSBpbnZpdGU6IHNldHMgbS5yb29tLmhpc3RvcnlfdmlzaWJpbGl0eSB3aGVuIHRyYW5zaXRpb24gcHJvdmlkZXMgaGlzdG9yeVZpc2liaWxpdHkuCi8vLyBXaGVuIGFic2VudC9lbXB0eTogbm8tb3AgR0VUIC9fbWF0cml4L2NsaWVudC92My92ZXJzaW9ucyAoaGFybWxlc3MpIHNvIHRoZSBIVFRQIHN0ZXAgc3RpbGwgc3VjY2VlZHMuCi8vLyBYLU1hdHJpeC1Vc2VyID0gcm9vbSBvd25lciAodXNlcikuIE1hdHJpeEJhc2VVcmwgZnJvbSBWYXVsdC4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIFNldFJvb21IaXN0b3J5VmlzaWJpbGl0eU1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBIYXNoU2V0PHN0cmluZz4gQWxsb3dlZCA9IG5ldyBIYXNoU2V0PHN0cmluZz4oU3RyaW5nQ29tcGFyZXIuT3JkaW5hbElnbm9yZUNhc2UpCiAgICB7CiAgICAgICAgInNoYXJlZCIsICJpbnZpdGVkIiwgImpvaW5lZCIsICJ3b3JsZF9yZWFkYWJsZSIKICAgIH07CgogICAgcHVibGljIGFzeW5jIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBodHRwVGFzayA9IHRhc2sgYXMgSHR0cFRhc2s7CiAgICAgICAgaWYgKGh0dHBUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYW4gSHR0cFRhc2siKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIHZhciB1c2VyID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VyIik7CiAgICAgICAgdmFyIGNoYXRJbnRlZ3JhdGlvbiA9IGRhdGE/LmNoYXRJbnRlZ3JhdGlvbjsKICAgICAgICB2YXIgcm9vbUlkID0gR2V0U3RyaW5nKGNoYXRJbnRlZ3JhdGlvbiwgInJvb21JZCIpOwoKICAgICAgICB2YXIgc2VjcmV0TmFtZSA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc2VjcmV0TmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIGNvbmZpZ3VyYXRpb24gaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIG1hdHJpeEJhc2VVcmwgPSBhd2FpdCBHZXRTZWNyZXRBc3luYyhzZWNyZXROYW1lLCAid29ya2Zsb3ctc2VjcmV0IiwgIk1hdHJpeEJhc2VVcmwiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtYXRyaXhCYXNlVXJsKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1hdHJpeEJhc2VVcmwgc2VjcmV0IGlzIHJlcXVpcmVkIik7CiAgICAgICAgdmFyIGJhc2VUcmltID0gbWF0cml4QmFzZVVybC5UcmltRW5kKCcvJyk7CgogICAgICAgIHZhciByYXcgPSBHZXRTdHJpbmcoZGF0YSwgImhpc3RvcnlWaXNpYmlsaXR5Iik7CiAgICAgICAgdmFyIGh2ID0gTm9ybWFsaXplSGlzdG9yeVZpc2liaWxpdHkocmF3KTsKCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uocm9vbUlkKSB8fCBzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHVzZXIpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShodikpCiAgICAgICAgewogICAgICAgICAgICBUcnlTZXRIdHRwTWV0aG9kKGh0dHBUYXNrLCAiR0VUIik7CiAgICAgICAgICAgIGh0dHBUYXNrLlNldFVybChiYXNlVHJpbSArICIvX21hdHJpeC9jbGllbnQvdjMvdmVyc2lvbnMiKTsKICAgICAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgICAgIFsiWC1NYXRyaXgtVXNlciJdID0gdXNlcgogICAgICAgICAgICB9KTsKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgICAgIH0KCiAgICAgICAgVHJ5U2V0SHR0cE1ldGhvZChodHRwVGFzaywgIlBVVCIpOwogICAgICAgIHZhciBmdWxsVXJsID0gYmFzZVRyaW0gKyAiL19tYXRyaXgvY2xpZW50L3YzL3Jvb21zLyIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhyb29tSWQpICsgIi9zdGF0ZS9tLnJvb20uaGlzdG9yeV92aXNpYmlsaXR5LyI7CiAgICAgICAgaHR0cFRhc2suU2V0VXJsKGZ1bGxVcmwpOwogICAgICAgIGh0dHBUYXNrLlNldEhlYWRlcnMobmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICBbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIkFjY2VwdCJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIlgtTWF0cml4LVVzZXIiXSA9IHVzZXIKICAgICAgICB9KTsKICAgICAgICBodHRwVGFzay5TZXRCb2R5KG5ldyB7IGhpc3RvcnlfdmlzaWJpbGl0eSA9IGh2IH0pOwoKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIHN0cmluZyBOb3JtYWxpemVIaXN0b3J5VmlzaWJpbGl0eShzdHJpbmcgcmF3KQogICAgewogICAgICAgIC8vIFVJIGNhbiBvbWl0IGhpc3RvcnlWaXNpYmlsaXR5OyBkZWZhdWx0IHRvIHNoYXJlZCB0byBrZWVwIGZsb3cgc3RlcCBzdWNjZXNzZnVsLgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJhdykpIHJldHVybiAic2hhcmVkIjsKICAgICAgICB2YXIgbG93ZXIgPSByYXcuVHJpbSgpLlRvTG93ZXJJbnZhcmlhbnQoKTsKICAgICAgICBpZiAoIUFsbG93ZWQuQ29udGFpbnMobG93ZXIpKSByZXR1cm4gbnVsbDsKICAgICAgICByZXR1cm4gbG93ZXI7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBUcnlTZXRIdHRwTWV0aG9kKEh0dHBUYXNrIGh0dHBUYXNrLCBzdHJpbmcgbWV0aG9kKQogICAgewogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KG1ldGhvZCkpIHJldHVybjsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGR5bmFtaWMgaHQgPSBodHRwVGFzazsKICAgICAgICAgICAgaHQuU2V0TWV0aG9kKG1ldGhvZCk7CiAgICAgICAgfQogICAgICAgIGNhdGNoCiAgICAgICAgewogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
339
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3Igc2V0LW1hdHJpeC1yb29tLWhpc3RvcnktdmlzaWJpbGl0eSBIdHRwVGFzayAoVHlwZSA2KSBpbiBjaGF0LXJvb20gdXBkYXRlIHRyYW5zaXRpb24uCi8vLyBSdW5zIGJlZm9yZSBpbnZpdGU6IHNldHMgbS5yb29tLmhpc3RvcnlfdmlzaWJpbGl0eSB3aGVuIHRyYW5zaXRpb24gcHJvdmlkZXMgaGlzdG9yeVZpc2liaWxpdHkuCi8vLyBXaGVuIGFic2VudC9lbXB0eTogbm8tb3AgR0VUIC9fbWF0cml4L2NsaWVudC92My92ZXJzaW9ucyAoaGFybWxlc3MpIHNvIHRoZSBIVFRQIHN0ZXAgc3RpbGwgc3VjY2VlZHMuCi8vLyBYLU1hdHJpeC1Vc2VyID0gcm9vbSBvd25lciAodXNlcikuIE1hdHJpeEJhc2VVcmwgZnJvbSBWYXVsdC4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIFNldFJvb21IaXN0b3J5VmlzaWJpbGl0eU1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBIYXNoU2V0PHN0cmluZz4gQWxsb3dlZCA9IG5ldyBIYXNoU2V0PHN0cmluZz4oU3RyaW5nQ29tcGFyZXIuT3JkaW5hbElnbm9yZUNhc2UpCiAgICB7CiAgICAgICAgInNoYXJlZCIsICJpbnZpdGVkIiwgImpvaW5lZCIsICJ3b3JsZF9yZWFkYWJsZSIKICAgIH07CgogICAgcHVibGljIGFzeW5jIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBodHRwVGFzayA9IHRhc2sgYXMgSHR0cFRhc2s7CiAgICAgICAgaWYgKGh0dHBUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYW4gSHR0cFRhc2siKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIHZhciB1c2VyID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VyIik7CiAgICAgICAgdmFyIGNoYXRJbnRlZ3JhdGlvbiA9IGRhdGE/LmNoYXRJbnRlZ3JhdGlvbjsKICAgICAgICB2YXIgcm9vbUlkID0gR2V0U3RyaW5nKGNoYXRJbnRlZ3JhdGlvbiwgInJvb21JZCIpOwoKICAgICAgICB2YXIgc2VjcmV0TmFtZSA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc2VjcmV0TmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIGNvbmZpZ3VyYXRpb24gaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIG1hdHJpeEJhc2VVcmwgPSBhd2FpdCBHZXRTZWNyZXRBc3luYyhzZWNyZXROYW1lLCAid29ya2Zsb3ctc2VjcmV0IiwgIk1hdHJpeEJhc2VVcmwiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtYXRyaXhCYXNlVXJsKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1hdHJpeEJhc2VVcmwgc2VjcmV0IGlzIHJlcXVpcmVkIik7CiAgICAgICAgdmFyIGJhc2VUcmltID0gbWF0cml4QmFzZVVybC5UcmltRW5kKCcvJyk7CgogICAgICAgIHZhciByYXcgPSBHZXRTdHJpbmcoZGF0YSwgImhpc3RvcnlWaXNpYmlsaXR5Iik7CiAgICAgICAgdmFyIGh2ID0gTm9ybWFsaXplSGlzdG9yeVZpc2liaWxpdHkocmF3KTsKCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uocm9vbUlkKSB8fCBzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHVzZXIpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBzZXNzaW9uSWQgPSBHZXRTdHJpbmcoY2hhdEludGVncmF0aW9uLCAic2Vzc2lvbklkIik7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShodikpCiAgICAgICAgewogICAgICAgICAgICBUcnlTZXRIdHRwTWV0aG9kKGh0dHBUYXNrLCAiR0VUIik7CiAgICAgICAgICAgIGh0dHBUYXNrLlNldFVybChiYXNlVHJpbSArICIvX21hdHJpeC9jbGllbnQvdjMvdmVyc2lvbnMiKTsKICAgICAgICAgICAgdmFyIG5vT3BIZWFkZXJzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFsiQWNjZXB0Il0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgICAgICBbIlgtTWF0cml4LVVzZXIiXSA9IHVzZXIKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHNlc3Npb25JZCkpCiAgICAgICAgICAgICAgICBub09wSGVhZGVyc1siQXV0aG9yaXphdGlvbiJdID0gIkJlYXJlciAiICsgc2Vzc2lvbklkOwogICAgICAgICAgICBodHRwVGFzay5TZXRIZWFkZXJzKG5vT3BIZWFkZXJzKTsKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgICAgIH0KCiAgICAgICAgVHJ5U2V0SHR0cE1ldGhvZChodHRwVGFzaywgIlBVVCIpOwogICAgICAgIHZhciBmdWxsVXJsID0gYmFzZVRyaW0gKyAiL19tYXRyaXgvY2xpZW50L3YzL3Jvb21zLyIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhyb29tSWQpICsgIi9zdGF0ZS9tLnJvb20uaGlzdG9yeV92aXNpYmlsaXR5LyI7CiAgICAgICAgaHR0cFRhc2suU2V0VXJsKGZ1bGxVcmwpOwogICAgICAgIHZhciBwdXRIZWFkZXJzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICBbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIkFjY2VwdCJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIlgtTWF0cml4LVVzZXIiXSA9IHVzZXIKICAgICAgICB9OwogICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZXNzaW9uSWQpKQogICAgICAgICAgICBwdXRIZWFkZXJzWyJBdXRob3JpemF0aW9uIl0gPSAiQmVhcmVyICIgKyBzZXNzaW9uSWQ7CiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhwdXRIZWFkZXJzKTsKICAgICAgICBodHRwVGFzay5TZXRCb2R5KG5ldyB7IGhpc3RvcnlfdmlzaWJpbGl0eSA9IGh2IH0pOwoKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIHN0cmluZyBOb3JtYWxpemVIaXN0b3J5VmlzaWJpbGl0eShzdHJpbmcgcmF3KQogICAgewogICAgICAgIC8vIFVJIGNhbiBvbWl0IGhpc3RvcnlWaXNpYmlsaXR5OyBkZWZhdWx0IHRvIHNoYXJlZCB0byBrZWVwIGZsb3cgc3RlcCBzdWNjZXNzZnVsLgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJhdykpIHJldHVybiAic2hhcmVkIjsKICAgICAgICB2YXIgbG93ZXIgPSByYXcuVHJpbSgpLlRvTG93ZXJJbnZhcmlhbnQoKTsKICAgICAgICBpZiAoIUFsbG93ZWQuQ29udGFpbnMobG93ZXIpKSByZXR1cm4gbnVsbDsKICAgICAgICByZXR1cm4gbG93ZXI7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBUcnlTZXRIdHRwTWV0aG9kKEh0dHBUYXNrIGh0dHBUYXNrLCBzdHJpbmcgbWV0aG9kKQogICAgewogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KG1ldGhvZCkpIHJldHVybjsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGR5bmFtaWMgaHQgPSBodHRwVGFzazsKICAgICAgICAgICAgaHQuU2V0TWV0aG9kKG1ldGhvZCk7CiAgICAgICAgfQogICAgICAgIGNhdGNoCiAgICAgICAgewogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
262
340
  }
263
341
  },
264
342
  {
265
- "order": 2,
343
+ "order": 4,
266
344
  "task": {
267
345
  "domain": "morph-touch",
268
346
  "flow": "sys-tasks",
@@ -271,11 +349,37 @@
271
349
  },
272
350
  "mapping": {
273
351
  "location": "./src/ChatRoomUpdateMapping.csx",
274
- "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgaW52aXRlLXVzZXItdG8tcmV6ZXJ2YXRpb24tcm9vbSBIdHRwVGFzayAoVHlwZSA2KSBpbiB0aGUgY2hhdC1yb29tIHVwZGF0ZSB0cmFuc2l0aW9uLgovLy8gSW52aXRlcyBhIG5ldyBtZW1iZXIgdG8gdGhlIHBlcm1hbmVudCByb29tIHZpYSBuYXRpdmUgL19tYXRyaXgvY2xpZW50L3YzL3Jvb21zL3tyb29tSWR9L2ludml0ZS4KLy8vIEFQSVNJWCBjb252ZXJ0cyBYLU1hdHJpeC1Vc2VyIGhlYWRlciB0byBCZWFyZXIgdG9rZW4gYXV0b21hdGljYWxseS4KLy8vIE1hdHJpeEJhc2VVcmwgaXMgcmVhZCBmcm9tIHRoZSBEYXByIHNlY3JldCBzdG9yZSAoREFQUl9TRUNSRVRfU1RPUkVfTkFNRSAvIHdvcmtmbG93LXNlY3JldCkuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBDaGF0Um9vbVVwZGF0ZU1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgYXN5bmMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGh0dHBUYXNrID0gdGFzayBhcyBIdHRwVGFzazsKICAgICAgICBpZiAoaHR0cFRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhbiBIdHRwVGFzayIpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgdmFyIHVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXIiKTsKICAgICAgICB2YXIgY2hhdEludGVncmF0aW9uID0gZGF0YT8uY2hhdEludGVncmF0aW9uOwogICAgICAgIHZhciByb29tSWQgPSBHZXRTdHJpbmcoY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJvb21JZCkpCiAgICAgICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKCiAgICAgICAgdmFyIG5ld01lbWJlcklkID0gR2V0U3RyaW5nKGRhdGEsICJuZXdNZW1iZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG5ld01lbWJlcklkKSkKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwoKICAgICAgICB2YXIgc2VjcmV0TmFtZSA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc2VjcmV0TmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIGNvbmZpZ3VyYXRpb24gaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIG1hdHJpeEJhc2VVcmwgPSBhd2FpdCBHZXRTZWNyZXRBc3luYyhzZWNyZXROYW1lLCAid29ya2Zsb3ctc2VjcmV0IiwgIk1hdHJpeEJhc2VVcmwiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtYXRyaXhCYXNlVXJsKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1hdHJpeEJhc2VVcmwgc2VjcmV0IGlzIHJlcXVpcmVkIik7CiAgICAgICAgdmFyIGZ1bGxVcmwgPSBtYXRyaXhCYXNlVXJsLlRyaW1FbmQoJy8nKSArICIvX21hdHJpeC9jbGllbnQvdjMvcm9vbXMvIiArIFVyaS5Fc2NhcGVEYXRhU3RyaW5nKHJvb21JZCkgKyAiL2ludml0ZSI7CiAgICAgICAgaHR0cFRhc2suU2V0VXJsKGZ1bGxVcmwpOwoKICAgICAgICB2YXIgbWF0cml4VXNlcklkID0gbmV3TWVtYmVySWQuVHJpbSgpLlN0YXJ0c1dpdGgoIkAiKSA/IG5ld01lbWJlcklkLlRyaW0oKSA6ICQiQHtuZXdNZW1iZXJJZC5UcmltKCl9OmxvY2FsaG9zdCI7CgogICAgICAgIHZhciBoZWFkZXJzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICBbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIkFjY2VwdCJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIlgtTWF0cml4LVVzZXIiXSA9IHVzZXIKICAgICAgICB9OwogICAgICAgIGh0dHBUYXNrLlNldEhlYWRlcnMoaGVhZGVycyk7CgogICAgICAgIGh0dHBUYXNrLlNldEJvZHkobmV3IHsgdXNlcl9pZCA9IG1hdHJpeFVzZXJJZCB9KTsKCiAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICB2YXIgYWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29ySWQiKTsKICAgICAgICB2YXIgbmV3TWVtYmVySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld01lbWJlcklkIik7CiAgICAgICAgdmFyIHVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXIiKTsKICAgICAgICB2YXIgYWR2aXNvclR5cGUgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JUeXBlIik7CgogICAgICAgIHN0cmluZyByb29tSWQgPSBudWxsOwogICAgICAgIGlmIChIYXNQcm9wZXJ0eShkYXRhLCAiY2hhdEludGVncmF0aW9uIikgJiYgZGF0YS5jaGF0SW50ZWdyYXRpb24gIT0gbnVsbCkKICAgICAgICAgICAgcm9vbUlkID0gR2V0U3RyaW5nKGRhdGEuY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CgogICAgICAgIHZhciBtZW1iZXJzID0gbmV3IExpc3Q8b2JqZWN0PigpOwogICAgICAgIGlmIChIYXNQcm9wZXJ0eShkYXRhLCAibWVtYmVycyIpICYmIGRhdGEubWVtYmVycyAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgZm9yZWFjaCAodmFyIG0gaW4gZGF0YS5tZW1iZXJzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgbWlkID0gR2V0U3RyaW5nKG0sICJtZW1iZXJJZCIpID8/IEdldFN0cmluZyhtLCAiYWR2aXNvcklkIik7CiAgICAgICAgICAgICAgICBtZW1iZXJzLkFkZChuZXcgeyBtZW1iZXJJZCA9IG1pZCwgcm9sZSA9IEdldFN0cmluZyhtLCAicm9sZSIpIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShuZXdNZW1iZXJJZCkpCiAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbmV3TWVtYmVySWQsIHJvbGUgPSAibWVtYmVyIiB9KTsKCiAgICAgICAgdmFyIG1lbWJlcldpdGhvdXRBcnJheSA9IEJ1aWxkTWVtYmVyV2l0aG91dEFycmF5KG1lbWJlcnMpOwoKICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgIHsKICAgICAgICAgICAgdXNlciwKICAgICAgICAgICAgYWR2aXNvclR5cGUsCiAgICAgICAgICAgIGFkdmlzb3JJZCwKICAgICAgICAgICAgY2hhdEludGVncmF0aW9uID0gbmV3IHsgcm9vbUlkIH0sCiAgICAgICAgICAgIG1lbWJlcnMgPSBtZW1iZXJzLAogICAgICAgICAgICBtZW1iZXJXaXRob3V0QXJyYXkgPSBtZW1iZXJXaXRob3V0QXJyYXksCiAgICAgICAgICAgIHBlbmRpbmdKb2luVXNlcklkID0gbmV3TWVtYmVySWQKICAgICAgICB9OwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHJlc3VsdCk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gQnVpbGRNZW1iZXJXaXRob3V0QXJyYXkoSUVudW1lcmFibGU8b2JqZWN0PiBtZW1iZXJzKQogICAgewogICAgICAgIHZhciBtYXAgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4oKTsKICAgICAgICBpZiAobWVtYmVycyA9PSBudWxsKSByZXR1cm4gbWFwOwogICAgICAgIGZvcmVhY2ggKGR5bmFtaWMgbSBpbiBtZW1iZXJzKQogICAgICAgIHsKICAgICAgICAgICAgdHJ5CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChtID09IG51bGwpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgdmFyIG1pZCA9IG0ubWVtYmVySWQ/LlRvU3RyaW5nKCkgPz8gbS5hZHZpc29ySWQ/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtaWQpKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIG1hcFttaWRdID0gbS5yb2xlPy5Ub1N0cmluZygpID8/ICIiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoIHsgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbWFwOwogICAgfQp9Cg=="
352
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgaW52aXRlLXVzZXItdG8tcmV6ZXJ2YXRpb24tcm9vbSBIdHRwVGFzayAoVHlwZSA2KSBpbiB0aGUgY2hhdC1yb29tIHVwZGF0ZSB0cmFuc2l0aW9uLgovLy8gSW52aXRlcyBhIG5ldyBtZW1iZXIgdG8gdGhlIHBlcm1hbmVudCByb29tIHZpYSBuYXRpdmUgL19tYXRyaXgvY2xpZW50L3YzL3Jvb21zL3tyb29tSWR9L2ludml0ZS4KLy8vIEFQSVNJWCBjb252ZXJ0cyBYLU1hdHJpeC1Vc2VyIGhlYWRlciB0byBCZWFyZXIgdG9rZW4gYXV0b21hdGljYWxseS4KLy8vIE1hdHJpeEJhc2VVcmwgaXMgcmVhZCBmcm9tIHRoZSBEYXByIHNlY3JldCBzdG9yZSAoREFQUl9TRUNSRVRfU1RPUkVfTkFNRSAvIHdvcmtmbG93LXNlY3JldCkuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBDaGF0Um9vbVVwZGF0ZU1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgYXN5bmMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGh0dHBUYXNrID0gdGFzayBhcyBIdHRwVGFzazsKICAgICAgICBpZiAoaHR0cFRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhbiBIdHRwVGFzayIpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgdmFyIHVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXIiKTsKICAgICAgICB2YXIgY2hhdEludGVncmF0aW9uID0gZGF0YT8uY2hhdEludGVncmF0aW9uOwogICAgICAgIHZhciByb29tSWQgPSBHZXRTdHJpbmcoY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJvb21JZCkpCiAgICAgICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKCiAgICAgICAgdmFyIG5ld01lbWJlcklkID0gR2V0U3RyaW5nKGRhdGEsICJuZXdNZW1iZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG5ld01lbWJlcklkKSkKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwoKICAgICAgICB2YXIgc2VjcmV0TmFtZSA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc2VjcmV0TmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIGNvbmZpZ3VyYXRpb24gaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIG1hdHJpeEJhc2VVcmwgPSBhd2FpdCBHZXRTZWNyZXRBc3luYyhzZWNyZXROYW1lLCAid29ya2Zsb3ctc2VjcmV0IiwgIk1hdHJpeEJhc2VVcmwiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtYXRyaXhCYXNlVXJsKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1hdHJpeEJhc2VVcmwgc2VjcmV0IGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBTeW5hcHNlU2VydmVyID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoc2VjcmV0TmFtZSwgIndvcmtmbG93LXNlY3JldCIsICJTeW5hcHNlU2VydmVyIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoU3luYXBzZVNlcnZlcikpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJTeW5hcHNlU2VydmVyIHNlY3JldCBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9yb29tcy8iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcocm9vbUlkKSArICIvaW52aXRlIjsKICAgICAgICBodHRwVGFzay5TZXRVcmwoZnVsbFVybCk7CgogICAgICAgIHZhciBtYXRyaXhVc2VySWQgPSBuZXdNZW1iZXJJZC5UcmltKCkuU3RhcnRzV2l0aCgiQCIpID8gbmV3TWVtYmVySWQuVHJpbSgpIDogJCJAe25ld01lbWJlcklkLlRyaW0oKX06e1N5bmFwc2VTZXJ2ZXJ9IjsKCiAgICAgICAgdmFyIHNlc3Npb25JZCA9IEdldFN0cmluZyhjaGF0SW50ZWdyYXRpb24sICJzZXNzaW9uSWQiKTsKCiAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4KICAgICAgICB7CiAgICAgICAgICAgIFsiQ29udGVudC1UeXBlIl0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiQWNjZXB0Il0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiWC1NYXRyaXgtVXNlciJdID0gdXNlcgogICAgICAgIH07CiAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHNlc3Npb25JZCkpCiAgICAgICAgICAgIGhlYWRlcnNbIkF1dGhvcml6YXRpb24iXSA9ICJCZWFyZXIgIiArIHNlc3Npb25JZDsKICAgICAgICBodHRwVGFzay5TZXRIZWFkZXJzKGhlYWRlcnMpOwoKICAgICAgICBodHRwVGFzay5TZXRCb2R5KG5ldyB7IHVzZXJfaWQgPSBtYXRyaXhVc2VySWQgfSk7CgogICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgdmFyIGFkdmlzb3JJZCA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvcklkIik7CiAgICAgICAgdmFyIG5ld01lbWJlcklkID0gR2V0U3RyaW5nKGRhdGEsICJuZXdNZW1iZXJJZCIpOwogICAgICAgIHZhciB1c2VyID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VyIik7CiAgICAgICAgdmFyIGFkdmlzb3JUeXBlID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29yVHlwZSIpOwoKICAgICAgICBzdHJpbmcgcm9vbUlkID0gbnVsbDsKICAgICAgICBpZiAoSGFzUHJvcGVydHkoZGF0YSwgImNoYXRJbnRlZ3JhdGlvbiIpICYmIGRhdGEuY2hhdEludGVncmF0aW9uICE9IG51bGwpCiAgICAgICAgICAgIHJvb21JZCA9IEdldFN0cmluZyhkYXRhLmNoYXRJbnRlZ3JhdGlvbiwgInJvb21JZCIpOwoKICAgICAgICB2YXIgbWVtYmVycyA9IG5ldyBMaXN0PG9iamVjdD4oKTsKICAgICAgICBpZiAoSGFzUHJvcGVydHkoZGF0YSwgIm1lbWJlcnMiKSAmJiBkYXRhLm1lbWJlcnMgIT0gbnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIGZvcmVhY2ggKHZhciBtIGluIGRhdGEubWVtYmVycykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIG1pZCA9IEdldFN0cmluZyhtLCAibWVtYmVySWQiKSA/PyBHZXRTdHJpbmcobSwgImFkdmlzb3JJZCIpOwogICAgICAgICAgICAgICAgbWVtYmVycy5BZGQobmV3IHsgbWVtYmVySWQgPSBtaWQsIHJvbGUgPSBHZXRTdHJpbmcobSwgInJvbGUiKSB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobmV3TWVtYmVySWQpKQogICAgICAgICAgICBtZW1iZXJzLkFkZChuZXcgeyBtZW1iZXJJZCA9IG5ld01lbWJlcklkLCByb2xlID0gIm1lbWJlciIgfSk7CgogICAgICAgIHZhciBtZW1iZXJXaXRob3V0QXJyYXkgPSBCdWlsZE1lbWJlcldpdGhvdXRBcnJheShtZW1iZXJzKTsKCiAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICB7CiAgICAgICAgICAgIHVzZXIsCiAgICAgICAgICAgIGFkdmlzb3JUeXBlLAogICAgICAgICAgICBhZHZpc29ySWQsCiAgICAgICAgICAgIGNoYXRJbnRlZ3JhdGlvbiA9IG5ldyB7IHJvb21JZCB9LAogICAgICAgICAgICBtZW1iZXJzID0gbWVtYmVycywKICAgICAgICAgICAgbWVtYmVyV2l0aG91dEFycmF5ID0gbWVtYmVyV2l0aG91dEFycmF5LAogICAgICAgICAgICBwZW5kaW5nSm9pblVzZXJJZCA9IG5ld01lbWJlcklkCiAgICAgICAgfTsKCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChyZXN1bHQpOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IEJ1aWxkTWVtYmVyV2l0aG91dEFycmF5KElFbnVtZXJhYmxlPG9iamVjdD4gbWVtYmVycykKICAgIHsKICAgICAgICB2YXIgbWFwID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+KCk7CiAgICAgICAgaWYgKG1lbWJlcnMgPT0gbnVsbCkgcmV0dXJuIG1hcDsKICAgICAgICBmb3JlYWNoIChkeW5hbWljIG0gaW4gbWVtYmVycykKICAgICAgICB7CiAgICAgICAgICAgIHRyeQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAobSA9PSBudWxsKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIHZhciBtaWQgPSBtLm1lbWJlcklkPy5Ub1N0cmluZygpID8/IG0uYWR2aXNvcklkPy5Ub1N0cmluZygpOwogICAgICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobWlkKSkgY29udGludWU7CiAgICAgICAgICAgICAgICBtYXBbbWlkXSA9IG0ucm9sZT8uVG9TdHJpbmcoKSA/PyAiIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCB7IH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1hcDsKICAgIH0KfQo="
275
353
  }
276
354
  },
277
355
  {
278
- "order": 3,
356
+ "order": 5,
357
+ "task": {
358
+ "domain": "morph-touch",
359
+ "flow": "sys-tasks",
360
+ "key": "start-register-matrix-user",
361
+ "version": "1.0.0"
362
+ },
363
+ "mapping": {
364
+ "location": "./src/RegisterForJoinUserToRoomMapping.csx",
365
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBNYXBwaW5nIGZvciBzdGFydC1yZWdpc3Rlci1tYXRyaXgtdXNlciBTdGFydFRhc2sgKFR5cGUgMTEpIGJlZm9yZSBqb2luLXVzZXItdG8tcm9vbS4KLy8vIFN0YXJ0cyByZWdpc3Rlci1tYXRyaXgtdXNlciBmbG93IHdpdGggbWF0cml4VXNlcm5hbWUgZnJvbSBwZW5kaW5nSm9pblVzZXJJZCAvIG5ld0Fkdmlzb3JJZCAvIGFkdmlzb3JJZC4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIFJlZ2lzdGVyRm9ySm9pblVzZXJUb1Jvb21NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBzdGFydFRhc2sgPSB0YXNrIGFzIFN0YXJ0VGFzazsKICAgICAgICBpZiAoc3RhcnRUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBTdGFydFRhc2siKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICB2YXIgam9pblVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInBlbmRpbmdKb2luVXNlcklkIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoam9pblVzZXIpKQogICAgICAgICAgICBqb2luVXNlciA9IEdldFN0cmluZyhkYXRhLCAibmV3QWR2aXNvcklkIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoam9pblVzZXIpKQogICAgICAgICAgICBqb2luVXNlciA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvcklkIik7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKGpvaW5Vc2VyKSkKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CgogICAgICAgIHZhciBtYXRyaXhVc2VybmFtZSA9IGpvaW5Vc2VyLlRyaW0oKTsKICAgICAgICBpZiAobWF0cml4VXNlcm5hbWUuU3RhcnRzV2l0aCgiQCIpKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGNvbG9uSWR4ID0gbWF0cml4VXNlcm5hbWUuSW5kZXhPZignOicpOwogICAgICAgICAgICBtYXRyaXhVc2VybmFtZSA9IGNvbG9uSWR4ID4gMCA/IG1hdHJpeFVzZXJuYW1lLlN1YnN0cmluZygxLCBjb2xvbklkeCAtIDEpIDogbWF0cml4VXNlcm5hbWUuU3Vic3RyaW5nKDEpOwogICAgICAgIH0KCiAgICAgICAgc3RhcnRUYXNrLlNldERvbWFpbigibW9ycGgtdG91Y2giKTsKICAgICAgICBzdGFydFRhc2suU2V0RmxvdygicmVnaXN0ZXItbWF0cml4LXVzZXIiKTsKICAgICAgICBzdGFydFRhc2suU2V0U3luYyh0cnVlKTsKICAgICAgICBzdGFydFRhc2suU2V0Qm9keShuZXcgeyBtYXRyaXhVc2VybmFtZSB9KTsKCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cg=="
366
+ }
367
+ },
368
+ {
369
+ "order": 6,
370
+ "task": {
371
+ "domain": "morph-touch",
372
+ "flow": "sys-tasks",
373
+ "key": "login-for-chat",
374
+ "version": "1.0.0"
375
+ },
376
+ "mapping": {
377
+ "location": "./src/LoginForJoinUserToRoomMapping.csx",
378
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgbG9naW4tZm9yLWNoYXQgd2hlbiB0aGUgbmV4dCBzdGVwIGlzIGpvaW4tdXNlci10by1yb29tLgovLy8gTG9ncyBpbiBhcyB0aGUgdXNlciB3aG8gd2lsbCBqb2luIHRoZSByb29tIChwZW5kaW5nSm9pblVzZXJJZCAvIG5ld0Fkdmlzb3JJZCAvIGFkdmlzb3JJZCkuCi8vLyBTdG9yZXMgYWNjZXNzX3Rva2VuIGluIGNoYXRJbnRlZ3JhdGlvbi5qb2luU2Vzc2lvbklkIHNvIEpvaW5Vc2VyVG9Sb29tTWFwcGluZwovLy8gdXNlcyB0aGUgY29ycmVjdCB0b2tlbiB3aXRob3V0IG92ZXJ3cml0aW5nIHRoZSByb29tLW93bmVyJ3Mgc2Vzc2lvbklkLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgTG9naW5Gb3JKb2luVXNlclRvUm9vbU1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgYXN5bmMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGh0dHBUYXNrID0gdGFzayBhcyBIdHRwVGFzazsKICAgICAgICBpZiAoaHR0cFRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhbiBIdHRwVGFzayIpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgIHZhciBqb2luVXNlciA9IEdldFN0cmluZyhkYXRhLCAicGVuZGluZ0pvaW5Vc2VySWQiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShqb2luVXNlcikpCiAgICAgICAgICAgIGpvaW5Vc2VyID0gR2V0U3RyaW5nKGRhdGEsICJuZXdBZHZpc29ySWQiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShqb2luVXNlcikpCiAgICAgICAgICAgIGpvaW5Vc2VyID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29ySWQiKTsKCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoam9pblVzZXIpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBsb2dpblVzZXJuYW1lID0gam9pblVzZXIuVHJpbSgpOwogICAgICAgIGlmIChsb2dpblVzZXJuYW1lLlN0YXJ0c1dpdGgoIkAiKSkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBjb2xvbklkeCA9IGxvZ2luVXNlcm5hbWUuSW5kZXhPZignOicpOwogICAgICAgICAgICBsb2dpblVzZXJuYW1lID0gY29sb25JZHggPiAwID8gbG9naW5Vc2VybmFtZS5TdWJzdHJpbmcoMSwgY29sb25JZHggLSAxKSA6IGxvZ2luVXNlcm5hbWUuU3Vic3RyaW5nKDEpOwogICAgICAgIH0KCiAgICAgICAgdmFyIHNlY3JldE5hbWUgPSBHZXRDb25maWdWYWx1ZSgiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHNlY3JldE5hbWUpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSBjb25maWd1cmF0aW9uIGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBtYXRyaXhCYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoc2VjcmV0TmFtZSwgIndvcmtmbG93LXNlY3JldCIsICJNYXRyaXhCYXNlVXJsIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobWF0cml4QmFzZVVybCkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJNYXRyaXhCYXNlVXJsIHNlY3JldCBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgc3luYXBzZVBhc3N3b3JkID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoc2VjcmV0TmFtZSwgIndvcmtmbG93LXNlY3JldCIsICJTeW5hcHNlUGFzc3dvcmQiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzeW5hcHNlUGFzc3dvcmQpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiU3luYXBzZVBhc3N3b3JkIHNlY3JldCBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9sb2dpbiI7CiAgICAgICAgaHR0cFRhc2suU2V0VXJsKGZ1bGxVcmwpOwoKICAgICAgICBodHRwVGFzay5TZXRIZWFkZXJzKG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIH0pOwoKICAgICAgICBodHRwVGFzay5TZXRCb2R5KG5ldwogICAgICAgIHsKICAgICAgICAgICAgdHlwZSA9ICJtLmxvZ2luLnBhc3N3b3JkIiwKICAgICAgICAgICAgaWRlbnRpZmllciA9IG5ldyB7IHR5cGUgPSAibS5pZC51c2VyIiwgdXNlciA9IGxvZ2luVXNlcm5hbWUgfSwKICAgICAgICAgICAgcGFzc3dvcmQgPSBzeW5hcHNlUGFzc3dvcmQKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciByZXN1bHQgPSBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgICAgICB2YXIgcmVzcG9uc2UgPSBjb250ZXh0LkJvZHk7CiAgICAgICAgdmFyIGluc3RhbmNlRGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgIHN0cmluZyBleGlzdGluZ1Nlc3Npb25JZCA9IG51bGw7CiAgICAgICAgc3RyaW5nIGV4aXN0aW5nVXNlcklkID0gbnVsbDsKICAgICAgICBzdHJpbmcgZXhpc3RpbmdVc2VybmFtZSA9IG51bGw7CiAgICAgICAgc3RyaW5nIGV4aXN0aW5nUm9vbUlkID0gbnVsbDsKICAgICAgICBpZiAoaW5zdGFuY2VEYXRhICE9IG51bGwgJiYgSGFzUHJvcGVydHkoaW5zdGFuY2VEYXRhLCAiY2hhdEludGVncmF0aW9uIikgJiYgaW5zdGFuY2VEYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgZXhpc3RpbmdTZXNzaW9uSWQgPSBHZXRTdHJpbmcoaW5zdGFuY2VEYXRhLmNoYXRJbnRlZ3JhdGlvbiwgInNlc3Npb25JZCIpOwogICAgICAgICAgICBleGlzdGluZ1VzZXJJZCA9IEdldFN0cmluZyhpbnN0YW5jZURhdGEuY2hhdEludGVncmF0aW9uLCAidXNlcklkIik7CiAgICAgICAgICAgIGV4aXN0aW5nVXNlcm5hbWUgPSBHZXRTdHJpbmcoaW5zdGFuY2VEYXRhLmNoYXRJbnRlZ3JhdGlvbiwgInVzZXJuYW1lIik7CiAgICAgICAgICAgIGV4aXN0aW5nUm9vbUlkID0gR2V0U3RyaW5nKGluc3RhbmNlRGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKICAgICAgICB9CgogICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzID09IHRydWUpCiAgICAgICAgewogICAgICAgICAgICBkeW5hbWljIGRhdGEgPSByZXNwb25zZS5kYXRhOwogICAgICAgICAgICBzdHJpbmcgam9pblNlc3Npb25JZCA9IEdldFN0cmluZyhkYXRhLCAiYWNjZXNzX3Rva2VuIik7CgogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzZXNzaW9uSWQgPSBleGlzdGluZ1Nlc3Npb25JZCwKICAgICAgICAgICAgICAgICAgICB1c2VySWQgPSBleGlzdGluZ1VzZXJJZCwKICAgICAgICAgICAgICAgICAgICB1c2VybmFtZSA9IGV4aXN0aW5nVXNlcm5hbWUsCiAgICAgICAgICAgICAgICAgICAgcm9vbUlkID0gZXhpc3RpbmdSb29tSWQsCiAgICAgICAgICAgICAgICAgICAgam9pblNlc3Npb25JZCwKICAgICAgICAgICAgICAgICAgICBlcnJvciA9IChzdHJpbmcpbnVsbCwKICAgICAgICAgICAgICAgICAgICBlcnJvckNvZGUgPSAoc3RyaW5nKW51bGwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgc3RyaW5nIGVycm9yTWVzc2FnZSA9IHJlc3BvbnNlPy5lcnJvck1lc3NhZ2U/LlRvU3RyaW5nKCkgPz8gIkpvaW4gdXNlciBsb2dpbiBmYWlsZWQiOwogICAgICAgICAgICBzdHJpbmcgc3RhdHVzQ29kZSA9IHJlc3BvbnNlPy5zdGF0dXNDb2RlICE9IG51bGwgPyByZXNwb25zZS5zdGF0dXNDb2RlLlRvU3RyaW5nKCkgOiBudWxsOwogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzZXNzaW9uSWQgPSBleGlzdGluZ1Nlc3Npb25JZCwKICAgICAgICAgICAgICAgICAgICB1c2VySWQgPSBleGlzdGluZ1VzZXJJZCwKICAgICAgICAgICAgICAgICAgICB1c2VybmFtZSA9IGV4aXN0aW5nVXNlcm5hbWUsCiAgICAgICAgICAgICAgICAgICAgcm9vbUlkID0gZXhpc3RpbmdSb29tSWQsCiAgICAgICAgICAgICAgICAgICAgam9pblNlc3Npb25JZCA9IChzdHJpbmcpbnVsbCwKICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGVycm9yTWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICBlcnJvckNvZGUgPSBzdGF0dXNDb2RlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHJlc3VsdCk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0K"
379
+ }
380
+ },
381
+ {
382
+ "order": 7,
279
383
  "task": {
280
384
  "domain": "morph-touch",
281
385
  "flow": "sys-tasks",
@@ -284,7 +388,7 @@
284
388
  },
285
389
  "mapping": {
286
390
  "location": "./src/JoinUserToRoomMapping.csx",
287
- "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gR2VuZXJpYyBtYXBwaW5nIGZvciBqb2luLXVzZXItdG8tcm9vbSBIdHRwVGFzayAoVHlwZSA2KS4KLy8vIEF1dG8tam9pbnMgdGhlIHVzZXIgc3BlY2lmaWVkIGluIGluc3RhbmNlRGF0YS5wZW5kaW5nSm9pblVzZXJJZCB0byB0aGUgcm9vbS4KLy8vIFgtTWF0cml4LVVzZXIgaXMgc2V0IHRvIHRoZSBqb2luaW5nIHVzZXIgc28gQVBJU0lYIGF1dGhlbnRpY2F0ZXMgYXMgdGhhdCB1c2VyLgovLy8gVXNlZCBhZnRlciBpbnZpdGUgaW46IHJvb20gY3JlYXRpb24gKG9uRW50cnkpLCB1cGRhdGUgKGFkZCBtZW1iZXIpLCB0cmFuc2ZlciB0cmFuc2l0aW9ucy4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIEpvaW5Vc2VyVG9Sb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIHBlbmRpbmdKb2luVXNlcklkID0gR2V0U3RyaW5nKGRhdGEsICJwZW5kaW5nSm9pblVzZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld0Fkdmlzb3JJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyb29tSWQpIHx8IHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UocGVuZGluZ0pvaW5Vc2VySWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBzZWNyZXROYW1lID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZWNyZXROYW1lKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgbWF0cml4QmFzZVVybCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9qb2luLyIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhyb29tSWQpOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIHhNYXRyaXhVc2VyID0gcGVuZGluZ0pvaW5Vc2VySWQuVHJpbSgpOwogICAgICAgIGlmICh4TWF0cml4VXNlci5TdGFydHNXaXRoKCJAIikpCiAgICAgICAgewogICAgICAgICAgICB2YXIgY29sb25JZHggPSB4TWF0cml4VXNlci5JbmRleE9mKCc6Jyk7CiAgICAgICAgICAgIHhNYXRyaXhVc2VyID0gY29sb25JZHggPiAwID8geE1hdHJpeFVzZXIuU3Vic3RyaW5nKDEsIGNvbG9uSWR4IC0gMSkgOiB4TWF0cml4VXNlci5TdWJzdHJpbmcoMSk7CiAgICAgICAgfQoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB4TWF0cml4VXNlcgogICAgICAgIH07CiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhoZWFkZXJzKTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShuZXcgeyB9KTsKCiAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBhZHZpc29yVHlwZSA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvclR5cGUiKTsKICAgICAgICB2YXIgYWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29ySWQiKTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIG1lbWJlcnMgPSBuZXcgTGlzdDxvYmplY3Q+KCk7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJtZW1iZXJzIikgJiYgZGF0YS5tZW1iZXJzICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBmb3JlYWNoICh2YXIgbSBpbiBkYXRhLm1lbWJlcnMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBtaWQgPSBHZXRTdHJpbmcobSwgIm1lbWJlcklkIikgPz8gR2V0U3RyaW5nKG0sICJhZHZpc29ySWQiKTsKICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbWlkLCByb2xlID0gR2V0U3RyaW5nKG0sICJyb2xlIikgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciByb29tVHlwZSA9IEdldFN0cmluZyhkYXRhLCAicm9vbVR5cGUiKTsKICAgICAgICB2YXIgc3RhcnREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgIHZhciBlbmREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAiZW5kRGF0ZVRpbWUiKTsKCiAgICAgICAgdmFyIG1lbWJlcldpdGhvdXRBcnJheSA9IEJ1aWxkTWVtYmVyV2l0aG91dEFycmF5KG1lbWJlcnMpOwoKICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgIHsKICAgICAgICAgICAgdXNlciwKICAgICAgICAgICAgYWR2aXNvclR5cGUsCiAgICAgICAgICAgIGFkdmlzb3JJZCwKICAgICAgICAgICAgY2hhdEludGVncmF0aW9uID0gbmV3IHsgcm9vbUlkIH0sCiAgICAgICAgICAgIHJvb21UeXBlLAogICAgICAgICAgICBzdGFydERhdGVUaW1lLAogICAgICAgICAgICBlbmREYXRlVGltZSwKICAgICAgICAgICAgbWVtYmVycyA9IG1lbWJlcnMsCiAgICAgICAgICAgIG1lbWJlcldpdGhvdXRBcnJheSA9IG1lbWJlcldpdGhvdXRBcnJheQogICAgICAgIH07CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBCdWlsZE1lbWJlcldpdGhvdXRBcnJheShJRW51bWVyYWJsZTxvYmplY3Q+IG1lbWJlcnMpCiAgICB7CiAgICAgICAgdmFyIG1hcCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPigpOwogICAgICAgIGlmIChtZW1iZXJzID09IG51bGwpIHJldHVybiBtYXA7CiAgICAgICAgZm9yZWFjaCAoZHluYW1pYyBtIGluIG1lbWJlcnMpCiAgICAgICAgewogICAgICAgICAgICB0cnkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICAgICAgICB2YXIgbWlkID0gbS5tZW1iZXJJZD8uVG9TdHJpbmcoKSA/PyBtLmFkdmlzb3JJZD8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1pZCkpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgbWFwW21pZF0gPSBtLnJvbGU/LlRvU3RyaW5nKCkgPz8gIiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXA7CiAgICB9Cn0K"
391
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gR2VuZXJpYyBtYXBwaW5nIGZvciBqb2luLXVzZXItdG8tcm9vbSBIdHRwVGFzayAoVHlwZSA2KS4KLy8vIEF1dG8tam9pbnMgdGhlIHVzZXIgc3BlY2lmaWVkIGluIGluc3RhbmNlRGF0YS5wZW5kaW5nSm9pblVzZXJJZCB0byB0aGUgcm9vbS4KLy8vIFgtTWF0cml4LVVzZXIgaXMgc2V0IHRvIHRoZSBqb2luaW5nIHVzZXIgc28gQVBJU0lYIGF1dGhlbnRpY2F0ZXMgYXMgdGhhdCB1c2VyLgovLy8gVXNlZCBhZnRlciBpbnZpdGUgaW46IHJvb20gY3JlYXRpb24gKG9uRW50cnkpLCB1cGRhdGUgKGFkZCBtZW1iZXIpLCB0cmFuc2ZlciB0cmFuc2l0aW9ucy4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIEpvaW5Vc2VyVG9Sb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIHBlbmRpbmdKb2luVXNlcklkID0gR2V0U3RyaW5nKGRhdGEsICJwZW5kaW5nSm9pblVzZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld0Fkdmlzb3JJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyb29tSWQpIHx8IHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UocGVuZGluZ0pvaW5Vc2VySWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBzZWNyZXROYW1lID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZWNyZXROYW1lKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgbWF0cml4QmFzZVVybCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9qb2luLyIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhyb29tSWQpOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIHhNYXRyaXhVc2VyID0gcGVuZGluZ0pvaW5Vc2VySWQuVHJpbSgpOwogICAgICAgIGlmICh4TWF0cml4VXNlci5TdGFydHNXaXRoKCJAIikpCiAgICAgICAgewogICAgICAgICAgICB2YXIgY29sb25JZHggPSB4TWF0cml4VXNlci5JbmRleE9mKCc6Jyk7CiAgICAgICAgICAgIHhNYXRyaXhVc2VyID0gY29sb25JZHggPiAwID8geE1hdHJpeFVzZXIuU3Vic3RyaW5nKDEsIGNvbG9uSWR4IC0gMSkgOiB4TWF0cml4VXNlci5TdWJzdHJpbmcoMSk7CiAgICAgICAgfQoKICAgICAgICBzdHJpbmcgam9pblNlc3Npb25JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICBqb2luU2Vzc2lvbklkID0gR2V0U3RyaW5nKGRhdGEuY2hhdEludGVncmF0aW9uLCAiam9pblNlc3Npb25JZCIpOwoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB4TWF0cml4VXNlcgogICAgICAgIH07CiAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKGpvaW5TZXNzaW9uSWQpKQogICAgICAgICAgICBoZWFkZXJzWyJBdXRob3JpemF0aW9uIl0gPSAiQmVhcmVyICIgKyBqb2luU2Vzc2lvbklkOwogICAgICAgIGh0dHBUYXNrLlNldEhlYWRlcnMoaGVhZGVycyk7CgogICAgICAgIGh0dHBUYXNrLlNldEJvZHkobmV3IHsgfSk7CgogICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgdmFyIHVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXIiKTsKICAgICAgICB2YXIgYWR2aXNvclR5cGUgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JUeXBlIik7CiAgICAgICAgdmFyIGFkdmlzb3JJZCA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvcklkIik7CgogICAgICAgIHN0cmluZyByb29tSWQgPSBudWxsOwogICAgICAgIGlmIChIYXNQcm9wZXJ0eShkYXRhLCAiY2hhdEludGVncmF0aW9uIikgJiYgZGF0YS5jaGF0SW50ZWdyYXRpb24gIT0gbnVsbCkKICAgICAgICAgICAgcm9vbUlkID0gR2V0U3RyaW5nKGRhdGEuY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CgogICAgICAgIHZhciBtZW1iZXJzID0gbmV3IExpc3Q8b2JqZWN0PigpOwogICAgICAgIGlmIChIYXNQcm9wZXJ0eShkYXRhLCAibWVtYmVycyIpICYmIGRhdGEubWVtYmVycyAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgZm9yZWFjaCAodmFyIG0gaW4gZGF0YS5tZW1iZXJzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgbWlkID0gR2V0U3RyaW5nKG0sICJtZW1iZXJJZCIpID8/IEdldFN0cmluZyhtLCAiYWR2aXNvcklkIik7CiAgICAgICAgICAgICAgICBtZW1iZXJzLkFkZChuZXcgeyBtZW1iZXJJZCA9IG1pZCwgcm9sZSA9IEdldFN0cmluZyhtLCAicm9sZSIpIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB2YXIgcm9vbVR5cGUgPSBHZXRTdHJpbmcoZGF0YSwgInJvb21UeXBlIik7CiAgICAgICAgdmFyIHN0YXJ0RGF0ZVRpbWUgPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICB2YXIgZW5kRGF0ZVRpbWUgPSBHZXRTdHJpbmcoZGF0YSwgImVuZERhdGVUaW1lIik7CgogICAgICAgIHZhciBtZW1iZXJXaXRob3V0QXJyYXkgPSBCdWlsZE1lbWJlcldpdGhvdXRBcnJheShtZW1iZXJzKTsKCiAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICB7CiAgICAgICAgICAgIHVzZXIsCiAgICAgICAgICAgIGFkdmlzb3JUeXBlLAogICAgICAgICAgICBhZHZpc29ySWQsCiAgICAgICAgICAgIGNoYXRJbnRlZ3JhdGlvbiA9IG5ldyB7IHJvb21JZCB9LAogICAgICAgICAgICByb29tVHlwZSwKICAgICAgICAgICAgc3RhcnREYXRlVGltZSwKICAgICAgICAgICAgZW5kRGF0ZVRpbWUsCiAgICAgICAgICAgIG1lbWJlcnMgPSBtZW1iZXJzLAogICAgICAgICAgICBtZW1iZXJXaXRob3V0QXJyYXkgPSBtZW1iZXJXaXRob3V0QXJyYXkKICAgICAgICB9OwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHJlc3VsdCk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gQnVpbGRNZW1iZXJXaXRob3V0QXJyYXkoSUVudW1lcmFibGU8b2JqZWN0PiBtZW1iZXJzKQogICAgewogICAgICAgIHZhciBtYXAgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4oKTsKICAgICAgICBpZiAobWVtYmVycyA9PSBudWxsKSByZXR1cm4gbWFwOwogICAgICAgIGZvcmVhY2ggKGR5bmFtaWMgbSBpbiBtZW1iZXJzKQogICAgICAgIHsKICAgICAgICAgICAgdHJ5CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChtID09IG51bGwpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgdmFyIG1pZCA9IG0ubWVtYmVySWQ/LlRvU3RyaW5nKCkgPz8gbS5hZHZpc29ySWQ/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtaWQpKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIG1hcFttaWRdID0gbS5yb2xlPy5Ub1N0cmluZygpID8/ICIiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoIHsgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbWFwOwogICAgfQp9Cg=="
288
392
  }
289
393
  }
290
394
  ]
@@ -307,6 +411,32 @@
307
411
  "onExecutionTasks": [
308
412
  {
309
413
  "order": 1,
414
+ "task": {
415
+ "domain": "morph-touch",
416
+ "flow": "sys-tasks",
417
+ "key": "start-register-matrix-user",
418
+ "version": "1.0.0"
419
+ },
420
+ "mapping": {
421
+ "location": "./src/RegisterForChatRoomMapping.csx",
422
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBNYXBwaW5nIGZvciBzdGFydC1yZWdpc3Rlci1tYXRyaXgtdXNlciBTdGFydFRhc2sgKFR5cGUgMTEpIGluIGNoYXQtcm9vbSB3b3JrZmxvdy4KLy8vIFN0YXJ0cyByZWdpc3Rlci1tYXRyaXgtdXNlciBmbG93IHdpdGggbWF0cml4VXNlcm5hbWUgPSAidSIgKyBkYXRhLnVzZXIuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBSZWdpc3RlckZvckNoYXRSb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgc3RhcnRUYXNrID0gdGFzayBhcyBTdGFydFRhc2s7CiAgICAgICAgaWYgKHN0YXJ0VGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGEgU3RhcnRUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHVzZXIpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiQ2Fubm90IGRldGVybWluZSByZWdpc3RlciB1c2VyOiBkYXRhLnVzZXIgaXMgbWlzc2luZyIpOwoKICAgICAgICB2YXIgbWF0cml4VXNlcm5hbWUgPSAidSIgKyB1c2VyOwoKICAgICAgICBzdGFydFRhc2suU2V0RG9tYWluKCJtb3JwaC10b3VjaCIpOwogICAgICAgIHN0YXJ0VGFzay5TZXRGbG93KCJyZWdpc3Rlci1tYXRyaXgtdXNlciIpOwogICAgICAgIHN0YXJ0VGFzay5TZXRTeW5jKHRydWUpOwogICAgICAgIHN0YXJ0VGFzay5TZXRCb2R5KG5ldyB7IG1hdHJpeFVzZXJuYW1lIH0pOwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0K"
423
+ }
424
+ },
425
+ {
426
+ "order": 2,
427
+ "task": {
428
+ "domain": "morph-touch",
429
+ "flow": "sys-tasks",
430
+ "key": "login-for-chat",
431
+ "version": "1.0.0"
432
+ },
433
+ "mapping": {
434
+ "location": "./src/LoginForChatRoomMapping.csx",
435
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgbG9naW4tZm9yLWNoYXQgd2hlbiB1c2VkIGluIGNoYXQtcm9vbSB3b3JrZmxvdy4KLy8vIENhbGxzIFBPU1QgL19tYXRyaXgvY2xpZW50L3YzL2xvZ2luIG9uIFN5bmFwc2UuCi8vLyBMb2dzIGluIGFzIGRhdGEudXNlciAodGhlIGN1c3RvbWVyL3Jvb20gb3duZXIpLgovLy8gU3RvcmVzIGFjY2Vzc190b2tlbiBhcyBzZXNzaW9uSWQgaW4gY2hhdEludGVncmF0aW9uIGZvciBzdWJzZXF1ZW50IE1hdHJpeCBBUEkgY2FsbHMuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBMb2dpbkZvckNoYXRSb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBzZWNyZXROYW1lID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZWNyZXROYW1lKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgbWF0cml4QmFzZVVybCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIHN5bmFwc2VQYXNzd29yZCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiU3luYXBzZVBhc3N3b3JkIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc3luYXBzZVBhc3N3b3JkKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlN5bmFwc2VQYXNzd29yZCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIHZhciBsb2dpblVzZXJuYW1lID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VyIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobG9naW5Vc2VybmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJDYW5ub3QgZGV0ZXJtaW5lIGxvZ2luIHVzZXI6IGRhdGEudXNlciBpcyBtaXNzaW5nIik7CgogICAgICAgIHZhciBmdWxsVXJsID0gbWF0cml4QmFzZVVybC5UcmltRW5kKCcvJykgKyAiL19tYXRyaXgvY2xpZW50L3YzL2xvZ2luIjsKICAgICAgICBodHRwVGFzay5TZXRVcmwoZnVsbFVybCk7CgogICAgICAgIGh0dHBUYXNrLlNldEhlYWRlcnMobmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICBbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIkFjY2VwdCJdID0gImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgfSk7CgogICAgICAgIGh0dHBUYXNrLlNldEJvZHkobmV3CiAgICAgICAgewogICAgICAgICAgICB0eXBlID0gIm0ubG9naW4ucGFzc3dvcmQiLAogICAgICAgICAgICBpZGVudGlmaWVyID0gbmV3IHsgdHlwZSA9ICJtLmlkLnVzZXIiLCB1c2VyID0gInUiICsgbG9naW5Vc2VybmFtZSB9LAogICAgICAgICAgICBwYXNzd29yZCA9IHN5bmFwc2VQYXNzd29yZAogICAgICAgIH0pOwogICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgICAgIHZhciByZXNwb25zZSA9IGNvbnRleHQuQm9keTsKICAgICAgICB2YXIgaW5zdGFuY2VEYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgc3RyaW5nIGV4aXN0aW5nUm9vbUlkID0gbnVsbDsKICAgICAgICBpZiAoaW5zdGFuY2VEYXRhICE9IG51bGwgJiYgSGFzUHJvcGVydHkoaW5zdGFuY2VEYXRhLCAiY2hhdEludGVncmF0aW9uIikgJiYgaW5zdGFuY2VEYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICBleGlzdGluZ1Jvb21JZCA9IEdldFN0cmluZyhpbnN0YW5jZURhdGEuY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CgogICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzID09IHRydWUpCiAgICAgICAgewogICAgICAgICAgICBkeW5hbWljIGRhdGEgPSByZXNwb25zZS5kYXRhOwogICAgICAgICAgICBzdHJpbmcgc2Vzc2lvbklkID0gR2V0U3RyaW5nKGRhdGEsICJhY2Nlc3NfdG9rZW4iKTsKICAgICAgICAgICAgc3RyaW5nIHVzZXJJZCA9IEdldFN0cmluZyhkYXRhLCAidXNlcl9pZCIpOwogICAgICAgICAgICBzdHJpbmcgdXNlcm5hbWUgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXJuYW1lIik7CgogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzZXNzaW9uSWQsCiAgICAgICAgICAgICAgICAgICAgdXNlcklkLAogICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lLAogICAgICAgICAgICAgICAgICAgIHJvb21JZCA9IGV4aXN0aW5nUm9vbUlkLAogICAgICAgICAgICAgICAgICAgIGVycm9yID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIGVycm9yQ29kZSA9IChzdHJpbmcpbnVsbAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBzdHJpbmcgZXJyb3JNZXNzYWdlID0gcmVzcG9uc2U/LmVycm9yTWVzc2FnZT8uVG9TdHJpbmcoKSA/PyAiQ2hhdCBsb2dpbiBmYWlsZWQiOwogICAgICAgICAgICBzdHJpbmcgc3RhdHVzQ29kZSA9IHJlc3BvbnNlPy5zdGF0dXNDb2RlICE9IG51bGwgPyByZXNwb25zZS5zdGF0dXNDb2RlLlRvU3RyaW5nKCkgOiBudWxsOwogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzZXNzaW9uSWQgPSAoc3RyaW5nKW51bGwsCiAgICAgICAgICAgICAgICAgICAgdXNlcklkID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIHJvb21JZCA9IGV4aXN0aW5nUm9vbUlkLAogICAgICAgICAgICAgICAgICAgIGVycm9yID0gZXJyb3JNZXNzYWdlLAogICAgICAgICAgICAgICAgICAgIGVycm9yQ29kZSA9IHN0YXR1c0NvZGUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
436
+ }
437
+ },
438
+ {
439
+ "order": 3,
310
440
  "task": {
311
441
  "domain": "morph-touch",
312
442
  "flow": "sys-tasks",
@@ -315,7 +445,7 @@
315
445
  },
316
446
  "mapping": {
317
447
  "location": "./src/ChatRoomRemoveMapping.csx",
318
- "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgcmVtb3ZlLW1lbWJlci1mcm9tLXJvb20gSHR0cFRhc2sgKFR5cGUgNikgaW4gdGhlIGNoYXQtcm9vbSByZW1vdmUgdHJhbnNpdGlvbi4KLy8vIEtpY2tzIGEgbWVtYmVyIGZyb20gdGhlIHBlcm1hbmVudCByb29tIHZpYSBuYXRpdmUgL19tYXRyaXgvY2xpZW50L3YzL3Jvb21zL3tyb29tSWR9L2tpY2suCi8vLyBBUElTSVggY29udmVydHMgWC1NYXRyaXgtVXNlciBoZWFkZXIgdG8gQmVhcmVyIHRva2VuIGF1dG9tYXRpY2FsbHkuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBDaGF0Um9vbVJlbW92ZU1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgYXN5bmMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGh0dHBUYXNrID0gdGFzayBhcyBIdHRwVGFzazsKICAgICAgICBpZiAoaHR0cFRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhbiBIdHRwVGFzayIpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgdmFyIHVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXIiKTsKICAgICAgICB2YXIgY2hhdEludGVncmF0aW9uID0gZGF0YT8uY2hhdEludGVncmF0aW9uOwogICAgICAgIHZhciByb29tSWQgPSBHZXRTdHJpbmcoY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJvb21JZCkpCiAgICAgICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKCiAgICAgICAgdmFyIHJlbW92ZU1lbWJlcklkID0gR2V0U3RyaW5nKGRhdGEsICJyZW1vdmVNZW1iZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJlbW92ZU1lbWJlcklkKSkKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwoKICAgICAgICB2YXIgc2VjcmV0TmFtZSA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc2VjcmV0TmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIGNvbmZpZ3VyYXRpb24gaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIG1hdHJpeEJhc2VVcmwgPSBhd2FpdCBHZXRTZWNyZXRBc3luYyhzZWNyZXROYW1lLCAid29ya2Zsb3ctc2VjcmV0IiwgIk1hdHJpeEJhc2VVcmwiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtYXRyaXhCYXNlVXJsKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1hdHJpeEJhc2VVcmwgc2VjcmV0IGlzIHJlcXVpcmVkIik7CiAgICAgICAgdmFyIGZ1bGxVcmwgPSBtYXRyaXhCYXNlVXJsLlRyaW1FbmQoJy8nKSArICIvX21hdHJpeC9jbGllbnQvdjMvcm9vbXMvIiArIFVyaS5Fc2NhcGVEYXRhU3RyaW5nKHJvb21JZCkgKyAiL2tpY2siOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIG1hdHJpeFVzZXJJZCA9IHJlbW92ZU1lbWJlcklkLlRyaW0oKS5TdGFydHNXaXRoKCJAIikgPyByZW1vdmVNZW1iZXJJZC5UcmltKCkgOiAkIkB7cmVtb3ZlTWVtYmVySWQuVHJpbSgpfTpsb2NhbGhvc3QiOwoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB1c2VyCiAgICAgICAgfTsKICAgICAgICBodHRwVGFzay5TZXRIZWFkZXJzKGhlYWRlcnMpOwoKICAgICAgICBodHRwVGFzay5TZXRCb2R5KG5ldyB7IHVzZXJfaWQgPSBtYXRyaXhVc2VySWQgfSk7CgogICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgdmFyIGFkdmlzb3JJZCA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvcklkIik7CiAgICAgICAgdmFyIHJlbW92ZU1lbWJlcklkID0gR2V0U3RyaW5nKGRhdGEsICJyZW1vdmVNZW1iZXJJZCIpOwogICAgICAgIHZhciB1c2VyID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VyIik7CiAgICAgICAgdmFyIGFkdmlzb3JUeXBlID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29yVHlwZSIpOwoKICAgICAgICBzdHJpbmcgcm9vbUlkID0gbnVsbDsKICAgICAgICBpZiAoSGFzUHJvcGVydHkoZGF0YSwgImNoYXRJbnRlZ3JhdGlvbiIpICYmIGRhdGEuY2hhdEludGVncmF0aW9uICE9IG51bGwpCiAgICAgICAgICAgIHJvb21JZCA9IEdldFN0cmluZyhkYXRhLmNoYXRJbnRlZ3JhdGlvbiwgInJvb21JZCIpOwoKICAgICAgICB2YXIgbWVtYmVycyA9IG5ldyBMaXN0PG9iamVjdD4oKTsKICAgICAgICBpZiAoSGFzUHJvcGVydHkoZGF0YSwgIm1lbWJlcnMiKSAmJiBkYXRhLm1lbWJlcnMgIT0gbnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIGZvcmVhY2ggKHZhciBtIGluIGRhdGEubWVtYmVycykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIG1pZCA9IEdldFN0cmluZyhtLCAibWVtYmVySWQiKSA/PyBHZXRTdHJpbmcobSwgImFkdmlzb3JJZCIpOwogICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1pZCkgJiYgbWlkICE9IHJlbW92ZU1lbWJlcklkKQogICAgICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbWlkLCByb2xlID0gR2V0U3RyaW5nKG0sICJyb2xlIikgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciBtZW1iZXJXaXRob3V0QXJyYXkgPSBCdWlsZE1lbWJlcldpdGhvdXRBcnJheShtZW1iZXJzKTsKCiAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICB7CiAgICAgICAgICAgIHVzZXIsCiAgICAgICAgICAgIGFkdmlzb3JUeXBlLAogICAgICAgICAgICBhZHZpc29ySWQsCiAgICAgICAgICAgIGNoYXRJbnRlZ3JhdGlvbiA9IG5ldyB7IHJvb21JZCB9LAogICAgICAgICAgICBtZW1iZXJzID0gbWVtYmVycywKICAgICAgICAgICAgbWVtYmVyV2l0aG91dEFycmF5ID0gbWVtYmVyV2l0aG91dEFycmF5CiAgICAgICAgfTsKCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChyZXN1bHQpOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IEJ1aWxkTWVtYmVyV2l0aG91dEFycmF5KElFbnVtZXJhYmxlPG9iamVjdD4gbWVtYmVycykKICAgIHsKICAgICAgICB2YXIgbWFwID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+KCk7CiAgICAgICAgaWYgKG1lbWJlcnMgPT0gbnVsbCkgcmV0dXJuIG1hcDsKICAgICAgICBmb3JlYWNoIChkeW5hbWljIG0gaW4gbWVtYmVycykKICAgICAgICB7CiAgICAgICAgICAgIHRyeQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAobSA9PSBudWxsKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIHZhciBtaWQgPSBtLm1lbWJlcklkPy5Ub1N0cmluZygpID8/IG0uYWR2aXNvcklkPy5Ub1N0cmluZygpOwogICAgICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobWlkKSkgY29udGludWU7CiAgICAgICAgICAgICAgICBtYXBbbWlkXSA9IG0ucm9sZT8uVG9TdHJpbmcoKSA/PyAiIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCB7IH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1hcDsKICAgIH0KfQo="
448
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgcmVtb3ZlLW1lbWJlci1mcm9tLXJvb20gSHR0cFRhc2sgKFR5cGUgNikgaW4gdGhlIGNoYXQtcm9vbSByZW1vdmUgdHJhbnNpdGlvbi4KLy8vIEtpY2tzIGEgbWVtYmVyIGZyb20gdGhlIHBlcm1hbmVudCByb29tIHZpYSBuYXRpdmUgL19tYXRyaXgvY2xpZW50L3YzL3Jvb21zL3tyb29tSWR9L2tpY2suCi8vLyBBUElTSVggY29udmVydHMgWC1NYXRyaXgtVXNlciBoZWFkZXIgdG8gQmVhcmVyIHRva2VuIGF1dG9tYXRpY2FsbHkuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBDaGF0Um9vbVJlbW92ZU1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgYXN5bmMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGh0dHBUYXNrID0gdGFzayBhcyBIdHRwVGFzazsKICAgICAgICBpZiAoaHR0cFRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhbiBIdHRwVGFzayIpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgdmFyIHVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXIiKTsKICAgICAgICB2YXIgY2hhdEludGVncmF0aW9uID0gZGF0YT8uY2hhdEludGVncmF0aW9uOwogICAgICAgIHZhciByb29tSWQgPSBHZXRTdHJpbmcoY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJvb21JZCkpCiAgICAgICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKCiAgICAgICAgdmFyIHJlbW92ZU1lbWJlcklkID0gR2V0U3RyaW5nKGRhdGEsICJyZW1vdmVNZW1iZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJlbW92ZU1lbWJlcklkKSkKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwoKICAgICAgICB2YXIgc2VjcmV0TmFtZSA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc2VjcmV0TmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIGNvbmZpZ3VyYXRpb24gaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIG1hdHJpeEJhc2VVcmwgPSBhd2FpdCBHZXRTZWNyZXRBc3luYyhzZWNyZXROYW1lLCAid29ya2Zsb3ctc2VjcmV0IiwgIk1hdHJpeEJhc2VVcmwiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtYXRyaXhCYXNlVXJsKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1hdHJpeEJhc2VVcmwgc2VjcmV0IGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBTeW5hcHNlU2VydmVyID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoc2VjcmV0TmFtZSwgIndvcmtmbG93LXNlY3JldCIsICJTeW5hcHNlU2VydmVyIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoU3luYXBzZVNlcnZlcikpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJTeW5hcHNlU2VydmVyIHNlY3JldCBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9yb29tcy8iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcocm9vbUlkKSArICIva2ljayI7CiAgICAgICAgaHR0cFRhc2suU2V0VXJsKGZ1bGxVcmwpOwoKICAgICAgICB2YXIgbWF0cml4VXNlcklkID0gcmVtb3ZlTWVtYmVySWQuVHJpbSgpLlN0YXJ0c1dpdGgoIkAiKSA/IHJlbW92ZU1lbWJlcklkLlRyaW0oKSA6ICQiQHtyZW1vdmVNZW1iZXJJZC5UcmltKCl9OntTeW5hcHNlU2VydmVyfSI7CgogICAgICAgIHZhciBzZXNzaW9uSWQgPSBHZXRTdHJpbmcoY2hhdEludGVncmF0aW9uLCAic2Vzc2lvbklkIik7CgogICAgICAgIHZhciBoZWFkZXJzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICBbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIkFjY2VwdCJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIlgtTWF0cml4LVVzZXIiXSA9IHVzZXIKICAgICAgICB9OwogICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZXNzaW9uSWQpKQogICAgICAgICAgICBoZWFkZXJzWyJBdXRob3JpemF0aW9uIl0gPSAiQmVhcmVyICIgKyBzZXNzaW9uSWQ7CiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhoZWFkZXJzKTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShuZXcgeyB1c2VyX2lkID0gbWF0cml4VXNlcklkIH0pOwoKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciByZXN1bHQgPSBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgIHZhciBhZHZpc29ySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwogICAgICAgIHZhciByZW1vdmVNZW1iZXJJZCA9IEdldFN0cmluZyhkYXRhLCAicmVtb3ZlTWVtYmVySWQiKTsKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBhZHZpc29yVHlwZSA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvclR5cGUiKTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIG1lbWJlcnMgPSBuZXcgTGlzdDxvYmplY3Q+KCk7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJtZW1iZXJzIikgJiYgZGF0YS5tZW1iZXJzICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBmb3JlYWNoICh2YXIgbSBpbiBkYXRhLm1lbWJlcnMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBtaWQgPSBHZXRTdHJpbmcobSwgIm1lbWJlcklkIikgPz8gR2V0U3RyaW5nKG0sICJhZHZpc29ySWQiKTsKICAgICAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtaWQpICYmIG1pZCAhPSByZW1vdmVNZW1iZXJJZCkKICAgICAgICAgICAgICAgICAgICBtZW1iZXJzLkFkZChuZXcgeyBtZW1iZXJJZCA9IG1pZCwgcm9sZSA9IEdldFN0cmluZyhtLCAicm9sZSIpIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB2YXIgbWVtYmVyV2l0aG91dEFycmF5ID0gQnVpbGRNZW1iZXJXaXRob3V0QXJyYXkobWVtYmVycyk7CgogICAgICAgIHJlc3VsdC5EYXRhID0gbmV3CiAgICAgICAgewogICAgICAgICAgICB1c2VyLAogICAgICAgICAgICBhZHZpc29yVHlwZSwKICAgICAgICAgICAgYWR2aXNvcklkLAogICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcgeyByb29tSWQgfSwKICAgICAgICAgICAgbWVtYmVycyA9IG1lbWJlcnMsCiAgICAgICAgICAgIG1lbWJlcldpdGhvdXRBcnJheSA9IG1lbWJlcldpdGhvdXRBcnJheQogICAgICAgIH07CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBCdWlsZE1lbWJlcldpdGhvdXRBcnJheShJRW51bWVyYWJsZTxvYmplY3Q+IG1lbWJlcnMpCiAgICB7CiAgICAgICAgdmFyIG1hcCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPigpOwogICAgICAgIGlmIChtZW1iZXJzID09IG51bGwpIHJldHVybiBtYXA7CiAgICAgICAgZm9yZWFjaCAoZHluYW1pYyBtIGluIG1lbWJlcnMpCiAgICAgICAgewogICAgICAgICAgICB0cnkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICAgICAgICB2YXIgbWlkID0gbS5tZW1iZXJJZD8uVG9TdHJpbmcoKSA/PyBtLmFkdmlzb3JJZD8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1pZCkpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgbWFwW21pZF0gPSBtLnJvbGU/LlRvU3RyaW5nKCkgPz8gIiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXA7CiAgICB9Cn0K"
319
449
  }
320
450
  }
321
451
  ]
@@ -338,6 +468,32 @@
338
468
  "onExecutionTasks": [
339
469
  {
340
470
  "order": 1,
471
+ "task": {
472
+ "domain": "morph-touch",
473
+ "flow": "sys-tasks",
474
+ "key": "start-register-matrix-user",
475
+ "version": "1.0.0"
476
+ },
477
+ "mapping": {
478
+ "location": "./src/RegisterForChatRoomMapping.csx",
479
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBNYXBwaW5nIGZvciBzdGFydC1yZWdpc3Rlci1tYXRyaXgtdXNlciBTdGFydFRhc2sgKFR5cGUgMTEpIGluIGNoYXQtcm9vbSB3b3JrZmxvdy4KLy8vIFN0YXJ0cyByZWdpc3Rlci1tYXRyaXgtdXNlciBmbG93IHdpdGggbWF0cml4VXNlcm5hbWUgPSAidSIgKyBkYXRhLnVzZXIuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBSZWdpc3RlckZvckNoYXRSb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgc3RhcnRUYXNrID0gdGFzayBhcyBTdGFydFRhc2s7CiAgICAgICAgaWYgKHN0YXJ0VGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGEgU3RhcnRUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHVzZXIpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiQ2Fubm90IGRldGVybWluZSByZWdpc3RlciB1c2VyOiBkYXRhLnVzZXIgaXMgbWlzc2luZyIpOwoKICAgICAgICB2YXIgbWF0cml4VXNlcm5hbWUgPSAidSIgKyB1c2VyOwoKICAgICAgICBzdGFydFRhc2suU2V0RG9tYWluKCJtb3JwaC10b3VjaCIpOwogICAgICAgIHN0YXJ0VGFzay5TZXRGbG93KCJyZWdpc3Rlci1tYXRyaXgtdXNlciIpOwogICAgICAgIHN0YXJ0VGFzay5TZXRTeW5jKHRydWUpOwogICAgICAgIHN0YXJ0VGFzay5TZXRCb2R5KG5ldyB7IG1hdHJpeFVzZXJuYW1lIH0pOwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0K"
480
+ }
481
+ },
482
+ {
483
+ "order": 2,
484
+ "task": {
485
+ "domain": "morph-touch",
486
+ "flow": "sys-tasks",
487
+ "key": "login-for-chat",
488
+ "version": "1.0.0"
489
+ },
490
+ "mapping": {
491
+ "location": "./src/LoginForChatRoomMapping.csx",
492
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgbG9naW4tZm9yLWNoYXQgd2hlbiB1c2VkIGluIGNoYXQtcm9vbSB3b3JrZmxvdy4KLy8vIENhbGxzIFBPU1QgL19tYXRyaXgvY2xpZW50L3YzL2xvZ2luIG9uIFN5bmFwc2UuCi8vLyBMb2dzIGluIGFzIGRhdGEudXNlciAodGhlIGN1c3RvbWVyL3Jvb20gb3duZXIpLgovLy8gU3RvcmVzIGFjY2Vzc190b2tlbiBhcyBzZXNzaW9uSWQgaW4gY2hhdEludGVncmF0aW9uIGZvciBzdWJzZXF1ZW50IE1hdHJpeCBBUEkgY2FsbHMuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBMb2dpbkZvckNoYXRSb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBzZWNyZXROYW1lID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZWNyZXROYW1lKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgbWF0cml4QmFzZVVybCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIHN5bmFwc2VQYXNzd29yZCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiU3luYXBzZVBhc3N3b3JkIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc3luYXBzZVBhc3N3b3JkKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlN5bmFwc2VQYXNzd29yZCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIHZhciBsb2dpblVzZXJuYW1lID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VyIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobG9naW5Vc2VybmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJDYW5ub3QgZGV0ZXJtaW5lIGxvZ2luIHVzZXI6IGRhdGEudXNlciBpcyBtaXNzaW5nIik7CgogICAgICAgIHZhciBmdWxsVXJsID0gbWF0cml4QmFzZVVybC5UcmltRW5kKCcvJykgKyAiL19tYXRyaXgvY2xpZW50L3YzL2xvZ2luIjsKICAgICAgICBodHRwVGFzay5TZXRVcmwoZnVsbFVybCk7CgogICAgICAgIGh0dHBUYXNrLlNldEhlYWRlcnMobmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICBbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIkFjY2VwdCJdID0gImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgfSk7CgogICAgICAgIGh0dHBUYXNrLlNldEJvZHkobmV3CiAgICAgICAgewogICAgICAgICAgICB0eXBlID0gIm0ubG9naW4ucGFzc3dvcmQiLAogICAgICAgICAgICBpZGVudGlmaWVyID0gbmV3IHsgdHlwZSA9ICJtLmlkLnVzZXIiLCB1c2VyID0gInUiICsgbG9naW5Vc2VybmFtZSB9LAogICAgICAgICAgICBwYXNzd29yZCA9IHN5bmFwc2VQYXNzd29yZAogICAgICAgIH0pOwogICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgICAgIHZhciByZXNwb25zZSA9IGNvbnRleHQuQm9keTsKICAgICAgICB2YXIgaW5zdGFuY2VEYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgc3RyaW5nIGV4aXN0aW5nUm9vbUlkID0gbnVsbDsKICAgICAgICBpZiAoaW5zdGFuY2VEYXRhICE9IG51bGwgJiYgSGFzUHJvcGVydHkoaW5zdGFuY2VEYXRhLCAiY2hhdEludGVncmF0aW9uIikgJiYgaW5zdGFuY2VEYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICBleGlzdGluZ1Jvb21JZCA9IEdldFN0cmluZyhpbnN0YW5jZURhdGEuY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CgogICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzID09IHRydWUpCiAgICAgICAgewogICAgICAgICAgICBkeW5hbWljIGRhdGEgPSByZXNwb25zZS5kYXRhOwogICAgICAgICAgICBzdHJpbmcgc2Vzc2lvbklkID0gR2V0U3RyaW5nKGRhdGEsICJhY2Nlc3NfdG9rZW4iKTsKICAgICAgICAgICAgc3RyaW5nIHVzZXJJZCA9IEdldFN0cmluZyhkYXRhLCAidXNlcl9pZCIpOwogICAgICAgICAgICBzdHJpbmcgdXNlcm5hbWUgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXJuYW1lIik7CgogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzZXNzaW9uSWQsCiAgICAgICAgICAgICAgICAgICAgdXNlcklkLAogICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lLAogICAgICAgICAgICAgICAgICAgIHJvb21JZCA9IGV4aXN0aW5nUm9vbUlkLAogICAgICAgICAgICAgICAgICAgIGVycm9yID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIGVycm9yQ29kZSA9IChzdHJpbmcpbnVsbAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBzdHJpbmcgZXJyb3JNZXNzYWdlID0gcmVzcG9uc2U/LmVycm9yTWVzc2FnZT8uVG9TdHJpbmcoKSA/PyAiQ2hhdCBsb2dpbiBmYWlsZWQiOwogICAgICAgICAgICBzdHJpbmcgc3RhdHVzQ29kZSA9IHJlc3BvbnNlPy5zdGF0dXNDb2RlICE9IG51bGwgPyByZXNwb25zZS5zdGF0dXNDb2RlLlRvU3RyaW5nKCkgOiBudWxsOwogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzZXNzaW9uSWQgPSAoc3RyaW5nKW51bGwsCiAgICAgICAgICAgICAgICAgICAgdXNlcklkID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIHJvb21JZCA9IGV4aXN0aW5nUm9vbUlkLAogICAgICAgICAgICAgICAgICAgIGVycm9yID0gZXJyb3JNZXNzYWdlLAogICAgICAgICAgICAgICAgICAgIGVycm9yQ29kZSA9IHN0YXR1c0NvZGUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
493
+ }
494
+ },
495
+ {
496
+ "order": 3,
341
497
  "task": {
342
498
  "domain": "morph-touch",
343
499
  "flow": "sys-tasks",
@@ -346,11 +502,11 @@
346
502
  },
347
503
  "mapping": {
348
504
  "location": "./src/ChatRoomTransferRemoveMapping.csx",
349
- "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgcmVtb3ZlLW1lbWJlci1mcm9tLXJvb20gSHR0cFRhc2sgKFR5cGUgNikgaW4gdGhlIGNoYXQtcm9vbSB0cmFuc2ZlciB0cmFuc2l0aW9uIChraWNrIHN0ZXApLgovLy8gS2lja3MgdGhlIGN1cnJlbnQgYWR2aXNvciBmcm9tIHRoZSByb29tIGJlZm9yZSBpbnZpdGluZyB0aGUgbmV3IG9uZS4KLy8vIFVzZXMgL19tYXRyaXgvY2xpZW50L3YzL3Jvb21zL3tyb29tSWR9L2tpY2suCi8vLyBBUElTSVggY29udmVydHMgWC1NYXRyaXgtVXNlciBoZWFkZXIgdG8gQmVhcmVyIHRva2VuIGF1dG9tYXRpY2FsbHkuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBDaGF0Um9vbVRyYW5zZmVyUmVtb3ZlTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBzZWNyZXROYW1lID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZWNyZXROYW1lKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgbWF0cml4QmFzZVVybCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIHZhciB1c2VyID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VyIik7CiAgICAgICAgdmFyIGNoYXRJbnRlZ3JhdGlvbiA9IGRhdGE/LmNoYXRJbnRlZ3JhdGlvbjsKICAgICAgICB2YXIgcm9vbUlkID0gR2V0U3RyaW5nKGNoYXRJbnRlZ3JhdGlvbiwgInJvb21JZCIpOwogICAgICAgIHZhciBjdXJyZW50QWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29ySWQiKTsKCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uocm9vbUlkKSB8fCBzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKGN1cnJlbnRBZHZpc29ySWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBmdWxsVXJsID0gbWF0cml4QmFzZVVybC5UcmltRW5kKCcvJykgKyAiL19tYXRyaXgvY2xpZW50L3YzL3Jvb21zLyIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhyb29tSWQpICsgIi9raWNrIjsKICAgICAgICBodHRwVGFzay5TZXRVcmwoZnVsbFVybCk7CgogICAgICAgIHZhciBtYXRyaXhVc2VySWQgPSBjdXJyZW50QWR2aXNvcklkLlRyaW0oKS5TdGFydHNXaXRoKCJAIikgPyBjdXJyZW50QWR2aXNvcklkLlRyaW0oKSA6ICQiQHtjdXJyZW50QWR2aXNvcklkLlRyaW0oKX06bG9jYWxob3N0IjsKCiAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4KICAgICAgICB7CiAgICAgICAgICAgIFsiQ29udGVudC1UeXBlIl0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiQWNjZXB0Il0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiWC1NYXRyaXgtVXNlciJdID0gdXNlcgogICAgICAgIH07CiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhoZWFkZXJzKTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShuZXcgeyB1c2VyX2lkID0gbWF0cml4VXNlcklkIH0pOwoKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cg=="
505
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgcmVtb3ZlLW1lbWJlci1mcm9tLXJvb20gSHR0cFRhc2sgKFR5cGUgNikgaW4gdGhlIGNoYXQtcm9vbSB0cmFuc2ZlciB0cmFuc2l0aW9uIChraWNrIHN0ZXApLgovLy8gS2lja3MgdGhlIGN1cnJlbnQgYWR2aXNvciBmcm9tIHRoZSByb29tIGJlZm9yZSBpbnZpdGluZyB0aGUgbmV3IG9uZS4KLy8vIFVzZXMgL19tYXRyaXgvY2xpZW50L3YzL3Jvb21zL3tyb29tSWR9L2tpY2suCi8vLyBBUElTSVggY29udmVydHMgWC1NYXRyaXgtVXNlciBoZWFkZXIgdG8gQmVhcmVyIHRva2VuIGF1dG9tYXRpY2FsbHkuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBDaGF0Um9vbVRyYW5zZmVyUmVtb3ZlTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBzZWNyZXROYW1lID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZWNyZXROYW1lKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgbWF0cml4QmFzZVVybCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIFN5bmFwc2VTZXJ2ZXIgPSBhd2FpdCBHZXRTZWNyZXRBc3luYyhzZWNyZXROYW1lLCAid29ya2Zsb3ctc2VjcmV0IiwgIlN5bmFwc2VTZXJ2ZXIiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShTeW5hcHNlU2VydmVyKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlN5bmFwc2VTZXJ2ZXIgc2VjcmV0IGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBjaGF0SW50ZWdyYXRpb24gPSBkYXRhPy5jaGF0SW50ZWdyYXRpb247CiAgICAgICAgdmFyIHJvb21JZCA9IEdldFN0cmluZyhjaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKICAgICAgICB2YXIgY3VycmVudEFkdmlzb3JJZCA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvcklkIik7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJvb21JZCkgfHwgc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShjdXJyZW50QWR2aXNvcklkKSkKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwoKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9yb29tcy8iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcocm9vbUlkKSArICIva2ljayI7CiAgICAgICAgaHR0cFRhc2suU2V0VXJsKGZ1bGxVcmwpOwoKICAgICAgICB2YXIgbWF0cml4VXNlcklkID0gY3VycmVudEFkdmlzb3JJZC5UcmltKCkuU3RhcnRzV2l0aCgiQCIpID8gY3VycmVudEFkdmlzb3JJZC5UcmltKCkgOiAkIkB7Y3VycmVudEFkdmlzb3JJZC5UcmltKCl9OntTeW5hcHNlU2VydmVyfSI7CgogICAgICAgIHZhciBzZXNzaW9uSWQgPSBHZXRTdHJpbmcoY2hhdEludGVncmF0aW9uLCAic2Vzc2lvbklkIik7CgogICAgICAgIHZhciBoZWFkZXJzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICBbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIkFjY2VwdCJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIlgtTWF0cml4LVVzZXIiXSA9IHVzZXIKICAgICAgICB9OwogICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZXNzaW9uSWQpKQogICAgICAgICAgICBoZWFkZXJzWyJBdXRob3JpemF0aW9uIl0gPSAiQmVhcmVyICIgKyBzZXNzaW9uSWQ7CiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhoZWFkZXJzKTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShuZXcgeyB1c2VyX2lkID0gbWF0cml4VXNlcklkIH0pOwoKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cg=="
350
506
  }
351
507
  },
352
508
  {
353
- "order": 2,
509
+ "order": 4,
354
510
  "task": {
355
511
  "domain": "morph-touch",
356
512
  "flow": "sys-tasks",
@@ -359,11 +515,37 @@
359
515
  },
360
516
  "mapping": {
361
517
  "location": "./src/ChatRoomTransferInviteMapping.csx",
362
- "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgaW52aXRlLXVzZXItdG8tcmV6ZXJ2YXRpb24tcm9vbSBIdHRwVGFzayAoVHlwZSA2KSBpbiB0aGUgY2hhdC1yb29tIHRyYW5zZmVyIHRyYW5zaXRpb24gKGludml0ZSBzdGVwKS4KLy8vIEludml0ZXMgdGhlIG5ldyBhZHZpc29yIHRvIHRoZSByb29tIGFmdGVyIHRoZSBvbGQgb25lIHdhcyBraWNrZWQuCi8vLyBVc2VzIC9fbWF0cml4L2NsaWVudC92My9yb29tcy97cm9vbUlkfS9pbnZpdGUuCi8vLyBBUElTSVggY29udmVydHMgWC1NYXRyaXgtVXNlciBoZWFkZXIgdG8gQmVhcmVyIHRva2VuIGF1dG9tYXRpY2FsbHkuCi8vLyBNYXRyaXhCYXNlVXJsIGlzIHJlYWQgZnJvbSB0aGUgRGFwciBzZWNyZXQgc3RvcmUgKERBUFJfU0VDUkVUX1NUT1JFX05BTUUgLyB3b3JrZmxvdy1zZWNyZXQpLgovLy8gQWxzbyB1cGRhdGVzIGluc3RhbmNlRGF0YS5hZHZpc29ySWQgdG8gdGhlIG5ldyBhZHZpc29yLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgQ2hhdFJvb21UcmFuc2Zlckludml0ZU1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgYXN5bmMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGh0dHBUYXNrID0gdGFzayBhcyBIdHRwVGFzazsKICAgICAgICBpZiAoaHR0cFRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhbiBIdHRwVGFzayIpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgdmFyIHVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXIiKTsKICAgICAgICB2YXIgY2hhdEludGVncmF0aW9uID0gZGF0YT8uY2hhdEludGVncmF0aW9uOwogICAgICAgIHZhciByb29tSWQgPSBHZXRTdHJpbmcoY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CgogICAgICAgIHZhciBuZXdBZHZpc29ySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld0Fkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyb29tSWQpIHx8IHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobmV3QWR2aXNvcklkKSkKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwoKICAgICAgICB2YXIgc2VjcmV0TmFtZSA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc2VjcmV0TmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIGNvbmZpZ3VyYXRpb24gaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIG1hdHJpeEJhc2VVcmwgPSBhd2FpdCBHZXRTZWNyZXRBc3luYyhzZWNyZXROYW1lLCAid29ya2Zsb3ctc2VjcmV0IiwgIk1hdHJpeEJhc2VVcmwiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtYXRyaXhCYXNlVXJsKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1hdHJpeEJhc2VVcmwgc2VjcmV0IGlzIHJlcXVpcmVkIik7CiAgICAgICAgdmFyIGZ1bGxVcmwgPSBtYXRyaXhCYXNlVXJsLlRyaW1FbmQoJy8nKSArICIvX21hdHJpeC9jbGllbnQvdjMvcm9vbXMvIiArIFVyaS5Fc2NhcGVEYXRhU3RyaW5nKHJvb21JZCkgKyAiL2ludml0ZSI7CiAgICAgICAgaHR0cFRhc2suU2V0VXJsKGZ1bGxVcmwpOwoKICAgICAgICB2YXIgbWF0cml4VXNlcklkID0gbmV3QWR2aXNvcklkLlRyaW0oKS5TdGFydHNXaXRoKCJAIikgPyBuZXdBZHZpc29ySWQuVHJpbSgpIDogJCJAe25ld0Fkdmlzb3JJZC5UcmltKCl9OmxvY2FsaG9zdCI7CgogICAgICAgIHZhciBoZWFkZXJzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICBbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIkFjY2VwdCJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIlgtTWF0cml4LVVzZXIiXSA9IHVzZXIKICAgICAgICB9OwogICAgICAgIGh0dHBUYXNrLlNldEhlYWRlcnMoaGVhZGVycyk7CgogICAgICAgIGh0dHBUYXNrLlNldEJvZHkobmV3IHsgdXNlcl9pZCA9IG1hdHJpeFVzZXJJZCB9KTsKCiAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICB2YXIgbmV3QWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJuZXdBZHZpc29ySWQiKTsKICAgICAgICB2YXIgb2xkQWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29ySWQiKTsKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBhZHZpc29yVHlwZSA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvclR5cGUiKTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIG1lbWJlcnMgPSBuZXcgTGlzdDxvYmplY3Q+KCk7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJtZW1iZXJzIikgJiYgZGF0YS5tZW1iZXJzICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBmb3JlYWNoICh2YXIgbSBpbiBkYXRhLm1lbWJlcnMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBtaWQgPSBHZXRTdHJpbmcobSwgIm1lbWJlcklkIikgPz8gR2V0U3RyaW5nKG0sICJhZHZpc29ySWQiKTsKICAgICAgICAgICAgICAgIHZhciByb2xlID0gR2V0U3RyaW5nKG0sICJyb2xlIik7CiAgICAgICAgICAgICAgICBpZiAobWlkID09IG9sZEFkdmlzb3JJZCAmJiByb2xlID09ICJhZHZpc29yIiAmJiAhc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShuZXdBZHZpc29ySWQpKQogICAgICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbmV3QWR2aXNvcklkLlRyaW0oKSwgcm9sZSA9ICJhZHZpc29yIiB9KTsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBtZW1iZXJzLkFkZChuZXcgeyBtZW1iZXJJZCA9IG1pZCwgcm9sZSA9IHJvbGUgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciBtZW1iZXJXaXRob3V0QXJyYXkgPSBCdWlsZE1lbWJlcldpdGhvdXRBcnJheShtZW1iZXJzKTsKCiAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICB7CiAgICAgICAgICAgIHVzZXIsCiAgICAgICAgICAgIGFkdmlzb3JUeXBlLAogICAgICAgICAgICBhZHZpc29ySWQgPSAhc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShuZXdBZHZpc29ySWQpID8gbmV3QWR2aXNvcklkLlRyaW0oKSA6IG9sZEFkdmlzb3JJZCwKICAgICAgICAgICAgY2hhdEludGVncmF0aW9uID0gbmV3IHsgcm9vbUlkIH0sCiAgICAgICAgICAgIG1lbWJlcnMgPSBtZW1iZXJzLAogICAgICAgICAgICBtZW1iZXJXaXRob3V0QXJyYXkgPSBtZW1iZXJXaXRob3V0QXJyYXksCiAgICAgICAgICAgIHBlbmRpbmdKb2luVXNlcklkID0gbmV3QWR2aXNvcklkCiAgICAgICAgfTsKCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChyZXN1bHQpOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+IEJ1aWxkTWVtYmVyV2l0aG91dEFycmF5KElFbnVtZXJhYmxlPG9iamVjdD4gbWVtYmVycykKICAgIHsKICAgICAgICB2YXIgbWFwID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+KCk7CiAgICAgICAgaWYgKG1lbWJlcnMgPT0gbnVsbCkgcmV0dXJuIG1hcDsKICAgICAgICBmb3JlYWNoIChkeW5hbWljIG0gaW4gbWVtYmVycykKICAgICAgICB7CiAgICAgICAgICAgIHRyeQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAobSA9PSBudWxsKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIHZhciBtaWQgPSBtLm1lbWJlcklkPy5Ub1N0cmluZygpID8/IG0uYWR2aXNvcklkPy5Ub1N0cmluZygpOwogICAgICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobWlkKSkgY29udGludWU7CiAgICAgICAgICAgICAgICBtYXBbbWlkXSA9IG0ucm9sZT8uVG9TdHJpbmcoKSA/PyAiIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCB7IH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1hcDsKICAgIH0KfQo="
518
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgaW52aXRlLXVzZXItdG8tcmV6ZXJ2YXRpb24tcm9vbSBIdHRwVGFzayAoVHlwZSA2KSBpbiB0aGUgY2hhdC1yb29tIHRyYW5zZmVyIHRyYW5zaXRpb24gKGludml0ZSBzdGVwKS4KLy8vIEludml0ZXMgdGhlIG5ldyBhZHZpc29yIHRvIHRoZSByb29tIGFmdGVyIHRoZSBvbGQgb25lIHdhcyBraWNrZWQuCi8vLyBVc2VzIC9fbWF0cml4L2NsaWVudC92My9yb29tcy97cm9vbUlkfS9pbnZpdGUuCi8vLyBBUElTSVggY29udmVydHMgWC1NYXRyaXgtVXNlciBoZWFkZXIgdG8gQmVhcmVyIHRva2VuIGF1dG9tYXRpY2FsbHkuCi8vLyBNYXRyaXhCYXNlVXJsIGlzIHJlYWQgZnJvbSB0aGUgRGFwciBzZWNyZXQgc3RvcmUgKERBUFJfU0VDUkVUX1NUT1JFX05BTUUgLyB3b3JrZmxvdy1zZWNyZXQpLgovLy8gQWxzbyB1cGRhdGVzIGluc3RhbmNlRGF0YS5hZHZpc29ySWQgdG8gdGhlIG5ldyBhZHZpc29yLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgQ2hhdFJvb21UcmFuc2Zlckludml0ZU1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgYXN5bmMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGh0dHBUYXNrID0gdGFzayBhcyBIdHRwVGFzazsKICAgICAgICBpZiAoaHR0cFRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhbiBIdHRwVGFzayIpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgdmFyIHVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXIiKTsKICAgICAgICB2YXIgY2hhdEludGVncmF0aW9uID0gZGF0YT8uY2hhdEludGVncmF0aW9uOwogICAgICAgIHZhciByb29tSWQgPSBHZXRTdHJpbmcoY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CgogICAgICAgIHZhciBuZXdBZHZpc29ySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld0Fkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyb29tSWQpIHx8IHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobmV3QWR2aXNvcklkKSkKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwoKICAgICAgICB2YXIgc2VjcmV0TmFtZSA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc2VjcmV0TmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIGNvbmZpZ3VyYXRpb24gaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIG1hdHJpeEJhc2VVcmwgPSBhd2FpdCBHZXRTZWNyZXRBc3luYyhzZWNyZXROYW1lLCAid29ya2Zsb3ctc2VjcmV0IiwgIk1hdHJpeEJhc2VVcmwiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtYXRyaXhCYXNlVXJsKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1hdHJpeEJhc2VVcmwgc2VjcmV0IGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBTeW5hcHNlU2VydmVyID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoc2VjcmV0TmFtZSwgIndvcmtmbG93LXNlY3JldCIsICJTeW5hcHNlU2VydmVyIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoU3luYXBzZVNlcnZlcikpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJTeW5hcHNlU2VydmVyIHNlY3JldCBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9yb29tcy8iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcocm9vbUlkKSArICIvaW52aXRlIjsKICAgICAgICBodHRwVGFzay5TZXRVcmwoZnVsbFVybCk7CgogICAgICAgIHZhciBtYXRyaXhVc2VySWQgPSBuZXdBZHZpc29ySWQuVHJpbSgpLlN0YXJ0c1dpdGgoIkAiKSA/IG5ld0Fkdmlzb3JJZC5UcmltKCkgOiAkIkB7bmV3QWR2aXNvcklkLlRyaW0oKX06e1N5bmFwc2VTZXJ2ZXJ9IjsKCiAgICAgICAgdmFyIHNlc3Npb25JZCA9IEdldFN0cmluZyhjaGF0SW50ZWdyYXRpb24sICJzZXNzaW9uSWQiKTsKCiAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4KICAgICAgICB7CiAgICAgICAgICAgIFsiQ29udGVudC1UeXBlIl0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiQWNjZXB0Il0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiWC1NYXRyaXgtVXNlciJdID0gdXNlcgogICAgICAgIH07CiAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHNlc3Npb25JZCkpCiAgICAgICAgICAgIGhlYWRlcnNbIkF1dGhvcml6YXRpb24iXSA9ICJCZWFyZXIgIiArIHNlc3Npb25JZDsKICAgICAgICBodHRwVGFzay5TZXRIZWFkZXJzKGhlYWRlcnMpOwoKICAgICAgICBodHRwVGFzay5TZXRCb2R5KG5ldyB7IHVzZXJfaWQgPSBtYXRyaXhVc2VySWQgfSk7CgogICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgdmFyIG5ld0Fkdmlzb3JJZCA9IEdldFN0cmluZyhkYXRhLCAibmV3QWR2aXNvcklkIik7CiAgICAgICAgdmFyIG9sZEFkdmlzb3JJZCA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvcklkIik7CiAgICAgICAgdmFyIHVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXIiKTsKICAgICAgICB2YXIgYWR2aXNvclR5cGUgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JUeXBlIik7CgogICAgICAgIHN0cmluZyByb29tSWQgPSBudWxsOwogICAgICAgIGlmIChIYXNQcm9wZXJ0eShkYXRhLCAiY2hhdEludGVncmF0aW9uIikgJiYgZGF0YS5jaGF0SW50ZWdyYXRpb24gIT0gbnVsbCkKICAgICAgICAgICAgcm9vbUlkID0gR2V0U3RyaW5nKGRhdGEuY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CgogICAgICAgIHZhciBtZW1iZXJzID0gbmV3IExpc3Q8b2JqZWN0PigpOwogICAgICAgIGlmIChIYXNQcm9wZXJ0eShkYXRhLCAibWVtYmVycyIpICYmIGRhdGEubWVtYmVycyAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgZm9yZWFjaCAodmFyIG0gaW4gZGF0YS5tZW1iZXJzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgbWlkID0gR2V0U3RyaW5nKG0sICJtZW1iZXJJZCIpID8/IEdldFN0cmluZyhtLCAiYWR2aXNvcklkIik7CiAgICAgICAgICAgICAgICB2YXIgcm9sZSA9IEdldFN0cmluZyhtLCAicm9sZSIpOwogICAgICAgICAgICAgICAgaWYgKG1pZCA9PSBvbGRBZHZpc29ySWQgJiYgcm9sZSA9PSAiYWR2aXNvciIgJiYgIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobmV3QWR2aXNvcklkKSkKICAgICAgICAgICAgICAgICAgICBtZW1iZXJzLkFkZChuZXcgeyBtZW1iZXJJZCA9IG5ld0Fkdmlzb3JJZC5UcmltKCksIHJvbGUgPSAiYWR2aXNvciIgfSk7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgbWVtYmVycy5BZGQobmV3IHsgbWVtYmVySWQgPSBtaWQsIHJvbGUgPSByb2xlIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB2YXIgbWVtYmVyV2l0aG91dEFycmF5ID0gQnVpbGRNZW1iZXJXaXRob3V0QXJyYXkobWVtYmVycyk7CgogICAgICAgIHJlc3VsdC5EYXRhID0gbmV3CiAgICAgICAgewogICAgICAgICAgICB1c2VyLAogICAgICAgICAgICBhZHZpc29yVHlwZSwKICAgICAgICAgICAgYWR2aXNvcklkID0gIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobmV3QWR2aXNvcklkKSA/IG5ld0Fkdmlzb3JJZC5UcmltKCkgOiBvbGRBZHZpc29ySWQsCiAgICAgICAgICAgIGNoYXRJbnRlZ3JhdGlvbiA9IG5ldyB7IHJvb21JZCB9LAogICAgICAgICAgICBtZW1iZXJzID0gbWVtYmVycywKICAgICAgICAgICAgbWVtYmVyV2l0aG91dEFycmF5ID0gbWVtYmVyV2l0aG91dEFycmF5LAogICAgICAgICAgICBwZW5kaW5nSm9pblVzZXJJZCA9IG5ld0Fkdmlzb3JJZAogICAgICAgIH07CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBCdWlsZE1lbWJlcldpdGhvdXRBcnJheShJRW51bWVyYWJsZTxvYmplY3Q+IG1lbWJlcnMpCiAgICB7CiAgICAgICAgdmFyIG1hcCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPigpOwogICAgICAgIGlmIChtZW1iZXJzID09IG51bGwpIHJldHVybiBtYXA7CiAgICAgICAgZm9yZWFjaCAoZHluYW1pYyBtIGluIG1lbWJlcnMpCiAgICAgICAgewogICAgICAgICAgICB0cnkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICAgICAgICB2YXIgbWlkID0gbS5tZW1iZXJJZD8uVG9TdHJpbmcoKSA/PyBtLmFkdmlzb3JJZD8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1pZCkpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgbWFwW21pZF0gPSBtLnJvbGU/LlRvU3RyaW5nKCkgPz8gIiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXA7CiAgICB9Cn0K"
363
519
  }
364
520
  },
365
521
  {
366
- "order": 3,
522
+ "order": 5,
523
+ "task": {
524
+ "domain": "morph-touch",
525
+ "flow": "sys-tasks",
526
+ "key": "start-register-matrix-user",
527
+ "version": "1.0.0"
528
+ },
529
+ "mapping": {
530
+ "location": "./src/RegisterForJoinUserToRoomMapping.csx",
531
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBNYXBwaW5nIGZvciBzdGFydC1yZWdpc3Rlci1tYXRyaXgtdXNlciBTdGFydFRhc2sgKFR5cGUgMTEpIGJlZm9yZSBqb2luLXVzZXItdG8tcm9vbS4KLy8vIFN0YXJ0cyByZWdpc3Rlci1tYXRyaXgtdXNlciBmbG93IHdpdGggbWF0cml4VXNlcm5hbWUgZnJvbSBwZW5kaW5nSm9pblVzZXJJZCAvIG5ld0Fkdmlzb3JJZCAvIGFkdmlzb3JJZC4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIFJlZ2lzdGVyRm9ySm9pblVzZXJUb1Jvb21NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBzdGFydFRhc2sgPSB0YXNrIGFzIFN0YXJ0VGFzazsKICAgICAgICBpZiAoc3RhcnRUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBTdGFydFRhc2siKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICB2YXIgam9pblVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInBlbmRpbmdKb2luVXNlcklkIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoam9pblVzZXIpKQogICAgICAgICAgICBqb2luVXNlciA9IEdldFN0cmluZyhkYXRhLCAibmV3QWR2aXNvcklkIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoam9pblVzZXIpKQogICAgICAgICAgICBqb2luVXNlciA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvcklkIik7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKGpvaW5Vc2VyKSkKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CgogICAgICAgIHZhciBtYXRyaXhVc2VybmFtZSA9IGpvaW5Vc2VyLlRyaW0oKTsKICAgICAgICBpZiAobWF0cml4VXNlcm5hbWUuU3RhcnRzV2l0aCgiQCIpKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGNvbG9uSWR4ID0gbWF0cml4VXNlcm5hbWUuSW5kZXhPZignOicpOwogICAgICAgICAgICBtYXRyaXhVc2VybmFtZSA9IGNvbG9uSWR4ID4gMCA/IG1hdHJpeFVzZXJuYW1lLlN1YnN0cmluZygxLCBjb2xvbklkeCAtIDEpIDogbWF0cml4VXNlcm5hbWUuU3Vic3RyaW5nKDEpOwogICAgICAgIH0KCiAgICAgICAgc3RhcnRUYXNrLlNldERvbWFpbigibW9ycGgtdG91Y2giKTsKICAgICAgICBzdGFydFRhc2suU2V0RmxvdygicmVnaXN0ZXItbWF0cml4LXVzZXIiKTsKICAgICAgICBzdGFydFRhc2suU2V0U3luYyh0cnVlKTsKICAgICAgICBzdGFydFRhc2suU2V0Qm9keShuZXcgeyBtYXRyaXhVc2VybmFtZSB9KTsKCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cg=="
532
+ }
533
+ },
534
+ {
535
+ "order": 6,
536
+ "task": {
537
+ "domain": "morph-touch",
538
+ "flow": "sys-tasks",
539
+ "key": "login-for-chat",
540
+ "version": "1.0.0"
541
+ },
542
+ "mapping": {
543
+ "location": "./src/LoginForJoinUserToRoomMapping.csx",
544
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgbG9naW4tZm9yLWNoYXQgd2hlbiB0aGUgbmV4dCBzdGVwIGlzIGpvaW4tdXNlci10by1yb29tLgovLy8gTG9ncyBpbiBhcyB0aGUgdXNlciB3aG8gd2lsbCBqb2luIHRoZSByb29tIChwZW5kaW5nSm9pblVzZXJJZCAvIG5ld0Fkdmlzb3JJZCAvIGFkdmlzb3JJZCkuCi8vLyBTdG9yZXMgYWNjZXNzX3Rva2VuIGluIGNoYXRJbnRlZ3JhdGlvbi5qb2luU2Vzc2lvbklkIHNvIEpvaW5Vc2VyVG9Sb29tTWFwcGluZwovLy8gdXNlcyB0aGUgY29ycmVjdCB0b2tlbiB3aXRob3V0IG92ZXJ3cml0aW5nIHRoZSByb29tLW93bmVyJ3Mgc2Vzc2lvbklkLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgTG9naW5Gb3JKb2luVXNlclRvUm9vbU1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgYXN5bmMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGh0dHBUYXNrID0gdGFzayBhcyBIdHRwVGFzazsKICAgICAgICBpZiAoaHR0cFRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhbiBIdHRwVGFzayIpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgIHZhciBqb2luVXNlciA9IEdldFN0cmluZyhkYXRhLCAicGVuZGluZ0pvaW5Vc2VySWQiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShqb2luVXNlcikpCiAgICAgICAgICAgIGpvaW5Vc2VyID0gR2V0U3RyaW5nKGRhdGEsICJuZXdBZHZpc29ySWQiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShqb2luVXNlcikpCiAgICAgICAgICAgIGpvaW5Vc2VyID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29ySWQiKTsKCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoam9pblVzZXIpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBsb2dpblVzZXJuYW1lID0gam9pblVzZXIuVHJpbSgpOwogICAgICAgIGlmIChsb2dpblVzZXJuYW1lLlN0YXJ0c1dpdGgoIkAiKSkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBjb2xvbklkeCA9IGxvZ2luVXNlcm5hbWUuSW5kZXhPZignOicpOwogICAgICAgICAgICBsb2dpblVzZXJuYW1lID0gY29sb25JZHggPiAwID8gbG9naW5Vc2VybmFtZS5TdWJzdHJpbmcoMSwgY29sb25JZHggLSAxKSA6IGxvZ2luVXNlcm5hbWUuU3Vic3RyaW5nKDEpOwogICAgICAgIH0KCiAgICAgICAgdmFyIHNlY3JldE5hbWUgPSBHZXRDb25maWdWYWx1ZSgiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHNlY3JldE5hbWUpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSBjb25maWd1cmF0aW9uIGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBtYXRyaXhCYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoc2VjcmV0TmFtZSwgIndvcmtmbG93LXNlY3JldCIsICJNYXRyaXhCYXNlVXJsIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobWF0cml4QmFzZVVybCkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJNYXRyaXhCYXNlVXJsIHNlY3JldCBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgc3luYXBzZVBhc3N3b3JkID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoc2VjcmV0TmFtZSwgIndvcmtmbG93LXNlY3JldCIsICJTeW5hcHNlUGFzc3dvcmQiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzeW5hcHNlUGFzc3dvcmQpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiU3luYXBzZVBhc3N3b3JkIHNlY3JldCBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9sb2dpbiI7CiAgICAgICAgaHR0cFRhc2suU2V0VXJsKGZ1bGxVcmwpOwoKICAgICAgICBodHRwVGFzay5TZXRIZWFkZXJzKG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIH0pOwoKICAgICAgICBodHRwVGFzay5TZXRCb2R5KG5ldwogICAgICAgIHsKICAgICAgICAgICAgdHlwZSA9ICJtLmxvZ2luLnBhc3N3b3JkIiwKICAgICAgICAgICAgaWRlbnRpZmllciA9IG5ldyB7IHR5cGUgPSAibS5pZC51c2VyIiwgdXNlciA9IGxvZ2luVXNlcm5hbWUgfSwKICAgICAgICAgICAgcGFzc3dvcmQgPSBzeW5hcHNlUGFzc3dvcmQKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciByZXN1bHQgPSBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgICAgICB2YXIgcmVzcG9uc2UgPSBjb250ZXh0LkJvZHk7CiAgICAgICAgdmFyIGluc3RhbmNlRGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgIHN0cmluZyBleGlzdGluZ1Nlc3Npb25JZCA9IG51bGw7CiAgICAgICAgc3RyaW5nIGV4aXN0aW5nVXNlcklkID0gbnVsbDsKICAgICAgICBzdHJpbmcgZXhpc3RpbmdVc2VybmFtZSA9IG51bGw7CiAgICAgICAgc3RyaW5nIGV4aXN0aW5nUm9vbUlkID0gbnVsbDsKICAgICAgICBpZiAoaW5zdGFuY2VEYXRhICE9IG51bGwgJiYgSGFzUHJvcGVydHkoaW5zdGFuY2VEYXRhLCAiY2hhdEludGVncmF0aW9uIikgJiYgaW5zdGFuY2VEYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgZXhpc3RpbmdTZXNzaW9uSWQgPSBHZXRTdHJpbmcoaW5zdGFuY2VEYXRhLmNoYXRJbnRlZ3JhdGlvbiwgInNlc3Npb25JZCIpOwogICAgICAgICAgICBleGlzdGluZ1VzZXJJZCA9IEdldFN0cmluZyhpbnN0YW5jZURhdGEuY2hhdEludGVncmF0aW9uLCAidXNlcklkIik7CiAgICAgICAgICAgIGV4aXN0aW5nVXNlcm5hbWUgPSBHZXRTdHJpbmcoaW5zdGFuY2VEYXRhLmNoYXRJbnRlZ3JhdGlvbiwgInVzZXJuYW1lIik7CiAgICAgICAgICAgIGV4aXN0aW5nUm9vbUlkID0gR2V0U3RyaW5nKGluc3RhbmNlRGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKICAgICAgICB9CgogICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzID09IHRydWUpCiAgICAgICAgewogICAgICAgICAgICBkeW5hbWljIGRhdGEgPSByZXNwb25zZS5kYXRhOwogICAgICAgICAgICBzdHJpbmcgam9pblNlc3Npb25JZCA9IEdldFN0cmluZyhkYXRhLCAiYWNjZXNzX3Rva2VuIik7CgogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzZXNzaW9uSWQgPSBleGlzdGluZ1Nlc3Npb25JZCwKICAgICAgICAgICAgICAgICAgICB1c2VySWQgPSBleGlzdGluZ1VzZXJJZCwKICAgICAgICAgICAgICAgICAgICB1c2VybmFtZSA9IGV4aXN0aW5nVXNlcm5hbWUsCiAgICAgICAgICAgICAgICAgICAgcm9vbUlkID0gZXhpc3RpbmdSb29tSWQsCiAgICAgICAgICAgICAgICAgICAgam9pblNlc3Npb25JZCwKICAgICAgICAgICAgICAgICAgICBlcnJvciA9IChzdHJpbmcpbnVsbCwKICAgICAgICAgICAgICAgICAgICBlcnJvckNvZGUgPSAoc3RyaW5nKW51bGwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgc3RyaW5nIGVycm9yTWVzc2FnZSA9IHJlc3BvbnNlPy5lcnJvck1lc3NhZ2U/LlRvU3RyaW5nKCkgPz8gIkpvaW4gdXNlciBsb2dpbiBmYWlsZWQiOwogICAgICAgICAgICBzdHJpbmcgc3RhdHVzQ29kZSA9IHJlc3BvbnNlPy5zdGF0dXNDb2RlICE9IG51bGwgPyByZXNwb25zZS5zdGF0dXNDb2RlLlRvU3RyaW5nKCkgOiBudWxsOwogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzZXNzaW9uSWQgPSBleGlzdGluZ1Nlc3Npb25JZCwKICAgICAgICAgICAgICAgICAgICB1c2VySWQgPSBleGlzdGluZ1VzZXJJZCwKICAgICAgICAgICAgICAgICAgICB1c2VybmFtZSA9IGV4aXN0aW5nVXNlcm5hbWUsCiAgICAgICAgICAgICAgICAgICAgcm9vbUlkID0gZXhpc3RpbmdSb29tSWQsCiAgICAgICAgICAgICAgICAgICAgam9pblNlc3Npb25JZCA9IChzdHJpbmcpbnVsbCwKICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGVycm9yTWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICBlcnJvckNvZGUgPSBzdGF0dXNDb2RlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHJlc3VsdCk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0K"
545
+ }
546
+ },
547
+ {
548
+ "order": 7,
367
549
  "task": {
368
550
  "domain": "morph-touch",
369
551
  "flow": "sys-tasks",
@@ -372,7 +554,7 @@
372
554
  },
373
555
  "mapping": {
374
556
  "location": "./src/JoinUserToRoomMapping.csx",
375
- "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gR2VuZXJpYyBtYXBwaW5nIGZvciBqb2luLXVzZXItdG8tcm9vbSBIdHRwVGFzayAoVHlwZSA2KS4KLy8vIEF1dG8tam9pbnMgdGhlIHVzZXIgc3BlY2lmaWVkIGluIGluc3RhbmNlRGF0YS5wZW5kaW5nSm9pblVzZXJJZCB0byB0aGUgcm9vbS4KLy8vIFgtTWF0cml4LVVzZXIgaXMgc2V0IHRvIHRoZSBqb2luaW5nIHVzZXIgc28gQVBJU0lYIGF1dGhlbnRpY2F0ZXMgYXMgdGhhdCB1c2VyLgovLy8gVXNlZCBhZnRlciBpbnZpdGUgaW46IHJvb20gY3JlYXRpb24gKG9uRW50cnkpLCB1cGRhdGUgKGFkZCBtZW1iZXIpLCB0cmFuc2ZlciB0cmFuc2l0aW9ucy4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIEpvaW5Vc2VyVG9Sb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIHBlbmRpbmdKb2luVXNlcklkID0gR2V0U3RyaW5nKGRhdGEsICJwZW5kaW5nSm9pblVzZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld0Fkdmlzb3JJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyb29tSWQpIHx8IHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UocGVuZGluZ0pvaW5Vc2VySWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBzZWNyZXROYW1lID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZWNyZXROYW1lKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgbWF0cml4QmFzZVVybCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9qb2luLyIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhyb29tSWQpOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIHhNYXRyaXhVc2VyID0gcGVuZGluZ0pvaW5Vc2VySWQuVHJpbSgpOwogICAgICAgIGlmICh4TWF0cml4VXNlci5TdGFydHNXaXRoKCJAIikpCiAgICAgICAgewogICAgICAgICAgICB2YXIgY29sb25JZHggPSB4TWF0cml4VXNlci5JbmRleE9mKCc6Jyk7CiAgICAgICAgICAgIHhNYXRyaXhVc2VyID0gY29sb25JZHggPiAwID8geE1hdHJpeFVzZXIuU3Vic3RyaW5nKDEsIGNvbG9uSWR4IC0gMSkgOiB4TWF0cml4VXNlci5TdWJzdHJpbmcoMSk7CiAgICAgICAgfQoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB4TWF0cml4VXNlcgogICAgICAgIH07CiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhoZWFkZXJzKTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShuZXcgeyB9KTsKCiAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBhZHZpc29yVHlwZSA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvclR5cGUiKTsKICAgICAgICB2YXIgYWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29ySWQiKTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIG1lbWJlcnMgPSBuZXcgTGlzdDxvYmplY3Q+KCk7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJtZW1iZXJzIikgJiYgZGF0YS5tZW1iZXJzICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBmb3JlYWNoICh2YXIgbSBpbiBkYXRhLm1lbWJlcnMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBtaWQgPSBHZXRTdHJpbmcobSwgIm1lbWJlcklkIikgPz8gR2V0U3RyaW5nKG0sICJhZHZpc29ySWQiKTsKICAgICAgICAgICAgICAgIG1lbWJlcnMuQWRkKG5ldyB7IG1lbWJlcklkID0gbWlkLCByb2xlID0gR2V0U3RyaW5nKG0sICJyb2xlIikgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciByb29tVHlwZSA9IEdldFN0cmluZyhkYXRhLCAicm9vbVR5cGUiKTsKICAgICAgICB2YXIgc3RhcnREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgIHZhciBlbmREYXRlVGltZSA9IEdldFN0cmluZyhkYXRhLCAiZW5kRGF0ZVRpbWUiKTsKCiAgICAgICAgdmFyIG1lbWJlcldpdGhvdXRBcnJheSA9IEJ1aWxkTWVtYmVyV2l0aG91dEFycmF5KG1lbWJlcnMpOwoKICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgIHsKICAgICAgICAgICAgdXNlciwKICAgICAgICAgICAgYWR2aXNvclR5cGUsCiAgICAgICAgICAgIGFkdmlzb3JJZCwKICAgICAgICAgICAgY2hhdEludGVncmF0aW9uID0gbmV3IHsgcm9vbUlkIH0sCiAgICAgICAgICAgIHJvb21UeXBlLAogICAgICAgICAgICBzdGFydERhdGVUaW1lLAogICAgICAgICAgICBlbmREYXRlVGltZSwKICAgICAgICAgICAgbWVtYmVycyA9IG1lbWJlcnMsCiAgICAgICAgICAgIG1lbWJlcldpdGhvdXRBcnJheSA9IG1lbWJlcldpdGhvdXRBcnJheQogICAgICAgIH07CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPiBCdWlsZE1lbWJlcldpdGhvdXRBcnJheShJRW51bWVyYWJsZTxvYmplY3Q+IG1lbWJlcnMpCiAgICB7CiAgICAgICAgdmFyIG1hcCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPigpOwogICAgICAgIGlmIChtZW1iZXJzID09IG51bGwpIHJldHVybiBtYXA7CiAgICAgICAgZm9yZWFjaCAoZHluYW1pYyBtIGluIG1lbWJlcnMpCiAgICAgICAgewogICAgICAgICAgICB0cnkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICAgICAgICB2YXIgbWlkID0gbS5tZW1iZXJJZD8uVG9TdHJpbmcoKSA/PyBtLmFkdmlzb3JJZD8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1pZCkpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgbWFwW21pZF0gPSBtLnJvbGU/LlRvU3RyaW5nKCkgPz8gIiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXA7CiAgICB9Cn0K"
557
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gR2VuZXJpYyBtYXBwaW5nIGZvciBqb2luLXVzZXItdG8tcm9vbSBIdHRwVGFzayAoVHlwZSA2KS4KLy8vIEF1dG8tam9pbnMgdGhlIHVzZXIgc3BlY2lmaWVkIGluIGluc3RhbmNlRGF0YS5wZW5kaW5nSm9pblVzZXJJZCB0byB0aGUgcm9vbS4KLy8vIFgtTWF0cml4LVVzZXIgaXMgc2V0IHRvIHRoZSBqb2luaW5nIHVzZXIgc28gQVBJU0lYIGF1dGhlbnRpY2F0ZXMgYXMgdGhhdCB1c2VyLgovLy8gVXNlZCBhZnRlciBpbnZpdGUgaW46IHJvb20gY3JlYXRpb24gKG9uRW50cnkpLCB1cGRhdGUgKGFkZCBtZW1iZXIpLCB0cmFuc2ZlciB0cmFuc2l0aW9ucy4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIEpvaW5Vc2VyVG9Sb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICByb29tSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgdmFyIHBlbmRpbmdKb2luVXNlcklkID0gR2V0U3RyaW5nKGRhdGEsICJwZW5kaW5nSm9pblVzZXJJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgIm5ld0Fkdmlzb3JJZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHBlbmRpbmdKb2luVXNlcklkKSkKICAgICAgICAgICAgcGVuZGluZ0pvaW5Vc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JJZCIpOwoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyb29tSWQpIHx8IHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UocGVuZGluZ0pvaW5Vc2VySWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHZhciBzZWNyZXROYW1lID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZWNyZXROYW1lKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgbWF0cml4QmFzZVVybCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTWF0cml4QmFzZVVybCBzZWNyZXQgaXMgcmVxdWlyZWQiKTsKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9qb2luLyIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhyb29tSWQpOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIHhNYXRyaXhVc2VyID0gcGVuZGluZ0pvaW5Vc2VySWQuVHJpbSgpOwogICAgICAgIGlmICh4TWF0cml4VXNlci5TdGFydHNXaXRoKCJAIikpCiAgICAgICAgewogICAgICAgICAgICB2YXIgY29sb25JZHggPSB4TWF0cml4VXNlci5JbmRleE9mKCc6Jyk7CiAgICAgICAgICAgIHhNYXRyaXhVc2VyID0gY29sb25JZHggPiAwID8geE1hdHJpeFVzZXIuU3Vic3RyaW5nKDEsIGNvbG9uSWR4IC0gMSkgOiB4TWF0cml4VXNlci5TdWJzdHJpbmcoMSk7CiAgICAgICAgfQoKICAgICAgICBzdHJpbmcgam9pblNlc3Npb25JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICBqb2luU2Vzc2lvbklkID0gR2V0U3RyaW5nKGRhdGEuY2hhdEludGVncmF0aW9uLCAiam9pblNlc3Npb25JZCIpOwoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB4TWF0cml4VXNlcgogICAgICAgIH07CiAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKGpvaW5TZXNzaW9uSWQpKQogICAgICAgICAgICBoZWFkZXJzWyJBdXRob3JpemF0aW9uIl0gPSAiQmVhcmVyICIgKyBqb2luU2Vzc2lvbklkOwogICAgICAgIGh0dHBUYXNrLlNldEhlYWRlcnMoaGVhZGVycyk7CgogICAgICAgIGh0dHBUYXNrLlNldEJvZHkobmV3IHsgfSk7CgogICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgdmFyIHVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXIiKTsKICAgICAgICB2YXIgYWR2aXNvclR5cGUgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JUeXBlIik7CiAgICAgICAgdmFyIGFkdmlzb3JJZCA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvcklkIik7CgogICAgICAgIHN0cmluZyByb29tSWQgPSBudWxsOwogICAgICAgIGlmIChIYXNQcm9wZXJ0eShkYXRhLCAiY2hhdEludGVncmF0aW9uIikgJiYgZGF0YS5jaGF0SW50ZWdyYXRpb24gIT0gbnVsbCkKICAgICAgICAgICAgcm9vbUlkID0gR2V0U3RyaW5nKGRhdGEuY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CgogICAgICAgIHZhciBtZW1iZXJzID0gbmV3IExpc3Q8b2JqZWN0PigpOwogICAgICAgIGlmIChIYXNQcm9wZXJ0eShkYXRhLCAibWVtYmVycyIpICYmIGRhdGEubWVtYmVycyAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgZm9yZWFjaCAodmFyIG0gaW4gZGF0YS5tZW1iZXJzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgbWlkID0gR2V0U3RyaW5nKG0sICJtZW1iZXJJZCIpID8/IEdldFN0cmluZyhtLCAiYWR2aXNvcklkIik7CiAgICAgICAgICAgICAgICBtZW1iZXJzLkFkZChuZXcgeyBtZW1iZXJJZCA9IG1pZCwgcm9sZSA9IEdldFN0cmluZyhtLCAicm9sZSIpIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB2YXIgcm9vbVR5cGUgPSBHZXRTdHJpbmcoZGF0YSwgInJvb21UeXBlIik7CiAgICAgICAgdmFyIHN0YXJ0RGF0ZVRpbWUgPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICB2YXIgZW5kRGF0ZVRpbWUgPSBHZXRTdHJpbmcoZGF0YSwgImVuZERhdGVUaW1lIik7CgogICAgICAgIHZhciBtZW1iZXJXaXRob3V0QXJyYXkgPSBCdWlsZE1lbWJlcldpdGhvdXRBcnJheShtZW1iZXJzKTsKCiAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICB7CiAgICAgICAgICAgIHVzZXIsCiAgICAgICAgICAgIGFkdmlzb3JUeXBlLAogICAgICAgICAgICBhZHZpc29ySWQsCiAgICAgICAgICAgIGNoYXRJbnRlZ3JhdGlvbiA9IG5ldyB7IHJvb21JZCB9LAogICAgICAgICAgICByb29tVHlwZSwKICAgICAgICAgICAgc3RhcnREYXRlVGltZSwKICAgICAgICAgICAgZW5kRGF0ZVRpbWUsCiAgICAgICAgICAgIG1lbWJlcnMgPSBtZW1iZXJzLAogICAgICAgICAgICBtZW1iZXJXaXRob3V0QXJyYXkgPSBtZW1iZXJXaXRob3V0QXJyYXkKICAgICAgICB9OwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHJlc3VsdCk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gQnVpbGRNZW1iZXJXaXRob3V0QXJyYXkoSUVudW1lcmFibGU8b2JqZWN0PiBtZW1iZXJzKQogICAgewogICAgICAgIHZhciBtYXAgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4oKTsKICAgICAgICBpZiAobWVtYmVycyA9PSBudWxsKSByZXR1cm4gbWFwOwogICAgICAgIGZvcmVhY2ggKGR5bmFtaWMgbSBpbiBtZW1iZXJzKQogICAgICAgIHsKICAgICAgICAgICAgdHJ5CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChtID09IG51bGwpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgdmFyIG1pZCA9IG0ubWVtYmVySWQ/LlRvU3RyaW5nKCkgPz8gbS5hZHZpc29ySWQ/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtaWQpKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIG1hcFttaWRdID0gbS5yb2xlPy5Ub1N0cmluZygpID8/ICIiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoIHsgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbWFwOwogICAgfQp9Cg=="
376
558
  }
377
559
  }
378
560
  ]