From a785abc19261f4f54c5a9612417926f70cf5ddcf Mon Sep 17 00:00:00 2001 From: Adam Hawkins Date: Fri, 1 Oct 2010 22:08:31 -0700 Subject: [PATCH] Initial version of signup doc --- doc/signup/how_it_works.md | 216 +++++ doc/signup/source/state_chart.graffle | 1138 +++++++++++++++++++++++++ doc/signup/static/state_chart.png | Bin 0 -> 21356 bytes 3 files changed, 1354 insertions(+) create mode 100644 doc/signup/how_it_works.md create mode 100644 doc/signup/source/state_chart.graffle create mode 100644 doc/signup/static/state_chart.png diff --git a/doc/signup/how_it_works.md b/doc/signup/how_it_works.md new file mode 100644 index 0000000..ff01133 --- /dev/null +++ b/doc/signup/how_it_works.md @@ -0,0 +1,216 @@ +# The Sign Up Application + +This application demonstrates how to create a landing page for the user. The applications checks to see if the user is logged in, then go ahead with the application. +If the user is not logged in, then show a sign up page. After the user is logged in, it shows a user info page to demonstrate a complete sign up process. + +## How it Works + +The application uses **responders** to tranistion from one **state** to the other. Each state has it's own forms and buttons that need to be displayed. Clicking the buttons +and filling out the form changes the state. This application is simply a state machine. In the next section, we'll focus on the state machine. + +## Understanding the State Diagram + +Every application has an entry point. This state is called _START_. From _START_ it may transition to _READY_ or _SIGNUP_. The state may transition from _SIGNUP_ to _READY_ once the user has completed the sign up form. The application can transition from _READY_ to _SIGNUP_ by logging out--then the process starts all over again. Have a problem takign in information from text? Try this graphic on for size. + +![State Chart](static/state_chart.png) + +Each of these states corresponds to a responder in the responders directory. These responders handle the events in that state and control how the application functions. + +## Stepping Through the Code + +### Step 1: Entering the First State & Starting the Application + +The first thing the code does is call the `makeFirstResponder` method. The responder will capture the actions and handle the events. Once `makeFirstResponder` is called it will start a chain of events that will setup our application. + + // The main function that will start the application running. + Signup.main = function main() { + + // Show the main Pane on the screen + Signup.getPath('mainPage.mainPane').append() ; // is puts come content on the page + + // Go into the initial state + Signup.makeFirstResponder(Signup.START); // this is the bread and butter + + } ; + + function main() { Signup.main(); } // finally start the application + +Right away something stands out: What is `Signup.START`? it looks like a constant. It's not--it's a **responder** object. It will handle the next step. + +### Step 2: Entering the Next State + +When the firstResponder is assigned, the `didBecomeFirstResponder` method will be called on that object. This creates chain of method calls that you can use pass through the application. Let's take a look at the code + + // responders/start.js + + Signup.START = SC.Responder.create({ // here we create a new responder based off of SC.Responder + + didBecomeFirstResponder: function() { // this is called because of Signup.makeFirstResponder(Signup.START); in main.js + var state = Signup.currentAccountController.get('hasContent') ? Signup.READY : Signup.SIGNUP ; // if there is a user, go to the ready state, else signup + Signup.invokeLater(Signup.makeFirstResponder, 1, state); // now set the responder again + } + + }); + +Remember `Signup.START` from step 1? You can see here it is defined to be a new responder object. Then the `didBecomeFirstResponder` method will set next responder based off the `Signup.currentAccountController`. But what is that? A controller is responsible for managing models. A controller is **bound** to a model. You can check to see if the controller is bound by seeing if the `hasContent` property is set. When the application is loaded, there will be no user. After the sign up is process is completed another object will update the currentAccountController. The state has changed again, so now we follow the next `didBecomeFirstResponder` + +### Step 3: Drawing the Page + +Now that the state has been set to `Signup.SIGNUP`, it is up to that responder to do something. Let's check that out. + + Signup.SIGNUP = SC.Responder.create({ + + // when we become first responder, always show the signup panel + didBecomeFirstResponder: function() { + + // Create a new user and set it as the root of the signup controller + // so that we can edit it. + var store = this._store = Signup.store.chain() ; // buffer changes + var user = store.createRecord(Signup.User, {}); + Signup.signupController.set('content', user); // for editing + + // then show the dialog + var pane = Signup.getPath('signupPage.mainPane'); + pane.append(); // show on screen + pane.makeFirstResponder(pane.contentView.firstName); // focus first field + } + +There is a lot going on in this method. You can see from the comment it is creating a **store**. A store is for saving models. We don't really need to pay attention to that for the moment. + + Signup.signupController.set('content', user); // for editing + +That is the most important part in the first section. It binds the controller to a user model so we can show the form for that user so we can start the sign up process. The next section of code show the sign up form. + + var pane = Signup.getPath('signupPage.mainPane'); // retreive our form + pane.append(); // show on screen. append() adds it to the HTML body + pane.makeFirstResponder(pane.contentView.firstName); // focus first field + +Once the forms are on the screen, the responders for those panes will handle the events. Let's take a look into `signupPage.mainPane` + +### Step 4: The Signup Page + +This is a large view file. It is responsible for showing the user form. Let's take a look at the important parts + + // english.lproj/signup_page.js + Signup.signupPage = SC.Page.design({ + + // The main signup pane. used to show info + mainPane: SC.PanelPane.design({ + layout: { centerX: 0, width: 400, centerY: 0, height: 240 }, + + defaultResponder: Signup, + + // panes always have a single contentView which is where you put all of + // your actual controls. Omitting layout means the contentView will fill + // the entire pane content.s + contentView: SC.View.design({ + + childViews: "prompt okButton cancelButton nameLabel firstName lastName emailLabel email mailingListCheckbox sexLabel sex".w(), + + // BUTTONS + okButton: SC.ButtonView.design({ + layout: { bottom: 20, right: 20, width: 90, height: 24 }, + title: "_OK".loc(), + isDefault: YES, + action: "submit" + }), + + cancelButton: SC.ButtonView.design({ + layout: { bottom: 20, right: 120, width: 90, height: 24 }, + title: "_Cancel".loc(), + isCancel: YES, + action: "cancel" + }) + + }) + }) + + }); + +The less important parts have been removed form this summary. The most important parts are in the buttons section and the defaultResponder. By setting the responder to our application it will ensure that it handles the actions declated in the buttons. + + okButton: SC.ButtonView.design({ + layout: { bottom: 20, right: 20, width: 90, height: 24 }, + title: "_OK".loc(), + isDefault: YES, + action: "submit" // the responder has this method and will do the apporiate action when the button is pressed. + }), + +### Step 5: What Happens When the User Presses 'Submit'? + +When the submit button is pressed it will notify the responder with the action that was specified. Right now the responder is `Signup.SIGNUP`. We can take a peek into that responder and see what's going to happen. + + // responders/signup.js + + // called when the OK button is pressed. + submit: function() { + this._store.commitChanges(); + this._store = null ; + + // find user in global store and set as global + var user = Signup.store.find(Signup.signupController); + Signup.currentAccountController.set('content', user); + + Signup.makeFirstResponder(Signup.READY); + }, + +Once again the **store** is involved. It saves the data. There is something interesting going on here. Let's take a look at this line: + + this._store.commitChanges(); + +This is going to save all the changes to the store set way back in Step 3. Since the data in the model is bound to the form it will automatically updated on that object. Since the attributes have been updated, they can be saved. After that we go onto the next step: transitioning to the next state--Signup.READY + + // find user in global store and set as global + var user = Signup.store.find(Signup.signupController); + Signup.currentAccountController.set('content', user); // set the user in the controller ; now the user is "logged in" + + Signup.makeFirstResponder(Signup.READY); // change the responder & state + +### Step 6: Showing the User + +Showing the user takes advantage of property bindings and live updating the page based on changes in your objects that happen automagically! In Step 5, the currentAccountController's content property is set. Setting this property it will trigger some updates in the interface. Let's go back to the main page: + + // maing_page.js + container: SC.ContainerView.design({ + layout: { left: 20, top: 20, bottom: 60, right: 20 }, + + // bind to a property on the general object. Controllers and + // responders will edit this property, not the view itself + nowShowingBinding: "Signup.currentAccountController.nowShowing" + }), + +The nowShowingBinding is set to a property on the currentAccountController. Essentially, if hasContent is true, we'll show the user table if not, do something else. + + // controllers/current_account.js + Signup.currentAccountController = SC.ObjectController.create({ + + // determines which console to display in the main container. must be + // one of 'accountInfo' or 'prompt' + nowShowing: function() { + return this.get('hasContent') ? 'accountInfo' : 'prompt' + }.property('hasContent').cacheable() + + }) ; + +You can see that `nowShowing` is either going to return 'prompt' or 'accountInfo'. Each of these correspond to view components. These components are defined in the main page: + + // the landing prompt + prompt: SC.LabelView.design({ + tagName: "h2", + classNames: "prompt", + textAlign: SC.ALIGN_CENTER, + controlSize: SC.HUGE_CONTROL_SIZE, + layout: { left: 0, right: 0, height: 24, centerY: 0 }, + value: "_You don't have an account yet. Signup to create a new account".loc() + }), + + // the customer view + accountInfo: Signup.AccountInfoView.design({ + contentBinding: "Signup.currentAccountController" + }) + +By Setting the content of the currentAccountController, it will update the nowShowingProperty. The panel is bound to this property--changing it will toggle panels on and off! Pretty cool huh? That's just another example of how Sproutcore's binding system allows for dynamically updating the interface. The account view is a custome one that is outside the scope of the guide. You can use it has an example of how to create a custom view for displaying a model. + +## Wrapping Up + +The Signup application has an example of using a simple state machine to model an application with responders. The application also demonstrates the power of property bindings to create the interface. Stores were glazed over because they are outside of the scope of this document. There is a custom view that we also skipped over. Hopefully this document gave you a good overview of how the application uses responders, controllers, and property bindings to create the first step in nearly all web applications. diff --git a/doc/signup/source/state_chart.graffle b/doc/signup/source/state_chart.graffle new file mode 100644 index 0000000..01e6ca1 --- /dev/null +++ b/doc/signup/source/state_chart.graffle @@ -0,0 +1,1138 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGrafflePro + 137.11.0.108132 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {576, 733}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2010-10-01 20:39:04 -0700 + Creator + Adam Hawkins + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 6 + GraphicsList + + + Bounds + {{178, 359.5}, {108, 14}} + Class + ShapedGraphic + FitText + Vertical + Flow + Resize + ID + 34 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\b\fs24 \cf0 Logout / cancel} + VerticalPad + 0 + + + + Bounds + {{191.75, 253}, {80.5, 14}} + Class + ShapedGraphic + FitText + Vertical + Flow + Resize + ID + 33 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\b\fs24 \cf0 signed up } + VerticalPad + 0 + + + + Class + LineGraphic + Head + + ID + 10 + Info + 1 + + ID + 32 + Points + + {108.5, 312} + {230, 345} + {355.5, 312} + + Style + + stroke + + HeadArrow + 0 + LineType + 1 + TailArrow + FilledArrow + + + Tail + + ID + 9 + Info + 1 + + + + Class + LineGraphic + Head + + ID + 10 + + ID + 31 + Points + + {140, 289.5} + {228, 276} + {324, 289.5} + + Style + + stroke + + HeadArrow + FilledArrow + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 9 + + + + Class + LineGraphic + Head + + ID + 8 + + ID + 28 + Points + + {107.498, 154.686} + {185, 156} + {225.5, 181} + + Style + + stroke + + HeadArrow + FilledArrow + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 4 + + + + Class + LineGraphic + Head + + ID + 10 + Info + 2 + + ID + 25 + Points + + {257, 203.5} + {355.5, 267} + + Style + + stroke + + HeadArrow + FilledArrow + TailArrow + 0 + + + Tail + + ID + 8 + Info + 3 + + + + Class + LineGraphic + Head + + ID + 9 + + ID + 24 + Points + + {194, 203.5} + {108.5, 267} + + Style + + stroke + + HeadArrow + FilledArrow + TailArrow + 0 + + + Tail + + ID + 8 + Info + 4 + + + + Bounds + {{324, 267}, {63, 45}} + Class + ShapedGraphic + ID + 10 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\b\fs24 \cf0 READY} + VerticalPad + 0 + + + + Bounds + {{77, 267}, {63, 45}} + Class + ShapedGraphic + ID + 9 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\b\fs24 \cf0 SIGNUP} + VerticalPad + 0 + + + + Bounds + {{194, 181}, {63, 45}} + Class + ShapedGraphic + ID + 8 + Magnets + + {0, 1} + {0, -1} + {1, 0} + {-1, 0} + + Shape + Rectangle + Style + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\b\fs24 \cf0 START} + VerticalPad + 0 + + + + Bounds + {{50, 123}, {90, 14}} + Class + ShapedGraphic + FitText + Vertical + Flow + Resize + ID + 5 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\f0\b\fs24 \cf0 App loaded} + VerticalPad + 0 + + + + Bounds + {{86, 144}, {21, 21}} + Class + ShapedGraphic + ID + 4 + Shape + Circle + Style + + fill + + Color + + b + 0 + g + 0 + r + 0 + + + shadow + + Draws + NO + + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2010-10-01 20:51:14 -0700 + Modifier + Adam Hawkins + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {612, 792} + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + QuickLookPreview + + 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 + CwcGTNGTxFUbRoFCedys2qi0U6HqSiSf8P6f5t3TCFM25sb9dKftCuD0hgg8buEfbv78 + sH+rP3/Up1t5hHue0qfeBSG0DD4Vyl33Q++07vr3z0fjz338CbWtE7vsX32u2ng3bsY3 + g/jQdywr+7Fy2DZvP/8LhO2yIQplbmRzdHJlYW0KZW5kb2JqCjUgMCBvYmoKMTc3Nwpl + bmRvYmoKMiAwIG9iago8PCAvVHlwZSAvUGFnZSAvUGFyZW50IDMgMCBSIC9SZXNvdXJj + ZXMgNiAwIFIgL0NvbnRlbnRzIDQgMCBSIC9NZWRpYUJveCBbMCAwIDU3NiA3MzNdCj4+ + CmVuZG9iago2IDAgb2JqCjw8IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VCIC9J + bWFnZUMgL0ltYWdlSSBdIC9Db2xvclNwYWNlIDw8IC9DczIgMTAgMCBSCi9DczEgNyAw + IFIgPj4gL0ZvbnQgPDwgL0YxLjAgMTEgMCBSID4+IC9YT2JqZWN0IDw8IC9JbTEgOCAw + IFIgPj4gPj4KZW5kb2JqCjggMCBvYmoKPDwgL0xlbmd0aCA5IDAgUiAvVHlwZSAvWE9i + amVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDE3MCAvSGVpZ2h0IDEzNCAvSW50ZXJw + b2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSAxMiAwIFIgL0ludGVudCAvUGVyY2VwdHVhbCAv + U01hc2sgMTMgMCBSIC9CaXRzUGVyQ29tcG9uZW50CjggL0ZpbHRlciAvRmxhdGVEZWNv + ZGUgPj4Kc3RyZWFtCngB7dABDQAAAMKg909tDwcRKAwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAED/wMDCwMAAQplbmRzdHJlYW0KZW5kb2JqCjkgMCBv + YmoKMzIxCmVuZG9iagoxMyAwIG9iago8PCAvTGVuZ3RoIDE0IDAgUiAvVHlwZSAvWE9i + amVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDE3MCAvSGVpZ2h0IDEzNCAvQ29sb3JT + cGFjZQovRGV2aWNlR3JheSAvSW50ZXJwb2xhdGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVu + dCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae2c/1NSWRvArQwFARH5 + IgIGEhIqAWaCYi6FrfmFCncxRotS3JwIv2SmNLZqLhNpq6bmhGNhOsqYjtnmrubWzvuv + vc+5UG8it1qWu+N9u88Pjt7xPvczn/M8Z65yzklKooIyQBmgDMQycOBfiVhP/spriO/g + xzhEYHx8yEH0zK/Ei/xaBBLokpMP/0uRnAyPQ9B/gxZzCZCASKOlpKRGgk5IfMiekkKj + wQMBF4P9GrOIE8OkASOdzkiDYDKZLMICkqNnMOj01NQUoMVgv1wFGCfYBEwEyWSx2ekc + TgbBweGks9ksAGbQI7CoCD7rFfUQDDstNZWRxmSzAZGbyePx+QKBkLAQCPh8Hi+Tm5HB + YbOZaYzUVBp4RTXwGVQ08MCZApwswMzk8YXCrOzsbLFEIpESFJBaDI/IEgr5vEyAZQEr + FAFixUeNgKbSgTODyxMIRdkSaY5MJs/NVRAYublymSxHKskWCQU8bgaw0iNa8VChRsEo + CGWyOVyeUCSWHpEpFMo81TG1Wp2PoiDBgSWF5MdUeUqFQnZEKhYJeVwOmwlakVW8Wo2A + IqHAKcmRKZQqdUGhRqvV6fX6IoICUuu0Wk1hgVqlVMhyJMCKtEZQY5YqjD0ymsZK5/Kz + xDnyoyp1oVZXVHzSYDCWln0IU8LiQ8ayUqPBcLK4SKctVKuOynPEWXxuehgVp1RBKTQ9 + BiqSyhSq/OP6EyXGsvIKs/mMBUUlAYElPmM2V5SXGUtO6I/nqxQyqSiMSjsM4x9DKlJK + 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 + e8L2LzsDu2S7ZruJ5Yzlccvrlo/Zq9mz7GvshQ50hxiHnxyEjqqOLMdax6dO6k4cp3qn + 5846zknOR51fuxi7CFzaXT662rpudu1xQ7l5uuW7DbpT3cPcK9yfeKh5JHi0eEx5Wnhu + 9Ozxwnj5eO3zustUYrKZTcwpbyvvzd59PmSfEJ8Kn6e+ur4C324/2M/bb7/fI39Nf55/ + ZwAIYAbsD3gcyAhcF/hrEDYoMKgy6FmwSfCm4P4QWsiakOaQD6EuoUWhD8O0wzLCesPF + w1eGN4V/jHCLKI4QRhpFbo68HqUQxY3qisZFh0fXR0+vcF9xYMX4SouVeSvvrGKsWr/q + 6mqF1Smrz64RX8NaczIGExMR0xzzlRXAqmVNxzJjq2Kn2K7sg+yXHCdOCWcyzj6uOO55 + vH18cfxEgn3C/oTJRMfE0sRXXFduBfdNkldSddLH5IDkhuS5lIiUtlR8akzqaR6Vl8zr + W6u8dv3aYb4eP48vXGe77sC6KYGPoD4NSluV1pUuhRibgQztjJ0Zo5kOmZWZn7LCs06u + l1zPWz+wQXfD7g3Psz2yf96I3sje2LtJddP2TaObnTfXbIG2xG7p3aq+NXfr+DbPbY3b + iduTt/+WY5xTnPN+R8SO7lyl3G25Yzs9d7bkieUJ8u7usttV/QP6B+4Pg7vNdpfvns3n + 5F8rMC4oLfhayC689qPJj2U/zu2J3zNYZFl0eC92L2/vnX2O+xqLJYuzi8f2++3vKKGX + 5Je8P7DmwNVS89Lqg8SDGQeFZb5lXeUa5XvLv1YkVtyudKlsq1Ks2l318RDn0Mhhp8Ot + 1UrVBdVffuL+dK/Gs6ajVqu29Aj2SOaRZ3Xhdf0/W//cVK9QX1D/rYHXIGwMbuxrsmpq + alZsLmqBWzJaJo+uPDp0zO1YV6tBa02bTFvBcXA84/iLX2J+uXPC50TvSeuTrac0T1W1 + 09rzO6CODR1TnYmdwq6oruHT3qd7u+262381/LXhjOqZyrPSZ4vOEc/lnps7n31+uoff + 8+pCwoWx3jW9Dy9GXrzVF9Q3eMnn0pXLHpcv9jv3n79if+XMVdurp69ZX+u8bnm9Y8Bi + oP03i9/aBy0HO25Y3egashnqHl4+fG7EceTCTbebl28xb12/7X97+E7YnXt3V94V3uPc + m7ifcv/Ng8wHMw+3PcI8yn8s8bj0ieKT2t91fm8TWgrPjrqNDjwNefpwjD328o+0P76O + 5z6jPCt9rvK8acJ04sykx+TQixUvxl/yX868yvtT8s+q19qvT/3l9NfAVOTU+BvBm7m3 + he/k3zW8N3/fOx04/eRD6oeZj/mf5D81frb+3P8l4svzmayvuK9l33S+dc/6zD6aS52b + 47MErHkvgDgDAMfHA/C2AQBKFAC0IQCIPQt+eD4DWvDwCIu8/Lyf/09e8Mzz+ZYA1PUA + xKABwHQCoBxhBsK0bQCIbCFi6WAzs6WGKKJIizcznQeIrIBYk565ubdzAOBiAPg2ODc3 + UzY3960U8TrvATjvv+DDRdloLgAa7wD0rqI/I2abSPk+/gUYHukeCmVuZHN0cmVhbQpl + bmRvYmoKMTYgMCBvYmoKMjY2NQplbmRvYmoKMTIgMCBvYmoKWyAvSUNDQmFzZWQgMTUg + MCBSIF0KZW5kb2JqCjE3IDAgb2JqCjw8IC9MZW5ndGggMTggMCBSIC9OIDEgL0FsdGVy + bmF0ZSAvRGV2aWNlR3JheSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGF + Uk9IFFEc/s02EoSIQYV4iHcKCZUprKyg2nZ1WZVtW5XSohhn37qjszPTm9k1xZMEXaI8 + dQ+iY3Ts0KGbl6LArEvXIKkgCDx16PvN7OoohG95O9/7/f1+33tEbZ2m7zspQVRzQ5Ur + paduTk2Lgx8pRR3UTlimFfjpYnGMseu5kr+719Zn0tiy3se1dvv2PbWVZWAh6i22txD6 + IZFmAB+ZnyhlgLPAHZav2D4BPFgOrBrwI6IDD5q5MNPRnHSlsi2RU+aiKCqvYjtJrvv5 + uca+i7WJg/5cj2bWjr2z6qrRTNS090ShvA+uRBnPX1T2bDUUpw3jnEhDGinyrtXfK0zH + EZErEEoGUjVkuZ9qTp114HUYu126k+P49hClPslgqIm16bKZHYV9AHYqy+wQ8AXo8bJi + D+eBe2H/W1HDk8AnYT9kh3nWrR/2F65T4HuEPTXgzhSuxfHaih9eLQFD91QjaIxzTcTT + 1zlzpIjvMdQZmPdGOaYLMXeWqhM3gDthH1mqZgqxXfuu6iXuewJ30+M70Zs5C1ygHEly + sRXZFNA8CVgUfYuwSQ48Ps4eVeB3qJjAHLmJ3M0o9x7VERtno1KBVnqNV8ZP47nxxfhl + bBjPgH6sdtd7fP/p4xV117Y+PPmNetw5rr2dG1VhVnFlC93/xzKEj9knOabB06FZWGvY + duQPmsxMsAwoxH8FPpf6khNV3NXu7bhFEsxQPixsJbpLVG4p1Oo9g0qsHCvYAHZwksQs + Why4U2u6OXh32CJ6bflNV7Lrhv769nr72vIebcqoKSgTzbNEZpSxW6Pk3Xjb/WaREZ84 + Or7nvYpayf5JRRA/hTlaKvIUVfRWUNbEb2cOfhu2flw/pef1Qf08CT2tn9Gv6KMRvgx0 + Sc/Cc1Efo0nwsGkh4hKgioMz1E5UY40D4inx8rRbZJH9D0AZ/WYKZW5kc3RyZWFtCmVu + ZG9iagoxOCAwIG9iago3MDQKZW5kb2JqCjEwIDAgb2JqClsgL0lDQ0Jhc2VkIDE3IDAg + UiBdCmVuZG9iagoxOSAwIG9iago8PCAvTGVuZ3RoIDIwIDAgUiAvTiAzIC9BbHRlcm5h + dGUgL0RldmljZVJHQiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGFVM9r + E0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0Sre + Re2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQN + x1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A + 4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXT + QINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmt + P0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQ + OMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUE + YZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4q + r8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xX + lzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn + /WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6 + JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODI + mbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05 + Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS + +fmsUtl+ThrWgZf6b8C8/UUKZW5kc3RyZWFtCmVuZG9iagoyMCAwIG9iago3MzcKZW5k + b2JqCjcgMCBvYmoKWyAvSUNDQmFzZWQgMTkgMCBSIF0KZW5kb2JqCjMgMCBvYmoKPDwg + L1R5cGUgL1BhZ2VzIC9NZWRpYUJveCBbMCAwIDU3NiA3MzNdIC9Db3VudCAxIC9LaWRz + IFsgMiAwIFIgXSA+PgplbmRvYmoKMjEgMCBvYmoKPDwgL1R5cGUgL0NhdGFsb2cgL1Bh + Z2VzIDMgMCBSIC9WZXJzaW9uIC8xLjQgPj4KZW5kb2JqCjIyIDAgb2JqCjw8IC9MZW5n + dGggMjMgMCBSIC9MZW5ndGgxIDEwOTI4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0 + cmVhbQp4Ab1aC3hTVbZe+7yT9JGkzbNNkzRJ00f6hD4ChaalL2jLo1BosdUWKFMYQFCs + IMKggEDRUe+MUJE76oAjg5e5aXEwwOjlMjAwAnMdH1dEr44jMCh2cBwEeeTkrn1SKvSb + z+v3Xb/J6crea+99zl7n3+u1d7P0nvs6IRZWAwuTZ3YsngvKJ70LgKmdvbBjcZRPqMXy + 8OzupY4oz6cDsI/MXfyDhVFeCgKo3T9YsHzw/kQcn7Ctq7NjTrQfbmBZ1IUNUZ6MxNLd + tXDpsiivfxvLpQvunj3YnxiDfOnCjmWD88MHyDsWdSzsjI5PD2CZvvjue5dGee8ZLFsX + 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 + ZSAvRm9udERlc2NyaXB0b3IgL0FzY2VudCA3NzAgL0NhcEhlaWdodCA3MjAgL0Rlc2Nl + bnQgLTIzMCAvRmxhZ3MgMzIKL0ZvbnRCQm94IFstMTAxOCAtNDgxIDE0MzYgMTE1OV0g + L0ZvbnROYW1lIC9CR05GQVUrSGVsdmV0aWNhLUJvbGQgL0l0YWxpY0FuZ2xlCjAgL1N0 + ZW1WIDAgL0F2Z1dpZHRoIC00NzkgL01heFdpZHRoIDE1MDAgL1hIZWlnaHQgNTMyIC9G + b250RmlsZTIgMjIgMCBSID4+CmVuZG9iagoyNSAwIG9iagpbIDI3OCAwIDAgMCAwIDAg + MCAwIDAgMCAwIDAgMCAwIDAgMjc4IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw + IDAgMCA3MjIKMCAwIDcyMiA2NjcgMCA3NzggMCAyNzggMCAwIDYxMSAwIDcyMiAwIDY2 + NyAwIDcyMiA2NjcgNjExIDcyMiAwIDAgMCA2NjcgMAowIDAgMCAwIDAgMCA1NTYgMCA1 + NTYgNjExIDU1NiAwIDYxMSAwIDI3OCAwIDAgMjc4IDAgNjExIDYxMSA2MTEgMCAwIDU1 + NiAzMzMKNjExIF0KZW5kb2JqCjExIDAgb2JqCjw8IC9UeXBlIC9Gb250IC9TdWJ0eXBl + IC9UcnVlVHlwZSAvQmFzZUZvbnQgL0JHTkZBVStIZWx2ZXRpY2EtQm9sZCAvRm9udERl + c2NyaXB0b3IKMjQgMCBSIC9XaWR0aHMgMjUgMCBSIC9GaXJzdENoYXIgMzIgL0xhc3RD + aGFyIDExNyAvRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKPj4KZW5kb2JqCjI2IDAg + b2JqCihVbnRpdGxlZCkKZW5kb2JqCjI3IDAgb2JqCihNYWMgT1MgWCAxMC42LjQgUXVh + cnR6IFBERkNvbnRleHQpCmVuZG9iagoyOCAwIG9iagooQWRhbSBIYXdraW5zKQplbmRv + YmoKMjkgMCBvYmoKKE9tbmlHcmFmZmxlIFByb2Zlc3Npb25hbCkKZW5kb2JqCjMwIDAg + b2JqCihEOjIwMTAxMDAyMDM1MjAyWjAwJzAwJykKZW5kb2JqCjMxIDAgb2JqCigpCmVu + ZG9iagozMiAwIG9iagpbIF0KZW5kb2JqCjEgMCBvYmoKPDwgL1RpdGxlIDI2IDAgUiAv + QXV0aG9yIDI4IDAgUiAvUHJvZHVjZXIgMjcgMCBSIC9DcmVhdG9yIDI5IDAgUiAvQ3Jl + YXRpb25EYXRlCjMwIDAgUiAvTW9kRGF0ZSAzMCAwIFIgL0tleXdvcmRzIDMxIDAgUiAv + QUFQTDpLZXl3b3JkcyAzMiAwIFIgPj4KZW5kb2JqCnhyZWYKMCAzMwowMDAwMDAwMDAw + IDY1NTM1IGYgCjAwMDAwMTgyMzIgMDAwMDAgbiAKMDAwMDAwMTg5MyAwMDAwMCBuIAow + MDAwMDA5OTM0IDAwMDAwIG4gCjAwMDAwMDAwMjIgMDAwMDAgbiAKMDAwMDAwMTg3MyAw + MDAwMCBuIAowMDAwMDAxOTk3IDAwMDAwIG4gCjAwMDAwMDk4OTggMDAwMDAgbiAKMDAw + MDAwMjE1OCAwMDAwMCBuIAowMDAwMDAyNjk4IDAwMDAwIG4gCjAwMDAwMDkwMDEgMDAw + MDAgbiAKMDAwMDAxNzgxOCAwMDAwMCBuIAowMDAwMDA4MTM2IDAwMDAwIG4gCjAwMDAw + MDI3MTcgMDAwMDAgbiAKMDAwMDAwNTMyNiAwMDAwMCBuIAowMDAwMDA1MzQ3IDAwMDAw + IG4gCjAwMDAwMDgxMTUgMDAwMDAgbiAKMDAwMDAwODE3MyAwMDAwMCBuIAowMDAwMDA4 + OTgxIDAwMDAwIG4gCjAwMDAwMDkwMzggMDAwMDAgbiAKMDAwMDAwOTg3OCAwMDAwMCBu + IAowMDAwMDEwMDE3IDAwMDAwIG4gCjAwMDAwMTAwODEgMDAwMDAgbiAKMDAwMDAxNzMw + MyAwMDAwMCBuIAowMDAwMDE3MzI0IDAwMDAwIG4gCjAwMDAwMTc1NzAgMDAwMDAgbiAK + MDAwMDAxNzk5OCAwMDAwMCBuIAowMDAwMDE4MDI1IDAwMDAwIG4gCjAwMDAwMTgwNzcg + MDAwMDAgbiAKMDAwMDAxODEwOCAwMDAwMCBuIAowMDAwMDE4MTUxIDAwMDAwIG4gCjAw + MDAwMTgxOTMgMDAwMDAgbiAKMDAwMDAxODIxMiAwMDAwMCBuIAp0cmFpbGVyCjw8IC9T + aXplIDMzIC9Sb290IDIxIDAgUiAvSW5mbyAxIDAgUiAvSUQgWyA8YjExN2EwY2Q0MGJh + YzZmNGE0ODQ4M2M4ZmFmY2FmNTY+CjxiMTE3YTBjZDQwYmFjNmY0YTQ4NDgzYzhmYWZj + YWY1Nj4gXSA+PgpzdGFydHhyZWYKMTgzOTEKJSVFT0YKMSAwIG9iago8PC9BQVBMOktl + eXdvcmRzIDMyIDAgUiAvQXV0aG9yIChBZGFtIEhhd2tpbnMpL0NyZWF0aW9uRGF0ZSAo + RDoyMDEwMTAwMjAzMzkwMFopL0NyZWF0b3IgKE9tbmlHcmFmZmxlIFByb2Zlc3Npb25h + bCA1LjEuMSkvS2V5d29yZHMgMzEgMCBSIC9Nb2REYXRlIChEOjIwMTAxMDAyMDM1MTAw + WikvUHJvZHVjZXIgMjcgMCBSIC9UaXRsZSAyNiAwIFIgPj4KZW5kb2JqCnhyZWYKMSAx + CjAwMDAwMTkyMDkgMDAwMDAgbiAKdHJhaWxlcgo8PC9JRCBbPGIxMTdhMGNkNDBiYWM2 + ZjRhNDg0ODNjOGZhZmNhZjU2PiA8YjExN2EwY2Q0MGJhYzZmNGE0ODQ4M2M4ZmFmY2Fm + NTY+XSAvSW5mbyAxIDAgUiAvUHJldiAxODM5MSAvUm9vdCAyMSAwIFIgL1NpemUgMzM+ + PgpzdGFydHhyZWYKMTk0MjMKJSVFT0YK + + QuickLookThumbnail + + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPPPAAEAAAABGGJYWVogAAAAAAAAd3QAADz+ + AAADCVhZWiAAAAAAAABY4gAArf4AABphWFlaIAAAAAAAACZ/AAAVAwAAtcJjdXJ2AAAA + AAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADYAOwBAAEUASgBPAFQAWQBeAGMAaABt + AHIAdwB8AIEAhgCLAJAAlQCaAJ8AowCoAK0AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA + 8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGS + AZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcC + cQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+ + A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE + 0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZ + BmoGewaMBp0GrwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8I + MghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9 + ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4M + pwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9B + D14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYS + RRJkEoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4 + FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZ + IBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1 + HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwh + SCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXH + JfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsq + zysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+ + MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1 + wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuq + O+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5C + MEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjX + SR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91Q + J1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeS + V+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ff + s2AFYFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fp + aD9olmjsaUNpmmnxakhqn2r3a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw + 4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnn + ekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eD + uoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Y + jf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CY + TJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMG + o3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2u + oa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7 + urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbG + w8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE + 08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4Dbg + veFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o + 7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8 + mP0p/br+S/7c/23//3BhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAArAdmNndAAA + AAAAAAABAAEAAAAAAAAAAQAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAQAAbmRpbgAAAAAA + AAA2AACkwAAAVQAAAElAAACZwAAAJwAAABOAAABQAAAAVAAAAjMzAAIzMwACMzMAAAAA + AAAAAHNmMzIAAAAAAAEMGgAABcD///L/AAAHYAAA/c7///uY///9lgAAA/QAAL9ObW1v + ZAAAAAAAAARpAAAk8wAB85rHdWCAAAAAAAAAAAAAAAAAAAAAAA== + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{524, 166}, {751, 866}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{-13, 0}, {602, 712}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + saveQuickLookFiles + YES + + diff --git a/doc/signup/static/state_chart.png b/doc/signup/static/state_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..95c787adefde893b6bac763022082e153ac72ebb GIT binary patch literal 21356 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 Zt)3!E{^QkRu)K&yN7GQ_xtiVG{{U7O-BADl literal 0 HcmV?d00001