{
 "type": "excalidraw",
 "version": 2,
 "source": "arche-docs",
 "elements": [
  {
   "id": "hdr_master",
   "type": "text",
   "x": 60,
   "y": 10,
   "width": 422.4,
   "height": 40.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 424242,
   "version": 1,
   "versionNonce": 424243,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "arche::oidc \u2014 diagrams",
   "originalText": "arche::oidc \u2014 diagrams",
   "fontSize": 32,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 32
  },
  {
   "id": "hdr_e2e",
   "type": "text",
   "x": 60,
   "y": 70,
   "width": 673.1999999999999,
   "height": 27.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 424242,
   "version": 1,
   "versionNonce": 424243,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "\u2460 Runtime \u2014 the server login journey (band by band)",
   "originalText": "\u2460 Runtime \u2014 the server login journey (band by band)",
   "fontSize": 22,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 22
  },
  {
   "id": "hdr_uml",
   "type": "text",
   "x": 1871,
   "y": 70,
   "width": 607.1999999999999,
   "height": 27.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 424242,
   "version": 1,
   "versionNonce": 424243,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "\u2461 Static \u2014 types, traits & who implements what",
   "originalText": "\u2461 Static \u2014 types, traits & who implements what",
   "fontSize": 22,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 22
  },
  {
   "id": "e_lbl-1001",
   "type": "text",
   "x": 60,
   "y": 120,
   "width": 1076.3999999999999,
   "height": 32.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1001,
   "version": 1,
   "versionNonce": 1008,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "arche::oidc::server \u2014 end to end, from the library user's perspective",
   "originalText": "arche::oidc::server \u2014 end to end, from the library user's perspective",
   "fontSize": 26,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 26
  },
  {
   "id": "e_lbl-1002",
   "type": "text",
   "x": 60,
   "y": 190,
   "width": 300.0,
   "height": 25.0,
   "angle": 0,
   "strokeColor": "#1971c2",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1002,
   "version": 1,
   "versionNonce": 1009,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "\u2460 BOOT \u2014 once, at startup",
   "originalText": "\u2460 BOOT \u2014 once, at startup",
   "fontSize": 20,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 20
  },
  {
   "id": "e_rect-1003",
   "type": "rectangle",
   "x": 60,
   "y": 235,
   "width": 270,
   "height": 80,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffec99",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1004,
   "version": 1,
   "versionNonce": 1011,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "e_text-1004",
     "type": "text"
    },
    {
     "id": "e_arr-1013",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_text-1004",
   "type": "text",
   "x": 70,
   "y": 245,
   "width": 250,
   "height": 35.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1004,
   "version": 1,
   "versionNonce": 1011,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "SigningKey::from_pem(kid, pem)\nor your TokenSigner (KMS)",
   "originalText": "SigningKey::from_pem(kid, pem)\nor your TokenSigner (KMS)",
   "fontSize": 14,
   "fontFamily": 3,
   "textAlign": "center",
   "verticalAlign": "middle",
   "containerId": "e_rect-1003",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_rect-1005",
   "type": "rectangle",
   "x": 360,
   "y": 235,
   "width": 270,
   "height": 80,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffec99",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1006,
   "version": 1,
   "versionNonce": 1013,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "e_text-1006",
     "type": "text"
    },
    {
     "id": "e_arr-1014",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_text-1006",
   "type": "text",
   "x": 370,
   "y": 245,
   "width": 250,
   "height": 35.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1006,
   "version": 1,
   "versionNonce": 1013,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "your ClientRegistry impl\n(static list / DB / config)",
   "originalText": "your ClientRegistry impl\n(static list / DB / config)",
   "fontSize": 14,
   "fontFamily": 3,
   "textAlign": "center",
   "verticalAlign": "middle",
   "containerId": "e_rect-1005",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_rect-1007",
   "type": "rectangle",
   "x": 660,
   "y": 235,
   "width": 270,
   "height": 80,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffec99",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1008,
   "version": 1,
   "versionNonce": 1015,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "e_text-1008",
     "type": "text"
    },
    {
     "id": "e_arr-1015",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_text-1008",
   "type": "text",
   "x": 670,
   "y": 245,
   "width": 250,
   "height": 35.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1008,
   "version": 1,
   "versionNonce": 1015,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "your CodeStore impl\n(in-mem / Redis GETDEL / PG)",
   "originalText": "your CodeStore impl\n(in-mem / Redis GETDEL / PG)",
   "fontSize": 14,
   "fontFamily": 3,
   "textAlign": "center",
   "verticalAlign": "middle",
   "containerId": "e_rect-1007",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_rect-1009",
   "type": "rectangle",
   "x": 960,
   "y": 235,
   "width": 270,
   "height": 80,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffec99",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1010,
   "version": 1,
   "versionNonce": 1017,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "e_text-1010",
     "type": "text"
    },
    {
     "id": "e_arr-1016",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_text-1010",
   "type": "text",
   "x": 970,
   "y": 245,
   "width": 250,
   "height": 35.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1010,
   "version": 1,
   "versionNonce": 1017,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "your AccessTokenIssuer impl\n(opaque / JWT / stored)",
   "originalText": "your AccessTokenIssuer impl\n(opaque / JWT / stored)",
   "fontSize": 14,
   "fontFamily": 3,
   "textAlign": "center",
   "verticalAlign": "middle",
   "containerId": "e_rect-1009",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_rect-1011",
   "type": "rectangle",
   "x": 360,
   "y": 380,
   "width": 570,
   "height": 75,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#a5d8ff",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1012,
   "version": 1,
   "versionNonce": 1019,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "e_text-1012",
     "type": "text"
    },
    {
     "id": "e_arr-1013",
     "type": "arrow"
    },
    {
     "id": "e_arr-1014",
     "type": "arrow"
    },
    {
     "id": "e_arr-1015",
     "type": "arrow"
    },
    {
     "id": "e_arr-1016",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_text-1012",
   "type": "text",
   "x": 370,
   "y": 390,
   "width": 550,
   "height": 35.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1012,
   "version": 1,
   "versionNonce": 1019,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "OidcServer::new(config, clients, signer, access, store)\n\u2192 app state (cheap to clone)",
   "originalText": "OidcServer::new(config, clients, signer, access, store)\n\u2192 app state (cheap to clone)",
   "fontSize": 14,
   "fontFamily": 3,
   "textAlign": "center",
   "verticalAlign": "middle",
   "containerId": "e_rect-1011",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_arr-1013",
   "type": "arrow",
   "x": 195.0,
   "y": 315,
   "width": 205.0,
   "height": 65,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1013,
   "version": 1,
   "versionNonce": 1020,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     205.0,
     65
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "e_rect-1003",
    "focus": 0,
    "gap": 4
   },
   "endBinding": {
    "elementId": "e_rect-1011",
    "focus": 0,
    "gap": 4
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "e_arr-1014",
   "type": "arrow",
   "x": 495.0,
   "y": 315,
   "width": 0.0,
   "height": 65,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1014,
   "version": 1,
   "versionNonce": 1021,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     0.0,
     65
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "e_rect-1005",
    "focus": 0,
    "gap": 4
   },
   "endBinding": {
    "elementId": "e_rect-1011",
    "focus": 0,
    "gap": 4
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "e_arr-1015",
   "type": "arrow",
   "x": 795.0,
   "y": 315,
   "width": 0.0,
   "height": 65,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1015,
   "version": 1,
   "versionNonce": 1022,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     0.0,
     65
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "e_rect-1007",
    "focus": 0,
    "gap": 4
   },
   "endBinding": {
    "elementId": "e_rect-1011",
    "focus": 0,
    "gap": 4
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "e_arr-1016",
   "type": "arrow",
   "x": 1095.0,
   "y": 315,
   "width": -205.0,
   "height": 65,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1016,
   "version": 1,
   "versionNonce": 1023,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     -205.0,
     65
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "e_rect-1009",
    "focus": 0,
    "gap": 4
   },
   "endBinding": {
    "elementId": "e_rect-1011",
    "focus": 0,
    "gap": 4
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "e_lbl-1017",
   "type": "text",
   "x": 60,
   "y": 510,
   "width": 408.0,
   "height": 25.0,
   "angle": 0,
   "strokeColor": "#1971c2",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1017,
   "version": 1,
   "versionNonce": 1024,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "\u2461 PARTNER SETUP \u2014 once per partner",
   "originalText": "\u2461 PARTNER SETUP \u2014 once per partner",
   "fontSize": 20,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 20
  },
  {
   "id": "e_rect-1018",
   "type": "rectangle",
   "x": 60,
   "y": 555,
   "width": 330,
   "height": 75,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#e9ecef",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1019,
   "version": 1,
   "versionNonce": 1026,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "e_text-1019",
     "type": "text"
    },
    {
     "id": "e_arr-1022",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_text-1019",
   "type": "text",
   "x": 70,
   "y": 565,
   "width": 310,
   "height": 35.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1019,
   "version": 1,
   "versionNonce": 1026,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Partner fetches\nGET /.well-known/openid-configuration",
   "originalText": "Partner fetches\nGET /.well-known/openid-configuration",
   "fontSize": 14,
   "fontFamily": 3,
   "textAlign": "center",
   "verticalAlign": "middle",
   "containerId": "e_rect-1018",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_rect-1020",
   "type": "rectangle",
   "x": 480,
   "y": 555,
   "width": 470,
   "height": 75,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#a5d8ff",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1021,
   "version": 1,
   "versionNonce": 1028,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "e_text-1021",
     "type": "text"
    },
    {
     "id": "e_arr-1022",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_text-1021",
   "type": "text",
   "x": 490,
   "y": 565,
   "width": 450,
   "height": 35.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1021,
   "version": 1,
   "versionNonce": 1028,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "You: Json(DiscoveryDocument::standard(issuer))\noverride endpoints + scopes to match your routes",
   "originalText": "You: Json(DiscoveryDocument::standard(issuer))\noverride endpoints + scopes to match your routes",
   "fontSize": 14,
   "fontFamily": 3,
   "textAlign": "center",
   "verticalAlign": "middle",
   "containerId": "e_rect-1020",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_arr-1022",
   "type": "arrow",
   "x": 390,
   "y": 592.5,
   "width": 90,
   "height": 0.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1022,
   "version": 1,
   "versionNonce": 1029,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     90,
     0.0
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "e_rect-1018",
    "focus": 0,
    "gap": 4
   },
   "endBinding": {
    "elementId": "e_rect-1020",
    "focus": 0,
    "gap": 4
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "e_lbl-1023",
   "type": "text",
   "x": 60,
   "y": 685,
   "width": 732.0,
   "height": 25.0,
   "angle": 0,
   "strokeColor": "#1971c2",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1023,
   "version": 1,
   "versionNonce": 1030,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "\u2462 EVERY LOGIN \u2014 GET /authorize (browser arrives from partner)",
   "originalText": "\u2462 EVERY LOGIN \u2014 GET /authorize (browser arrives from partner)",
   "fontSize": 20,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 20
  },
  {
   "id": "e_rect-1024",
   "type": "rectangle",
   "x": 60,
   "y": 730,
   "width": 250,
   "height": 70,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#e9ecef",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1025,
   "version": 1,
   "versionNonce": 1032,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "e_text-1025",
     "type": "text"
    },
    {
     "id": "e_arr-1034",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_text-1025",
   "type": "text",
   "x": 70,
   "y": 740,
   "width": 230,
   "height": 17.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1025,
   "version": 1,
   "versionNonce": 1032,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Query<AuthorizeParams>",
   "originalText": "Query<AuthorizeParams>",
   "fontSize": 14,
   "fontFamily": 3,
   "textAlign": "center",
   "verticalAlign": "middle",
   "containerId": "e_rect-1024",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_rect-1026",
   "type": "rectangle",
   "x": 380,
   "y": 730,
   "width": 330,
   "height": 70,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#a5d8ff",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1027,
   "version": 1,
   "versionNonce": 1034,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "e_text-1027",
     "type": "text"
    },
    {
     "id": "e_arr-1034",
     "type": "arrow"
    },
    {
     "id": "e_arr-1035",
     "type": "arrow"
    },
    {
     "id": "e_arr-1037",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_text-1027",
   "type": "text",
   "x": 390,
   "y": 740,
   "width": 310,
   "height": 35.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1027,
   "version": 1,
   "versionNonce": 1034,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "server\n.validate_authorize(&params).await",
   "originalText": "server\n.validate_authorize(&params).await",
   "fontSize": 14,
   "fontFamily": 3,
   "textAlign": "center",
   "verticalAlign": "middle",
   "containerId": "e_rect-1026",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_rect-1028",
   "type": "rectangle",
   "x": 800,
   "y": 730,
   "width": 430,
   "height": 85,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffc9c9",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1029,
   "version": 1,
   "versionNonce": 1036,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "e_text-1029",
     "type": "text"
    },
    {
     "id": "e_arr-1035",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_text-1029",
   "type": "text",
   "x": 810,
   "y": 740,
   "width": 410,
   "height": 35.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1029,
   "version": 1,
   "versionNonce": 1036,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Err + redirectable() \u2192 302 e.redirect_url(uri, state)\nErr otherwise \u2192 400 on YOUR page, never redirect",
   "originalText": "Err + redirectable() \u2192 302 e.redirect_url(uri, state)\nErr otherwise \u2192 400 on YOUR page, never redirect",
   "fontSize": 14,
   "fontFamily": 3,
   "textAlign": "center",
   "verticalAlign": "middle",
   "containerId": "e_rect-1028",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_rect-1030",
   "type": "rectangle",
   "x": 380,
   "y": 865,
   "width": 330,
   "height": 90,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#b2f2bb",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1031,
   "version": 1,
   "versionNonce": 1038,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "e_text-1031",
     "type": "text"
    },
    {
     "id": "e_arr-1037",
     "type": "arrow"
    },
    {
     "id": "e_arr-1039",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_text-1031",
   "type": "text",
   "x": 390,
   "y": 875,
   "width": 310,
   "height": 52.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1031,
   "version": 1,
   "versionNonce": 1038,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "YOUR login flow\nsession? prompt=none? max_age?\nstash validated \u2192 /login \u2192 resume",
   "originalText": "YOUR login flow\nsession? prompt=none? max_age?\nstash validated \u2192 /login \u2192 resume",
   "fontSize": 14,
   "fontFamily": 3,
   "textAlign": "center",
   "verticalAlign": "middle",
   "containerId": "e_rect-1030",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_rect-1032",
   "type": "rectangle",
   "x": 800,
   "y": 865,
   "width": 430,
   "height": 90,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#a5d8ff",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1033,
   "version": 1,
   "versionNonce": 1040,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "e_text-1033",
     "type": "text"
    },
    {
     "id": "e_arr-1039",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_text-1033",
   "type": "text",
   "x": 810,
   "y": 875,
   "width": 410,
   "height": 35.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1033,
   "version": 1,
   "versionNonce": 1040,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "server.issue_code(validated, sub, claims).await\n\u2192 302 redirect_uri?code=...&state=...",
   "originalText": "server.issue_code(validated, sub, claims).await\n\u2192 302 redirect_uri?code=...&state=...",
   "fontSize": 14,
   "fontFamily": 3,
   "textAlign": "center",
   "verticalAlign": "middle",
   "containerId": "e_rect-1032",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_arr-1034",
   "type": "arrow",
   "x": 310,
   "y": 765.0,
   "width": 70,
   "height": 0.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1034,
   "version": 1,
   "versionNonce": 1041,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     70,
     0.0
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "e_rect-1024",
    "focus": 0,
    "gap": 4
   },
   "endBinding": {
    "elementId": "e_rect-1026",
    "focus": 0,
    "gap": 4
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "e_arr-1035",
   "type": "arrow",
   "x": 710,
   "y": 765.0,
   "width": 90,
   "height": 7.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1035,
   "version": 1,
   "versionNonce": 1042,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     90,
     7.5
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "e_rect-1026",
    "focus": 0,
    "gap": 4
   },
   "endBinding": {
    "elementId": "e_rect-1028",
    "focus": 0,
    "gap": 4
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "e_lbl-1036",
   "type": "text",
   "x": 743.0,
   "y": 748.75,
   "width": 23.4,
   "height": 16.25,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1036,
   "version": 1,
   "versionNonce": 1043,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Err",
   "originalText": "Err",
   "fontSize": 13,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "e_arr-1037",
   "type": "arrow",
   "x": 545.0,
   "y": 800,
   "width": 0.0,
   "height": 65,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1037,
   "version": 1,
   "versionNonce": 1044,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     0.0,
     65
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "e_rect-1026",
    "focus": 0,
    "gap": 4
   },
   "endBinding": {
    "elementId": "e_rect-1030",
    "focus": 0,
    "gap": 4
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "e_lbl-1038",
   "type": "text",
   "x": 493.0,
   "y": 812.5,
   "width": 101.39999999999999,
   "height": 16.25,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1038,
   "version": 1,
   "versionNonce": 1045,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Ok(validated)",
   "originalText": "Ok(validated)",
   "fontSize": 13,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "e_arr-1039",
   "type": "arrow",
   "x": 710,
   "y": 910.0,
   "width": 90,
   "height": 0.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1039,
   "version": 1,
   "versionNonce": 1046,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     90,
     0.0
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "e_rect-1030",
    "focus": 0,
    "gap": 4
   },
   "endBinding": {
    "elementId": "e_rect-1032",
    "focus": 0,
    "gap": 4
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "e_lbl-1040",
   "type": "text",
   "x": 60,
   "y": 1015,
   "width": 756.0,
   "height": 25.0,
   "angle": 0,
   "strokeColor": "#1971c2",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1040,
   "version": 1,
   "versionNonce": 1047,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "\u2463 EVERY LOGIN \u2014 POST /token (partner backend, server-to-server)",
   "originalText": "\u2463 EVERY LOGIN \u2014 POST /token (partner backend, server-to-server)",
   "fontSize": 20,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 20
  },
  {
   "id": "e_rect-1041",
   "type": "rectangle",
   "x": 60,
   "y": 1060,
   "width": 350,
   "height": 85,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#e9ecef",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1042,
   "version": 1,
   "versionNonce": 1049,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "e_text-1042",
     "type": "text"
    },
    {
     "id": "e_arr-1051",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_text-1042",
   "type": "text",
   "x": 70,
   "y": 1070,
   "width": 330,
   "height": 35.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1042,
   "version": 1,
   "versionNonce": 1049,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Form \u2192 TokenRequest\n+ TokenRequest::parse_basic_authorization(header)",
   "originalText": "Form \u2192 TokenRequest\n+ TokenRequest::parse_basic_authorization(header)",
   "fontSize": 14,
   "fontFamily": 3,
   "textAlign": "center",
   "verticalAlign": "middle",
   "containerId": "e_rect-1041",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_rect-1043",
   "type": "rectangle",
   "x": 490,
   "y": 1060,
   "width": 290,
   "height": 70,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#a5d8ff",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1044,
   "version": 1,
   "versionNonce": 1051,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "e_text-1044",
     "type": "text"
    },
    {
     "id": "e_arr-1051",
     "type": "arrow"
    },
    {
     "id": "e_arr-1052",
     "type": "arrow"
    },
    {
     "id": "e_arr-1054",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_text-1044",
   "type": "text",
   "x": 500,
   "y": 1070,
   "width": 270,
   "height": 17.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1044,
   "version": 1,
   "versionNonce": 1051,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "server.exchange(request).await",
   "originalText": "server.exchange(request).await",
   "fontSize": 14,
   "fontFamily": 3,
   "textAlign": "center",
   "verticalAlign": "middle",
   "containerId": "e_rect-1043",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_rect-1045",
   "type": "rectangle",
   "x": 860,
   "y": 1030,
   "width": 370,
   "height": 75,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#b2f2bb",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1046,
   "version": 1,
   "versionNonce": 1053,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "e_text-1046",
     "type": "text"
    },
    {
     "id": "e_arr-1052",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_text-1046",
   "type": "text",
   "x": 870,
   "y": 1040,
   "width": 350,
   "height": 35.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1046,
   "version": 1,
   "versionNonce": 1053,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Ok \u2192 200 Json(TokenPayload)\n+ Cache-Control: no-store",
   "originalText": "Ok \u2192 200 Json(TokenPayload)\n+ Cache-Control: no-store",
   "fontSize": 14,
   "fontFamily": 3,
   "textAlign": "center",
   "verticalAlign": "middle",
   "containerId": "e_rect-1045",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_rect-1047",
   "type": "rectangle",
   "x": 860,
   "y": 1140,
   "width": 370,
   "height": 80,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffc9c9",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1048,
   "version": 1,
   "versionNonce": 1055,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "e_text-1048",
     "type": "text"
    },
    {
     "id": "e_arr-1054",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_text-1048",
   "type": "text",
   "x": 870,
   "y": 1150,
   "width": 350,
   "height": 35.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1048,
   "version": 1,
   "versionNonce": 1055,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Err(Internal e) \u2192 500, partner retries\nErr(e) \u2192 400 error = e.error_code()",
   "originalText": "Err(Internal e) \u2192 500, partner retries\nErr(e) \u2192 400 error = e.error_code()",
   "fontSize": 14,
   "fontFamily": 3,
   "textAlign": "center",
   "verticalAlign": "middle",
   "containerId": "e_rect-1047",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_rect-1049",
   "type": "rectangle",
   "x": 60,
   "y": 1180,
   "width": 350,
   "height": 70,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#a5d8ff",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1050,
   "version": 1,
   "versionNonce": 1057,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "e_text-1050",
     "type": "text"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_text-1050",
   "type": "text",
   "x": 70,
   "y": 1190,
   "width": 330,
   "height": 35.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1050,
   "version": 1,
   "versionNonce": 1057,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Partner verifies signature:\nGET /jwks \u2192 server.jwks_document()",
   "originalText": "Partner verifies signature:\nGET /jwks \u2192 server.jwks_document()",
   "fontSize": 14,
   "fontFamily": 3,
   "textAlign": "center",
   "verticalAlign": "middle",
   "containerId": "e_rect-1049",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_arr-1051",
   "type": "arrow",
   "x": 410,
   "y": 1102.5,
   "width": 80,
   "height": -7.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1051,
   "version": 1,
   "versionNonce": 1058,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     80,
     -7.5
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "e_rect-1041",
    "focus": 0,
    "gap": 4
   },
   "endBinding": {
    "elementId": "e_rect-1043",
    "focus": 0,
    "gap": 4
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "e_arr-1052",
   "type": "arrow",
   "x": 780,
   "y": 1095.0,
   "width": 80,
   "height": -27.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1052,
   "version": 1,
   "versionNonce": 1059,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     80,
     -27.5
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "e_rect-1043",
    "focus": 0,
    "gap": 4
   },
   "endBinding": {
    "elementId": "e_rect-1045",
    "focus": 0,
    "gap": 4
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "e_lbl-1053",
   "type": "text",
   "x": 812.0,
   "y": 1061.25,
   "width": 15.6,
   "height": 16.25,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1053,
   "version": 1,
   "versionNonce": 1060,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Ok",
   "originalText": "Ok",
   "fontSize": 13,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "e_arr-1054",
   "type": "arrow",
   "x": 780,
   "y": 1110.0,
   "width": 80,
   "height": 70.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1054,
   "version": 1,
   "versionNonce": 1061,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     80,
     70.0
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "e_rect-1043",
    "focus": 0,
    "gap": 4
   },
   "endBinding": {
    "elementId": "e_rect-1047",
    "focus": 0,
    "gap": 4
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "e_lbl-1055",
   "type": "text",
   "x": 808.0,
   "y": 1125.0,
   "width": 23.4,
   "height": 16.25,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1055,
   "version": 1,
   "versionNonce": 1062,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Err",
   "originalText": "Err",
   "fontSize": 13,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "e_lbl-1056",
   "type": "text",
   "x": 1290,
   "y": 190,
   "width": 64.8,
   "height": 22.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1056,
   "version": 1,
   "versionNonce": 1063,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Legend",
   "originalText": "Legend",
   "fontSize": 18,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 18
  },
  {
   "id": "e_leg-1057",
   "type": "rectangle",
   "x": 1290,
   "y": 230,
   "width": 34,
   "height": 24,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffec99",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1057,
   "version": 1,
   "versionNonce": 1064,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_lbl-1058",
   "type": "text",
   "x": 1334,
   "y": 232,
   "width": 277.2,
   "height": 17.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1058,
   "version": 1,
   "versionNonce": 1065,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "you pick / implement (trait seam)",
   "originalText": "you pick / implement (trait seam)",
   "fontSize": 14,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_leg-1059",
   "type": "rectangle",
   "x": 1290,
   "y": 272,
   "width": 34,
   "height": 24,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#a5d8ff",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1059,
   "version": 1,
   "versionNonce": 1066,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_lbl-1060",
   "type": "text",
   "x": 1334,
   "y": 274,
   "width": 193.2,
   "height": 17.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1060,
   "version": 1,
   "versionNonce": 1067,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "arche does the protocol",
   "originalText": "arche does the protocol",
   "fontSize": 14,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_leg-1061",
   "type": "rectangle",
   "x": 1290,
   "y": 314,
   "width": 34,
   "height": 24,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#b2f2bb",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1061,
   "version": 1,
   "versionNonce": 1068,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_lbl-1062",
   "type": "text",
   "x": 1334,
   "y": 316,
   "width": 168.0,
   "height": 17.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1062,
   "version": 1,
   "versionNonce": 1069,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "your logic / success",
   "originalText": "your logic / success",
   "fontSize": 14,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_leg-1063",
   "type": "rectangle",
   "x": 1290,
   "y": 356,
   "width": 34,
   "height": 24,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#e9ecef",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1063,
   "version": 1,
   "versionNonce": 1070,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_lbl-1064",
   "type": "text",
   "x": 1334,
   "y": 358,
   "width": 109.2,
   "height": 17.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1064,
   "version": 1,
   "versionNonce": 1071,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "incoming HTTP",
   "originalText": "incoming HTTP",
   "fontSize": 14,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "e_leg-1065",
   "type": "rectangle",
   "x": 1290,
   "y": 398,
   "width": 34,
   "height": 24,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffc9c9",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1065,
   "version": 1,
   "versionNonce": 1072,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "e_lbl-1066",
   "type": "text",
   "x": 1334,
   "y": 400,
   "width": 84.0,
   "height": 17.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1066,
   "version": 1,
   "versionNonce": 1073,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "error path",
   "originalText": "error path",
   "fontSize": 14,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "u_lbl-5001",
   "type": "text",
   "x": 1871,
   "y": 110,
   "width": 842.4,
   "height": 32.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5001,
   "version": 1,
   "versionNonce": 5004,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "arche::oidc \u2014 UML: traits, implementations, data types",
   "originalText": "arche::oidc \u2014 UML: traits, implementations, data types",
   "fontSize": 26,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 26
  },
  {
   "id": "u_lbl-5002",
   "type": "text",
   "x": 1871,
   "y": 148,
   "width": 932.4,
   "height": 17.5,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5002,
   "version": 1,
   "versionNonce": 5005,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "dashed arrow + triangle = implements   \u00b7   solid arrow = uses / produces   \u00b7   dashed box = your impl (example)",
   "originalText": "dashed arrow + triangle = implements   \u00b7   solid arrow = uses / produces   \u00b7   dashed box = your impl (example)",
   "fontSize": 14,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "u_lbl-5003",
   "type": "text",
   "x": 1871,
   "y": 200,
   "width": 637.1999999999999,
   "height": 22.5,
   "angle": 0,
   "strokeColor": "#1971c2",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5003,
   "version": 1,
   "versionNonce": 5006,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "\u2460 CAPABILITY SEAMS \u2014 OidcServer is generic over four traits",
   "originalText": "\u2460 CAPABILITY SEAMS \u2014 OidcServer is generic over four traits",
   "fontSize": 18,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 18
  },
  {
   "id": "u_cls-5004",
   "type": "rectangle",
   "x": 2756,
   "y": 240,
   "width": 386,
   "height": 132,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#a5d8ff",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5005,
   "version": 1,
   "versionNonce": 5008,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5005",
     "type": "text"
    },
    {
     "id": "u_arr-5016",
     "type": "arrow"
    },
    {
     "id": "u_arr-5018",
     "type": "arrow"
    },
    {
     "id": "u_arr-5020",
     "type": "arrow"
    },
    {
     "id": "u_arr-5022",
     "type": "arrow"
    },
    {
     "id": "u_arr-5024",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5005",
   "type": "text",
   "x": 2768,
   "y": 249,
   "width": 362,
   "height": 114,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5005,
   "version": 1,
   "versionNonce": 5008,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "OidcServer<C, T, A, S, R>   \u00b7   server/mod.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+ new(config, C, T, A, S, R) \u2192 Result<Self>\n+ validate_authorize(params).await\n+ issue_code(validated, sub, claims).await\n+ exchange(TokenRequest).await\n+ jwks_document()",
   "originalText": "OidcServer<C, T, A, S, R>   \u00b7   server/mod.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+ new(config, C, T, A, S, R) \u2192 Result<Self>\n+ validate_authorize(params).await\n+ issue_code(validated, sub, claims).await\n+ exchange(TokenRequest).await\n+ jwks_document()",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5004",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5006",
   "type": "rectangle",
   "x": 1871,
   "y": 490,
   "width": 346,
   "height": 83,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffec99",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5007,
   "version": 1,
   "versionNonce": 5010,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5007",
     "type": "text"
    },
    {
     "id": "u_arr-5016",
     "type": "arrow"
    },
    {
     "id": "u_arr-5036",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5007",
   "type": "text",
   "x": 1883,
   "y": 499,
   "width": 322,
   "height": 65,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5007,
   "version": 1,
   "versionNonce": 5010,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "\u00abtrait\u00bb ClientRegistry   \u00b7   registry.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+ find(client_id) \u2192 Option<Registration>\n+ verify_secret(id, presented) \u2192 bool",
   "originalText": "\u00abtrait\u00bb ClientRegistry   \u00b7   registry.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+ find(client_id) \u2192 Option<Registration>\n+ verify_secret(id, presented) \u2192 bool",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5006",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5008",
   "type": "rectangle",
   "x": 2311,
   "y": 490,
   "width": 298,
   "height": 99,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffec99",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5009,
   "version": 1,
   "versionNonce": 5012,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5009",
     "type": "text"
    },
    {
     "id": "u_arr-5018",
     "type": "arrow"
    },
    {
     "id": "u_arr-5037",
     "type": "arrow"
    },
    {
     "id": "u_arr-5043",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5009",
   "type": "text",
   "x": 2323,
   "y": 499,
   "width": 274,
   "height": 81,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5009,
   "version": 1,
   "versionNonce": 5012,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "\u00abtrait\u00bb TokenSigner   \u00b7   keys.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+ kid() \u2192 str\n+ sign(bytes) \u2192 signature bytes\n+ jwks() \u2192 Value",
   "originalText": "\u00abtrait\u00bb TokenSigner   \u00b7   keys.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+ kid() \u2192 str\n+ sign(bytes) \u2192 signature bytes\n+ jwks() \u2192 Value",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5008",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5010",
   "type": "rectangle",
   "x": 2751,
   "y": 490,
   "width": 354,
   "height": 67,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffec99",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5011,
   "version": 1,
   "versionNonce": 5014,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5011",
     "type": "text"
    },
    {
     "id": "u_arr-5020",
     "type": "arrow"
    },
    {
     "id": "u_arr-5038",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5011",
   "type": "text",
   "x": 2763,
   "y": 499,
   "width": 330,
   "height": 49,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5011,
   "version": 1,
   "versionNonce": 5014,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "\u00abtrait\u00bb AccessTokenIssuer   \u00b7   access.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+ issue(grant) \u2192 IssuedAccessToken",
   "originalText": "\u00abtrait\u00bb AccessTokenIssuer   \u00b7   access.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+ issue(grant) \u2192 IssuedAccessToken",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5010",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5012",
   "type": "rectangle",
   "x": 3191,
   "y": 490,
   "width": 306,
   "height": 83,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffec99",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5013,
   "version": 1,
   "versionNonce": 5016,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5013",
     "type": "text"
    },
    {
     "id": "u_arr-5022",
     "type": "arrow"
    },
    {
     "id": "u_arr-5039",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5013",
   "type": "text",
   "x": 3203,
   "y": 499,
   "width": 282,
   "height": 65,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5013,
   "version": 1,
   "versionNonce": 5016,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "\u00abtrait\u00bb CodeStore   \u00b7   store.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+ put(code, grant, ttl)\n+ take(code) \u2192 Option<PendingGrant>",
   "originalText": "\u00abtrait\u00bb CodeStore   \u00b7   store.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+ put(code, grant, ttl)\n+ take(code) \u2192 Option<PendingGrant>",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5012",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5014",
   "type": "rectangle",
   "x": 3631,
   "y": 490,
   "width": 362,
   "height": 83,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffec99",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5015,
   "version": 1,
   "versionNonce": 5018,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5015",
     "type": "text"
    },
    {
     "id": "u_arr-5024",
     "type": "arrow"
    },
    {
     "id": "u_arr-5040",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5015",
   "type": "text",
   "x": 3643,
   "y": 499,
   "width": 338,
   "height": 65,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5015,
   "version": 1,
   "versionNonce": 5018,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "\u00abtrait\u00bb RefreshTokenStore   \u00b7   refresh.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+ put(token, grant, ttl)\n+ take(token) \u2192 Option<PendingGrant>",
   "originalText": "\u00abtrait\u00bb RefreshTokenStore   \u00b7   refresh.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+ put(token, grant, ttl)\n+ take(token) \u2192 Option<PendingGrant>",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5014",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_arr-5016",
   "type": "arrow",
   "x": 2796,
   "y": 372,
   "width": -752.0,
   "height": 118,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5016,
   "version": 1,
   "versionNonce": 5019,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     -752.0,
     118
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5004",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5006",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "u_lbl-5017",
   "type": "text",
   "x": 2416.6,
   "y": 411.0,
   "width": 7.199999999999999,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5017,
   "version": 1,
   "versionNonce": 5020,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "C",
   "originalText": "C",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "u_arr-5018",
   "type": "arrow",
   "x": 2796,
   "y": 372,
   "width": -336.0,
   "height": 118,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5018,
   "version": 1,
   "versionNonce": 5021,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     -336.0,
     118
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5004",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5008",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "u_lbl-5019",
   "type": "text",
   "x": 2624.6,
   "y": 411.0,
   "width": 7.199999999999999,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5019,
   "version": 1,
   "versionNonce": 5022,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "T",
   "originalText": "T",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "u_arr-5020",
   "type": "arrow",
   "x": 2928.0,
   "y": 372,
   "width": 0.0,
   "height": 118,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5020,
   "version": 1,
   "versionNonce": 5023,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     0.0,
     118
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5004",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5010",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "u_lbl-5021",
   "type": "text",
   "x": 2924.6,
   "y": 411.0,
   "width": 7.199999999999999,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5021,
   "version": 1,
   "versionNonce": 5024,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "A",
   "originalText": "A",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "u_arr-5022",
   "type": "arrow",
   "x": 3102,
   "y": 372,
   "width": 242.0,
   "height": 118,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5022,
   "version": 1,
   "versionNonce": 5025,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     242.0,
     118
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5004",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5012",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "u_lbl-5023",
   "type": "text",
   "x": 3219.6,
   "y": 411.0,
   "width": 7.199999999999999,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5023,
   "version": 1,
   "versionNonce": 5026,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "S",
   "originalText": "S",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "u_arr-5024",
   "type": "arrow",
   "x": 3102,
   "y": 372,
   "width": 710.0,
   "height": 118,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5024,
   "version": 1,
   "versionNonce": 5027,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     710.0,
     118
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5004",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5014",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "u_lbl-5025",
   "type": "text",
   "x": 3453.6,
   "y": 411.0,
   "width": 7.199999999999999,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5025,
   "version": 1,
   "versionNonce": 5028,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "R",
   "originalText": "R",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "u_cls-5026",
   "type": "rectangle",
   "x": 1871,
   "y": 680,
   "width": 290,
   "height": 50,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#b2f2bb",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "dashed",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5027,
   "version": 1,
   "versionNonce": 5030,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5027",
     "type": "text"
    },
    {
     "id": "u_arr-5036",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5027",
   "type": "text",
   "x": 1883,
   "y": 689,
   "width": 266,
   "height": 32,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5027,
   "version": 1,
   "versionNonce": 5030,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "REQUIRED \u2014 your impl, no built-in\nstatic list / DB / config service",
   "originalText": "REQUIRED \u2014 your impl, no built-in\nstatic list / DB / config service",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5026",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5028",
   "type": "rectangle",
   "x": 2311,
   "y": 680,
   "width": 378,
   "height": 83,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#a5d8ff",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5029,
   "version": 1,
   "versionNonce": 5032,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5029",
     "type": "text"
    },
    {
     "id": "u_arr-5037",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5029",
   "type": "text",
   "x": 2323,
   "y": 689,
   "width": 354,
   "height": 65,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5029,
   "version": 1,
   "versionNonce": 5032,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "SigningKey \u2014 built-in\nyour RSA private key, loaded from PEM,\nheld in process memory (\u22652048 bits)\nsigns locally \u00b7 serves public half in jwks()",
   "originalText": "SigningKey \u2014 built-in\nyour RSA private key, loaded from PEM,\nheld in process memory (\u22652048 bits)\nsigns locally \u00b7 serves public half in jwks()",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5028",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5030",
   "type": "rectangle",
   "x": 2751,
   "y": 680,
   "width": 338,
   "height": 50,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#b2f2bb",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "dashed",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5031,
   "version": 1,
   "versionNonce": 5034,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5031",
     "type": "text"
    },
    {
     "id": "u_arr-5038",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5031",
   "type": "text",
   "x": 2763,
   "y": 689,
   "width": 314,
   "height": 32,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5031,
   "version": 1,
   "versionNonce": 5034,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "REQUIRED \u2014 your impl, no built-in\nopaque random / your JWT / stored token",
   "originalText": "REQUIRED \u2014 your impl, no built-in\nopaque random / your JWT / stored token",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5030",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5032",
   "type": "rectangle",
   "x": 3191,
   "y": 680,
   "width": 290,
   "height": 50,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#b2f2bb",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "dashed",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5033,
   "version": 1,
   "versionNonce": 5036,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5033",
     "type": "text"
    },
    {
     "id": "u_arr-5039",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5033",
   "type": "text",
   "x": 3203,
   "y": 689,
   "width": 266,
   "height": 32,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5033,
   "version": 1,
   "versionNonce": 5036,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "REQUIRED \u2014 your impl, no built-in\nin-memory / Redis GETDEL / PG",
   "originalText": "REQUIRED \u2014 your impl, no built-in\nin-memory / Redis GETDEL / PG",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5032",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5034",
   "type": "rectangle",
   "x": 3631,
   "y": 680,
   "width": 346,
   "height": 50,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#b2f2bb",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "dashed",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5035,
   "version": 1,
   "versionNonce": 5038,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5035",
     "type": "text"
    },
    {
     "id": "u_arr-5040",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5035",
   "type": "text",
   "x": 3643,
   "y": 689,
   "width": 322,
   "height": 32,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5035,
   "version": 1,
   "versionNonce": 5038,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "REQUIRED \u2014 your impl, no built-in\nsame shape as CodeStore \u00b7 offline_access",
   "originalText": "REQUIRED \u2014 your impl, no built-in\nsame shape as CodeStore \u00b7 offline_access",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5034",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_arr-5036",
   "type": "arrow",
   "x": 2016.0,
   "y": 680,
   "width": 28.0,
   "height": -107,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "dashed",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5036,
   "version": 1,
   "versionNonce": 5039,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     28.0,
     -107
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5026",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5006",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "triangle"
  },
  {
   "id": "u_arr-5037",
   "type": "arrow",
   "x": 2500.0,
   "y": 680,
   "width": -40.0,
   "height": -91,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "dashed",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5037,
   "version": 1,
   "versionNonce": 5040,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     -40.0,
     -91
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5028",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5008",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "triangle"
  },
  {
   "id": "u_arr-5038",
   "type": "arrow",
   "x": 2920.0,
   "y": 680,
   "width": 8.0,
   "height": -123,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "dashed",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5038,
   "version": 1,
   "versionNonce": 5041,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     8.0,
     -123
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5030",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5010",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "triangle"
  },
  {
   "id": "u_arr-5039",
   "type": "arrow",
   "x": 3336.0,
   "y": 680,
   "width": 8.0,
   "height": -107,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "dashed",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5039,
   "version": 1,
   "versionNonce": 5042,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     8.0,
     -107
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5032",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5012",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "triangle"
  },
  {
   "id": "u_arr-5040",
   "type": "arrow",
   "x": 3804.0,
   "y": 680,
   "width": 8.0,
   "height": -107,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "dashed",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5040,
   "version": 1,
   "versionNonce": 5043,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     8.0,
     -107
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5034",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5014",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "triangle"
  },
  {
   "id": "u_cls-5041",
   "type": "rectangle",
   "x": 2311,
   "y": 803,
   "width": 362,
   "height": 67,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#b2f2bb",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "dashed",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5042,
   "version": 1,
   "versionNonce": 5045,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5042",
     "type": "text"
    },
    {
     "id": "u_arr-5043",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5042",
   "type": "text",
   "x": 2323,
   "y": 812,
   "width": 338,
   "height": 49,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5042,
   "version": 1,
   "versionNonce": 5045,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "your KMS signer \u2014 key never in process\nsign = one asymmetricSign call\njwks() via rsa_public_jwk(kid, public_pem)",
   "originalText": "your KMS signer \u2014 key never in process\nsign = one asymmetricSign call\njwks() via rsa_public_jwk(kid, public_pem)",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5041",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_arr-5043",
   "type": "arrow",
   "x": 2643,
   "y": 803,
   "width": -74,
   "height": -214,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "dashed",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5043,
   "version": 1,
   "versionNonce": 5046,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     -74,
     -214
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5041",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5008",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "triangle"
  },
  {
   "id": "u_cls-5044",
   "type": "rectangle",
   "x": 1871,
   "y": 915,
   "width": 1362,
   "height": 34,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#e9ecef",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "dashed",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5045,
   "version": 1,
   "versionNonce": 5048,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5045",
     "type": "text"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5045",
   "type": "text",
   "x": 1883,
   "y": 924,
   "width": 1338,
   "height": 16,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5045,
   "version": 1,
   "versionNonce": 5048,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "cfg(test) only \u2014 never shipped in the library:   StaticRegistry   \u00b7   TestCodeStore   \u00b7   TestRefreshStore   \u00b7   TestAccessTokens   \u00b7   test_key.rs (throwaway RSA key)",
   "originalText": "cfg(test) only \u2014 never shipped in the library:   StaticRegistry   \u00b7   TestCodeStore   \u00b7   TestRefreshStore   \u00b7   TestAccessTokens   \u00b7   test_key.rs (throwaway RSA key)",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5044",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_lbl-5046",
   "type": "text",
   "x": 1871,
   "y": 1009,
   "width": 853.1999999999999,
   "height": 22.5,
   "angle": 0,
   "strokeColor": "#1971c2",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5046,
   "version": 1,
   "versionNonce": 5049,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "\u2461 DATA TYPES \u2014 how one login's data flows (all in server/types.rs unless noted)",
   "originalText": "\u2461 DATA TYPES \u2014 how one login's data flows (all in server/types.rs unless noted)",
   "fontSize": 18,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 18
  },
  {
   "id": "u_cls-5047",
   "type": "rectangle",
   "x": 1871,
   "y": 1049,
   "width": 410,
   "height": 99,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#e9ecef",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5048,
   "version": 1,
   "versionNonce": 5051,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5048",
     "type": "text"
    },
    {
     "id": "u_arr-5055",
     "type": "arrow"
    },
    {
     "id": "u_arr-5069",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5048",
   "type": "text",
   "x": 1883,
   "y": 1058,
   "width": 386,
   "height": 81,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5048,
   "version": 1,
   "versionNonce": 5051,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "AuthorizeParams   \u00b7   untrusted /authorize query\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nresponse_type, client_id, redirect_uri\nscope, state, nonce, code_challenge\nprompt, login_hint, max_age, \u2026",
   "originalText": "AuthorizeParams   \u00b7   untrusted /authorize query\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nresponse_type, client_id, redirect_uri\nscope, state, nonce, code_challenge\nprompt, login_hint, max_age, \u2026",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5047",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5049",
   "type": "rectangle",
   "x": 2351,
   "y": 1049,
   "width": 354,
   "height": 99,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffffff",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5050,
   "version": 1,
   "versionNonce": 5053,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5050",
     "type": "text"
    },
    {
     "id": "u_arr-5055",
     "type": "arrow"
    },
    {
     "id": "u_arr-5057",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5050",
   "type": "text",
   "x": 2363,
   "y": 1058,
   "width": 330,
   "height": 81,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5050,
   "version": 1,
   "versionNonce": 5053,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "ValidatedAuthorizeRequest   \u00b7   stashable\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nscope \u2014 narrowed to allowed set\ncode_challenge, nonce, state\npassthrough OIDC params",
   "originalText": "ValidatedAuthorizeRequest   \u00b7   stashable\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nscope \u2014 narrowed to allowed set\ncode_challenge, nonce, state\npassthrough OIDC params",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5049",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5051",
   "type": "rectangle",
   "x": 2775,
   "y": 1049,
   "width": 370,
   "height": 99,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffffff",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5052,
   "version": 1,
   "versionNonce": 5055,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5052",
     "type": "text"
    },
    {
     "id": "u_arr-5057",
     "type": "arrow"
    },
    {
     "id": "u_arr-5059",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5052",
   "type": "text",
   "x": 2787,
   "y": 1058,
   "width": 346,
   "height": 81,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5052,
   "version": 1,
   "versionNonce": 5055,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "PendingGrant   \u00b7   what the code stands for\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nrequest: ValidatedAuthorizeRequest\nsubject: String (sub)\nclaims: Map",
   "originalText": "PendingGrant   \u00b7   what the code stands for\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nrequest: ValidatedAuthorizeRequest\nsubject: String (sub)\nclaims: Map",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5051",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5053",
   "type": "rectangle",
   "x": 3215,
   "y": 1049,
   "width": 338,
   "height": 83,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#b2f2bb",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5054,
   "version": 1,
   "versionNonce": 5057,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5054",
     "type": "text"
    },
    {
     "id": "u_arr-5059",
     "type": "arrow"
    },
    {
     "id": "u_arr-5071",
     "type": "arrow"
    },
    {
     "id": "u_arr-5073",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5054",
   "type": "text",
   "x": 3227,
   "y": 1058,
   "width": 314,
   "height": 65,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5054,
   "version": 1,
   "versionNonce": 5057,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "TokenPayload   \u00b7   Debug redacts tokens\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\naccess_token, id_token\ntoken_type, expires_in, scope",
   "originalText": "TokenPayload   \u00b7   Debug redacts tokens\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\naccess_token, id_token\ntoken_type, expires_in, scope",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5053",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_arr-5055",
   "type": "arrow",
   "x": 2281,
   "y": 1098.5,
   "width": 70,
   "height": 0.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5055,
   "version": 1,
   "versionNonce": 5058,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     70,
     0.0
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5047",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5049",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "u_lbl-5056",
   "type": "text",
   "x": 2248.0,
   "y": 1078.5,
   "width": 144.0,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5056,
   "version": 1,
   "versionNonce": 5059,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "validate_authorize()",
   "originalText": "validate_authorize()",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "u_arr-5057",
   "type": "arrow",
   "x": 2705,
   "y": 1098.5,
   "width": 70,
   "height": 0.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5057,
   "version": 1,
   "versionNonce": 5060,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     70,
     0.0
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5049",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5051",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "u_lbl-5058",
   "type": "text",
   "x": 2699.2,
   "y": 1078.5,
   "width": 86.39999999999999,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5058,
   "version": 1,
   "versionNonce": 5061,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "issue_code()",
   "originalText": "issue_code()",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "u_arr-5059",
   "type": "arrow",
   "x": 3145,
   "y": 1098.5,
   "width": 70,
   "height": -8.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5059,
   "version": 1,
   "versionNonce": 5062,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     70,
     -8.0
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5051",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5053",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "u_lbl-5060",
   "type": "text",
   "x": 3146.0,
   "y": 1074.5,
   "width": 72.0,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5060,
   "version": 1,
   "versionNonce": 5063,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "exchange()",
   "originalText": "exchange()",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "u_cls-5061",
   "type": "rectangle",
   "x": 1871,
   "y": 1203,
   "width": 370,
   "height": 99,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffc9c9",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5062,
   "version": 1,
   "versionNonce": 5065,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5062",
     "type": "text"
    },
    {
     "id": "u_arr-5069",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5062",
   "type": "text",
   "x": 1883,
   "y": 1212,
   "width": 346,
   "height": 81,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5062,
   "version": 1,
   "versionNonce": 5065,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "OidcServerError (enum)   \u00b7   RFC 6749 codes\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nerror_code() / redirectable()\nredirect_url(uri, state)\nInternal wraps AppError",
   "originalText": "OidcServerError (enum)   \u00b7   RFC 6749 codes\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nerror_code() / redirectable()\nredirect_url(uri, state)\nInternal wraps AppError",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5061",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5063",
   "type": "rectangle",
   "x": 2775,
   "y": 1203,
   "width": 330,
   "height": 67,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#e9ecef",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5064,
   "version": 1,
   "versionNonce": 5067,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5064",
     "type": "text"
    },
    {
     "id": "u_arr-5071",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5064",
   "type": "text",
   "x": 2787,
   "y": 1212,
   "width": 306,
   "height": 49,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5064,
   "version": 1,
   "versionNonce": 5067,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "TokenRequest   \u00b7   /token form + Basic\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nparse_basic_authorization(header)",
   "originalText": "TokenRequest   \u00b7   /token form + Basic\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nparse_basic_authorization(header)",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5063",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5065",
   "type": "rectangle",
   "x": 3215,
   "y": 1203,
   "width": 298,
   "height": 67,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffffff",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5066,
   "version": 1,
   "versionNonce": 5069,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5066",
     "type": "text"
    },
    {
     "id": "u_arr-5073",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5066",
   "type": "text",
   "x": 3227,
   "y": 1212,
   "width": 274,
   "height": 49,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5066,
   "version": 1,
   "versionNonce": 5069,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "IssuedAccessToken   \u00b7   access.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\ntoken, expires_in",
   "originalText": "IssuedAccessToken   \u00b7   access.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\ntoken, expires_in",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5065",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5067",
   "type": "rectangle",
   "x": 2351,
   "y": 1203,
   "width": 378,
   "height": 67,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#a5d8ff",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5068,
   "version": 1,
   "versionNonce": 5071,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5068",
     "type": "text"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5068",
   "type": "text",
   "x": 2363,
   "y": 1212,
   "width": 354,
   "height": 49,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5068,
   "version": 1,
   "versionNonce": 5071,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "DiscoveryDocument   \u00b7   you build & serve it\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nstandard(issuer) \u2192 Self \u00b7 all fields pub",
   "originalText": "DiscoveryDocument   \u00b7   you build & serve it\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nstandard(issuer) \u2192 Self \u00b7 all fields pub",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5067",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_arr-5069",
   "type": "arrow",
   "x": 2076.0,
   "y": 1148,
   "width": -20.0,
   "height": 55,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5069,
   "version": 1,
   "versionNonce": 5072,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     -20.0,
     55
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5047",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5061",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "u_lbl-5070",
   "type": "text",
   "x": 2032.0,
   "y": 1155.5,
   "width": 72.0,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5070,
   "version": 1,
   "versionNonce": 5073,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "rejections",
   "originalText": "rejections",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "u_arr-5071",
   "type": "arrow",
   "x": 2940.0,
   "y": 1203,
   "width": 444.0,
   "height": -71,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5071,
   "version": 1,
   "versionNonce": 5074,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     444.0,
     -71
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5063",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5053",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "u_lbl-5072",
   "type": "text",
   "x": 3128.0,
   "y": 1147.5,
   "width": 72.0,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5072,
   "version": 1,
   "versionNonce": 5075,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "exchange()",
   "originalText": "exchange()",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "u_arr-5073",
   "type": "arrow",
   "x": 3364.0,
   "y": 1203,
   "width": 20.0,
   "height": -71,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5073,
   "version": 1,
   "versionNonce": 5076,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     20.0,
     -71
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5065",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5053",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "u_lbl-5074",
   "type": "text",
   "x": 3336.6,
   "y": 1147.5,
   "width": 79.2,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5074,
   "version": 1,
   "versionNonce": 5077,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "access half",
   "originalText": "access half",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "u_lbl-5075",
   "type": "text",
   "x": 1871,
   "y": 1362,
   "width": 442.8,
   "height": 22.5,
   "angle": 0,
   "strokeColor": "#1971c2",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5075,
   "version": 1,
   "versionNonce": 5078,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "\u2462 CLIENT \u2014 concrete types only, no traits",
   "originalText": "\u2462 CLIENT \u2014 concrete types only, no traits",
   "fontSize": 18,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 18
  },
  {
   "id": "u_cls-5076",
   "type": "rectangle",
   "x": 1871,
   "y": 1402,
   "width": 402,
   "height": 83,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffec99",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5077,
   "version": 1,
   "versionNonce": 5080,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5077",
     "type": "text"
    },
    {
     "id": "u_arr-5088",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5077",
   "type": "text",
   "x": 1883,
   "y": 1411,
   "width": 378,
   "height": 65,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5077,
   "version": 1,
   "versionNonce": 5080,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "OidcConfig   \u00b7   config/oidc.rs \u00b7 Debug redacts\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nclient_id, client_secret\nredirect_uri, scopes?",
   "originalText": "OidcConfig   \u00b7   config/oidc.rs \u00b7 Debug redacts\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nclient_id, client_secret\nredirect_uri, scopes?",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5076",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5078",
   "type": "rectangle",
   "x": 1871,
   "y": 1515,
   "width": 354,
   "height": 83,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffec99",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5079,
   "version": 1,
   "versionNonce": 5082,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5079",
     "type": "text"
    },
    {
     "id": "u_arr-5090",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5079",
   "type": "text",
   "x": 1883,
   "y": 1524,
   "width": 330,
   "height": 65,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5079,
   "version": 1,
   "versionNonce": 5082,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "ProviderMetadata   \u00b7   client/provider.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nkey, issuers, 3 endpoints, extras\ndiscover(key, issuer, http)",
   "originalText": "ProviderMetadata   \u00b7   client/provider.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nkey, issuers, 3 endpoints, extras\ndiscover(key, issuer, http)",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5078",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5080",
   "type": "rectangle",
   "x": 2363,
   "y": 1432,
   "width": 306,
   "height": 99,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#a5d8ff",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5081,
   "version": 1,
   "versionNonce": 5084,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5081",
     "type": "text"
    },
    {
     "id": "u_arr-5088",
     "type": "arrow"
    },
    {
     "id": "u_arr-5090",
     "type": "arrow"
    },
    {
     "id": "u_arr-5092",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5081",
   "type": "text",
   "x": 2375,
   "y": 1441,
   "width": 282,
   "height": 81,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5081,
   "version": 1,
   "versionNonce": 5084,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "OidcClient   \u00b7   client/client.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nnew(provider, config) \u2192 Result\nauth_url(state, challenge)\nexchange_code(code, verifier).await",
   "originalText": "OidcClient   \u00b7   client/client.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nnew(provider, config) \u2192 Result\nauth_url(state, challenge)\nexchange_code(code, verifier).await",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5080",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5082",
   "type": "rectangle",
   "x": 2759,
   "y": 1402,
   "width": 394,
   "height": 83,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#ffffff",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5083,
   "version": 1,
   "versionNonce": 5086,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5083",
     "type": "text"
    },
    {
     "id": "u_arr-5092",
     "type": "arrow"
    },
    {
     "id": "u_arr-5094",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5083",
   "type": "text",
   "x": 2771,
   "y": 1411,
   "width": 370,
   "height": 65,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5083,
   "version": 1,
   "versionNonce": 5086,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "TokenResponse   \u00b7   client/client.rs \u00b7 redacts\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\naccess_token, id_token\nexpires_in, refresh_token?",
   "originalText": "TokenResponse   \u00b7   client/client.rs \u00b7 redacts\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\naccess_token, id_token\nexpires_in, refresh_token?",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5082",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5084",
   "type": "rectangle",
   "x": 2759,
   "y": 1525,
   "width": 330,
   "height": 83,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#a5d8ff",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5085,
   "version": 1,
   "versionNonce": 5088,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5085",
     "type": "text"
    },
    {
     "id": "u_arr-5094",
     "type": "arrow"
    },
    {
     "id": "u_arr-5096",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5085",
   "type": "text",
   "x": 2771,
   "y": 1534,
   "width": 306,
   "height": 65,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5085,
   "version": 1,
   "versionNonce": 5088,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Verifier   \u00b7   client/verifier.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nnew(&provider) \u2192 Result\nverify_id_token::<C>(token, audiences)",
   "originalText": "Verifier   \u00b7   client/verifier.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nnew(&provider) \u2192 Result\nverify_id_token::<C>(token, audiences)",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5084",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_cls-5086",
   "type": "rectangle",
   "x": 3179,
   "y": 1525,
   "width": 346,
   "height": 67,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "#e9ecef",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 5087,
   "version": 1,
   "versionNonce": 5090,
   "isDeleted": false,
   "boundElements": [
    {
     "id": "u_txt-5087",
     "type": "text"
    },
    {
     "id": "u_arr-5096",
     "type": "arrow"
    }
   ],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "u_txt-5087",
   "type": "text",
   "x": 3191,
   "y": 1534,
   "width": 322,
   "height": 49,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5087,
   "version": 1,
   "versionNonce": 5090,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "JwksCache (private)   \u00b7   client/jwks.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nlookup(http, kid) \u2192 Jwk",
   "originalText": "JwksCache (private)   \u00b7   client/jwks.rs\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nlookup(http, kid) \u2192 Jwk",
   "fontSize": 13,
   "fontFamily": 3,
   "textAlign": "left",
   "verticalAlign": "middle",
   "containerId": "u_cls-5086",
   "lineHeight": 1.25,
   "baseline": 13
  },
  {
   "id": "u_arr-5088",
   "type": "arrow",
   "x": 2273,
   "y": 1443.5,
   "width": 90,
   "height": 22.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5088,
   "version": 1,
   "versionNonce": 5091,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     90,
     22.5
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5076",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5080",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "u_lbl-5089",
   "type": "text",
   "x": 2301.0,
   "y": 1434.75,
   "width": 36.0,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5089,
   "version": 1,
   "versionNonce": 5092,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "new()",
   "originalText": "new()",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "u_arr-5090",
   "type": "arrow",
   "x": 2225,
   "y": 1556.5,
   "width": 138,
   "height": -59.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5090,
   "version": 1,
   "versionNonce": 5093,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     138,
     -59.5
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5078",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5080",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "u_lbl-5091",
   "type": "text",
   "x": 2277.0,
   "y": 1506.75,
   "width": 36.0,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5091,
   "version": 1,
   "versionNonce": 5094,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "new()",
   "originalText": "new()",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "u_arr-5092",
   "type": "arrow",
   "x": 2669,
   "y": 1466,
   "width": 90,
   "height": -22.5,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5092,
   "version": 1,
   "versionNonce": 5095,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     90,
     -22.5
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5080",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5082",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "u_lbl-5093",
   "type": "text",
   "x": 2663.0,
   "y": 1434.75,
   "width": 108.0,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5093,
   "version": 1,
   "versionNonce": 5096,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "exchange_code()",
   "originalText": "exchange_code()",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "u_arr-5094",
   "type": "arrow",
   "x": 2956.0,
   "y": 1485,
   "width": -32.0,
   "height": 40,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5094,
   "version": 1,
   "versionNonce": 5097,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     -32.0,
     40
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5082",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5084",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "u_lbl-5095",
   "type": "text",
   "x": 2858.4,
   "y": 1485.0,
   "width": 172.79999999999998,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5095,
   "version": 1,
   "versionNonce": 5098,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "id_token in \u2192 your C out",
   "originalText": "id_token in \u2192 your C out",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "u_arr-5096",
   "type": "arrow",
   "x": 3089,
   "y": 1566.5,
   "width": 90,
   "height": -8.0,
   "angle": 0,
   "strokeColor": "#1e1e1e",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5096,
   "version": 1,
   "versionNonce": 5099,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     90,
     -8.0
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": {
    "elementId": "u_cls-5084",
    "focus": 0,
    "gap": 6
   },
   "endBinding": {
    "elementId": "u_cls-5086",
    "focus": 0,
    "gap": 6
   },
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "u_lbl-5097",
   "type": "text",
   "x": 3120.4,
   "y": 1542.5,
   "width": 28.799999999999997,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#495057",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 5097,
   "version": 1,
   "versionNonce": 5100,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "owns",
   "originalText": "owns",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "lineHeight": 1.25,
   "baseline": 12
  }
 ],
 "appState": {
  "viewBackgroundColor": "#ffffff",
  "gridSize": null
 },
 "files": {}
}