CINXE.COM

Episode 297 Macy's Amazing HBA2C + What Does the Evidence Show for VBA2C? - The VBAC Link | Podcast on Spotify

<!doctype html><html class="mobile-web-player" lang="en" dir="ltr"><head><meta charSet="utf-8"/><title>Episode 297 Macy&#x27;s Amazing HBA2C + What Does the Evidence Show for VBA2C? - The VBAC Link | Podcast on Spotify</title><meta property="og:site_name" content="Spotify"/><meta property="fb:app_id" content="174829003346"/><link rel="icon" sizes="32x32" type="image/png" href="https://open.spotifycdn.com/cdn/images/favicon32.b64ecc03.png"/><link rel="icon" sizes="16x16" type="image/png" href="https://open.spotifycdn.com/cdn/images/favicon16.1c487bff.png"/><link rel="icon" href="https://open.spotifycdn.com/cdn/images/favicon.0f31d2ea.ico"/><meta http-equiv="X-UA-Compatible" content="IE=9"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="https://encore.scdn.co/fonts/SpotifyMixUI-Regular-cc3b1de388efa4cbca6c75cebc24585e.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="preload" href="https://encore.scdn.co/fonts/SpotifyMixUITitleVariable-8769ccfde3379b7ebcadd9529b49d0cc.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="preload" href="https://encore.scdn.co/fonts/SpotifyMixUITitle-Bold-37290f1de77f297fcc26d71e9afcf43f.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="preload" href="https://encore.scdn.co/fonts/SpotifyMixUI-Bold-4264b799009b1db5c491778b1bc8e5b7.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="preload" href="https://encore.scdn.co/fonts/SpotifyMixUITitleVariable-8769ccfde3379b7ebcadd9529b49d0cc.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="preload" href="https://encore.scdn.co/fonts/SpotifyMixUITitle-Extrabold-ba6c73cd7f82c81e49cf2204017803ed.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><meta name="description" content="Listen to this episode from The VBAC Link on Spotify. Macy’s first birth was a scheduled C-section due to breech presentation that required follow-up exploratory surgery due to an unknown cause of internal bleeding. Unfortunately, her surgeon had accidentally nicked an ab muscle. Macy’s recovery was very difficult.With her second, doctors were nervous about her chances of VBAC and would only let her try if she showed up in active labor before 39 weeks. Otherwise, she would go in for a scheduled C-section. Macy agreed and her birth ended in another Cesarean. Her birth was beautiful and her recovery was smooth, but it still wasn’t the empowering experience she hoped for. Macy hit the ground running during her third pregnancy. When doctors were not supportive of a VBA2C, she knew home birth was her best option. She found a midwife who was willing to take Macy on as her first VBA2C client! We know you will absolutely love listening to this birth story. Like Meagan said, “It is so beautiful. It is so peaceful. It sounds like one of those births where you close your eyes and you envision birth and how peaceful, beautiful, and calm it really can be.”The VBAC Link Blog: VBA2C Practice Bulletin - VBACInformed Pregnancy - code: vbaclink424Needed WebsiteHow to VBAC: The Ultimate Prep Course for ParentsFull Transcript under Episode Details 03:44 First C-section with internal bleeding and a follow-up exploratory surgery09:04 Second pregnancy11:37 Scheduled C-section and getting pregnant again shortly after18:44 Finding a supportive home birth midwife23:24 VBA2C prep during pregnancy27:46 Labor begins32:42 Breaking her own water and pushing for 17 minutes36:47 ACOG’s statement on VBA2CMeagan: Hello, hello Women of Strength. We are so excited to be sharing an HBA2C story and if you don’t know yet what HBAC means, that’s home birth after Cesarean and then HBA2C is home birth after two Cesareans. I feel like that’s kind of funny. It’s never really a term I used because I wasn’t at the hospital and I wasn’t at home, but I also kind of feel like I sort of had an HBAC. It was at a birth center. Maybe that’s a term, birth center birth after two Cesareans. I don’t know. But obviously, VBAC after two Cesareans are near and dear to my own heart and today we have our friend Macy from California sharing her HBAC story and just before we started recording, we were talking about how one of her messages that she wants to give is that you can do this. Right, Macy? You’re just like, you can. People can do this. Macy: For sure. Meagan: Yes. Yes. I am excited to hear your story and then I wanted to also just talk a little bit at the end about some evidence on VBAC after two C-sections. So if you’re wondering more about VBA2C, make sure you stick to the very, very end even after the story because we’ll talk a little bit about that. 01:24Meagan: We do have a Review of the Week and this is from Jenna. It is actually on our How to VBAC: Ultimate VBAC Prep Course. She says, “I just started but have already learned so much. After two C-sections and one where my doctor made me think it was very risky, I was terrified to try again. With this course, not only have I learned the truth about VBAC, but I am excited to attempt mine in August.” That’s coming up. I am so excited for Jenna. Thank you so much for the review and the support, of course, of taking the course. I am so excited that you are getting educated and definitely keep us posted. 03:44 First C-section with internal bleeding and a follow-up exploratory surgeryMeagan: Okay, cute Macy. Welcome to the show. Macy: Thank you for having me. Meagan: Absolutely. I’d love to turn the time over to you and share whatever message you feel is important for our beautiful Women of Strength listeners. Macy: Okay, well like with all VBACs, my story begins of course with my first pregnancy. During my first pregnancy, I was pretty healthy. I didn’t love being pregnant, but I was excited that we were starting our family and I got to– I can’t remember– 34 weeks maybe, 35ish, and baby was still breech. They offered me the ECV procedure, but they told me I would have to do it around 37-38 weeks and I was worried about it being so early before my due date that she would turn again. I was scared. They got me scared. They don’t really present the ECVs as something that should work. Meagan: I know. I know. Macy: My midwife with my third pregnancy was like, “I wish you would have done it,” but they talked me out of it so I decided not to do it. Come 40 weeks, she was still not flipped, but I wasn’t in labor so another thing is I wish I would have just waited to see because maybe she would have flipped in labor. Meagan: Sometimes they do. I actually recently had a client last year in 2023 that did have that. She was scheduled for her version and then she went into spontaneous labor so she actually went in pretty early because she was like, “Oh my gosh. My baby’s breech. I was scheduled the next day for a version,” and they were like, “Baby’s head down.” So it definitely happens. Macy: With my third one, she was sunny-side up. She was posterior, but I could feel her turning and getting into position. But anyway, I’ll get there. I’ll get there. I had my C-section scheduled. My daughter, Alayna was born 10 days before Christmas in 2018. She was perfect. She was 6 pounds, 13 ounces. I was not great. After my surgery, I came out. I was in the PACU and my blood pressure was dropping crazy low and my heart rate was spiking super high. I was ghost-white and they were like, “We don’t know what’s going on.” Long, long, long story short, I was having crazy internal bleeding. Meagan: I was going to say, were you hemorrhaging? Because that sounds like hemorrhaging. Macy: I was hemorrhaging. I was bleeding internally, but it was from having surgery. It was not anything to do with baby or birth. It was just surgery. So what we discovered is they had accidentally nicked an ab muscle and it was bleeding. 24 hours after my daughter was born, I had to go back in for an exploratory surgery and I was put under anesthesia completely again. They had to cut back open my layers and start over. Thankfully, they didn’t have to cut into my uterus again, but they did open me back up and stop the bleeding, cauterize it and I mean, my recovery was just horrible. Meagan: Not great, yeah. Macy: I mean, thankfully I only had one baby so it was just her and my husband is amazing. I could not ask for a better partner, but it was just hard. It was hard to accept that, to grieve the birth I had dreamed of my whole life, but it never occurred to me that I couldn’t have a VBAC. My mom had me via C-section and my three subsequent siblings were all VBAC. So when someone said to me at 12 weeks, I recovered. I was back at the gym and someone from the gym was like, “Oh, so you have to have all your babies as C-sections now.” I was like, “Wait, that’s a thing still? We’re still doing that?” I was like, “No. I’m going to have a VBAC.” I never even thought about it. I immediately was like, “Oh, so this is going to be a thing.” That’s when I found you guys and I started listening before I was even pregnant with my second one, but when I did get pregnant three years later with baby number two, I probably binge-listened to every single episode. I was like, “I’m doing this.” 09:04 Second pregnancyMacy: I switched providers just because I didn’t have a great experience so I was like, my postpartum care, I didn’t care for my pediatrician so I just switched everything. But because I was with a new provider, I had a really difficult time locating my surgical notes. My new providers wanted to know if my first C-section was done with a single or double-layer closure. Meagan: Oh, interesting. Okay. Macy: Because of course, if it’s single, it’s going to increase my risk for a rupture. I at this point was already like, the risk of rupture is so low. I am not worried about it. Breech baby is a great candidate for VBAC. Meagan: And the evidence on that is really not solid on which one really is best. There are some that show double may be better, but that doesn’t necessarily mean that your rupture rate skyrockets because you have a single layer. So they are focusing on something that didn’t have a ton of evidence. Macy: Right. I was like, “There is just not enough research to justify all of these C-sections.” But because they didn’t understand what had gone wrong and why I had to have a second surgery even though I told them a million times it wasn’t anything to do with my uterus. It wasn’t a me problem. It was a doctor&#x27;s problem. They were just like, “We just don’t feel comfortable with TOLAC.” And you know, it’s always TOLAC. It’s never just a VBAC. Meagan: I know. Macy: But they didn’t want to do anything. They didn’t want to offer ultrasounds. They just were not willing to take a chance even though it was a really good chance. So basically, they were like, “The only way you are having this second baby VBAC is if you come to the hospital and you are in labor and it’s time to push.” I mean, that’s kind of scary to someone who doesn’t know. I mean, now that I’ve done it I’m like, “That’s what I should have done,” and that’s what I tell my friends. You don’t go to the doctor until your contractions are two minutes apart because they try to scare women out of their VBAC. 11:37 Scheduled C-section and getting pregnant again shortly afterMacy: So I just didn’t really stand up for myself. I just agreed like, “Okay, I guess.” I told myself, “If I go into labor before my scheduled C-section at 39 weeks, then that’s the way God wants it and I will have my VBAC.” Obviously, that never happened and 39 weeks is pretty early now knowing especially when due dates are just guess dates. Meagan: Very important note that you just gave there. Macy: Yeah. I had my baby at 39 weeks. She was perfect. I mean, my recovery was– she was another 6 pounds, 15 ounces so they were almost the same size. That was Reagan. Recovery was a lot better but still, I had a 3-year-old at home. Going from one to two was pretty good for me. I have a big family. That was great. But it was still not the empowering birth that I wanted. I did feel– I don’t want to say I didn’t feel empowered because C-section is badass. It’s hard. Meagan: Yeah. Mhmm, yeah. Macy: It’s not the easy way out ever. There is no easy way out of birth. I do want to preface that and say if that’s what ends up happening and you only have two kids and you only have two C-sections, that’s okay too. I knew we weren’t done having kids. I wanted the birth I wanted. I did not plan to get pregnant with such a short turnaround time. I was almost 8 months postpartum when we found out we were pregnant again. We were a little surprised. I mean, we are grown adults. It shouldn’t be that surprising. Meagan: But still, it can be a little alarming when you weren’t mentally preparing for that. Macy: I had just finished breastfeeding. I was just starting to track and all of these things so I was like, “Oh no.” But that was kind of when my work really started for me because I was like, “Okay. We are doing this again and I’m going to do this the way I want. This is going to be how I want it to go. This is my story and this is going to be an essential component of who I am as a woman and as a mother going forward for the rest of my life. I need this to go the way I want it to go.” I wanted it to go the way God wanted it to go of course, but I was like, “I’m going to take more control.” Meagan: Can I add something to that? Sorry to interrupt, but there are so many times that I hear people, I read on social media that people are getting after moms and parents who are like, “I want this birth. This is what I want. This is what I feel I need,” or what you are saying. “I want it to go a certain way.” They are like, “Why do you have to focus on what you want? It’s not what you want. It’s what’s best for the baby.” They are railing on these people. I want to stop and say that what you said is okay. I feel like maybe a little passionate about that too because so many people were naysayers to me. “It does not matter what you want. It’s what’s best for the baby.” It’s like, well guess what? That’s also maybe what’s best for my baby. Macy: Right. Meagan: It’s okay to say, Women of Strength, “I want this birth. This is what I want.” And you deserve that. You deserve to go after what you want. Macy: It is hard and being a mom is hard. Meagan: Yes. Macy: You can start out in a way that you feel empowered. It is life-changing. It really is. Meagan: It is. So sorry for interrupting, but I just wanted to give a little tidbit that it’s okay for people to want what they want. I wanted a white vehicle. I was going to find a white vehicle. It’s okay to get what you want and to put forth energy and to say that out loud, “I want this VBAC. I’m going to get this. I want it.” Macy: You spend almost 10 months thinking about this and praying about it whereas you talk to– I mean, it wasn’t as important to anyone else in my life except for me. That was okay. Especially the doctors and the providers, I’m just another person to them and yes, there are some really great providers out there and they do care, but they are at their job. They are doing their job. Well, my job is to be a mother. That’s my job, so doing what serves me well was birthing my baby the way– Meagan: Having a VBAC. Macy: Having a VBAC. So I really hit the ground running. There were a few girls in my town who had recently had homebirths. They weren’t VBACs, but they were VBACs so I reached out to them– shoutout to my girls Megan and Emily. They were so helpful because they were real people. I reached out to you guys and I just wanted to know, “Hey, what is the research on really close pregnancies?” because I wasn’t going to hit the 18 months. Meagan: The 18 months. Your babies were going to be 17 months apart, right? Macy: 17 months. So that was even annoying too because I was like, “I’m right there. Come on.” You guys were like, “Go join the Facebook Community group.” I was so glad that I did because I was just finding story after story after post after post. Not only were so many women having VBACs after two+ C-sections, but they were close together. Some were like, “Mine were 12 months apart.” I’m like, “Oh, I’m good to go then.” It was so nice having that community. I was even able to join a community within the community of everyone who was due at the same time as me so when we got close, we had a group message and everyone was like, “Is it happening today? Is it happening today?” It was so nice not to be alone in that. I also had to find a midwife because I knew my providers were not going to be supportive of VBAC after two. I actually had a hard time finding a midwife which was also annoying because I was met with some medwives who were just really going to stick to that 18 months. 18:44 Finding a supportive home birth midwifeThen I happened to just find a woman who was like, “I’ve never done this before. You are my first VBAC after two,” but she was a midwife who was very knowledgeable. She had done lots of home births. She had done VBACs, but not after two. She was like, “If we don’t start accepting these patients, how are we ever going to change the status quo? How are we ever going to make a change?” Meagan: Boom.Macy: Right. Meagan: It’s so true though. Macy: I was like, “Okay. Statistic me, please. I would love to be a statistic for the positive.” The only thing was I was like, “I can’t be one for a hospital birth, but it’s fine.” Meagan: That’s okay. That’s okay. Macy: So I found Sarah. I started my visits with her. I had to travel an hour to my visits. It wasn’t the worst thing ever. Meagan: That’s a commitment though. That’s a commitment. Macy: Towards the end, she came to me a lot more which was so nice. So nice. Meagan: That’s really nice. Macy: Then we did a couple of phone calls, but we also texted all of the time and would FaceTime. It was just so personal. I also received co-care with another third local provider. I did that because my midwife wanted to have me get ultrasounds to check my uterus. She wanted to check for previa and we wanted to check for– what’s the other one? I’m blanking. Meagan: Accreta? Macy: Yes, so she just wanted to be aware. Meagan: Placental issues and make sure the placenta is out of the way and all is doing okay. You’re actually clear to have a VBAC. Macy: Yeah. Meagan: Which is very responsible of her. Macy: I received my co-care. I would go in there. I don’t know. I almost had a chip on my shoulder because I was like, “I don’t really need you guys,” kind of. I didn’t leave those appointments feeling like I wanted to cry like I did with my second pregnancy because I knew that I had something better planned. So it wasn’t as upsetting, but they were pretty rough on me. I had expressed my interest in a VBAC after two and you have to see the series of providers within the office. I had only one who was a little bit younger which was interesting, but he was the only one who was like, “Yeah. I really support this and the birth you want to have. I’m going to give you a referral to UC San Francisco and when we get to the end, I want you to start care there and plan to have your birth there.” He was the only one who was like, “I support the birth you want to have.” Everyone else was pretty awful. They told me, “If you TOLAC and your uterus ruptures, you will die and your baby will die.” I was like, I will never forget getting in my car and texting my midwife and being like, “Can you believe that he just said this to me?” I was just like, “Are you God? Do you know?” How could you say that to someone? “You will die.” Because that’s not the case at all. That was interesting but I knew. Like I said, I knew I had a backup plan in the back of my mind. It was just eye-opening for me more than anything. It wasn’t upsetting. Meagan: Someone that doesn’t necessarily know the evidence of that, it can be terrifying. Macy: Yeah. Yes, totally. And you know what? It’s frustrating because a lot of people just trust their providers. I’m a very skeptical person. I’m very conspiratorial, so I’m always researching things and looking into things, but people who are not prone to that are just going to trust what the doctor says because they went to school and they are smarter than them. It’s so unfortunate that it’s causing a high C-section rate for no reason. 23:24 VBA2C prep during pregnancyMacy: That was a bummer but anyway, throughout my pregnancy, I did all of the things. I did my VBAC Link course. I loved it. It was great to have that. I did a Lamaze class which was really fun. It was funny because we were the only parents in there with other kids. One other lady was a VBAC, but the rest were all first-time parents. They were like, “What are you doing here?” I’m like, “This is new for me.” Again, shoutout to Modesto Birth and Beyond. They are fantastic. They have a great set of doulas. I’m now on a friendly basis with them. They were great to have and they were really supportive of my whole journey. Let’s see what else. I did a Hypnobirthing class. I read Ina May’s Guide to Childbirth. I mean, I walked and I stayed in shape. I kept doing CrossFit. I did CrossFit for all three of my pregnancies so I kept on. I ate healthy. I drank lots of water. I did all of the things. But I knew that when it came down to it, my mind was going to either make or break me.Fast forward to 41 weeks and I was getting very, very anxious. Meagan: Were you getting anxious because you were getting ready to have a baby type thing or were people giving you some grief that you were over 40 weeks? Macy: By the time I was 40-41 weeks, the grief and the doubt and the naysayers that I got were kind of gone. Most of the people in my life were supportive. I always got that question of, “What if this happens?” I live 5 minutes from the hospital, so I was not too worried about it. I was more anxious of, I was ready to meet this baby. I was the biggest I’d ever been. Third baby, only 17 months apart. My belly was huge. It was hot. I was swelling. I was ready to be done, but I also had never labored before. I had no clue what my body was going to do. Was I just going to go into spontaneous labor at 40 weeks? At 39? I had no idea. So every day that passes, I’m sure you remember that too, every day was a whole week where you wake up in the morning and I would just cry, “I can’t believe I’m still pregnant.” Meagan: I remember going to bed and I was like, “Tonight could be the night,” and then I’d wake up and I was like, “It wasn’t the night,” then that night, I’d be like, “Maybe tonight,” and it just kept happening. Macy: So annoying. I had so much prodromal labor. I had contractions. I could time them and I was like, “Oh, they are 20 minutes apart. They are for sure going to get closer,” then I’d go to sleep, wake up, and be like, “Okay. Here we go again.” Let’s see. So on a Monday, I did acupuncture. Then on a Wednesday morning, I was 41 weeks and I went and got a massage. I got some acupressure. You never know if these are the things that really get things going, but sometimes they do. I got a massage and she gave me some moxibustion so I did that. You light it and do it around– my mom was like, “This is so hokey.” I’m like, “If it works, who cares?” I was trying everything. But I didn’t want to be induced and I hadn’t had my membranes swept yet. That was going to be the first intervention that my midwife and I agreed on because she was like, “Legally in California, you can’t go past 42 weeks and have a home birth.” I was like, “Okay. I’ve got one week. One week and this baby will be here.” 27:46 Labor beginsMacy: That Wednesday morning, I went and got my massage and by 2:00 in the afternoon, I was like, “Okay. Things are starting to pick up.” I started having pretty intense contractions. I was having to– I could still talk. I was still taking care of my two little girls, but I was starting to feel really uncomfortable. My mom went home, then she came back. My husband gets off work at 3:30 and it was 2:30. I was feeding my youngest one a snack and he was like, “Do you want me to come home early?” I was like, “No, I can totally make it until you get home.” I had a contraction where I leaned over my kitchen counter, and then I was like, “Okay. Maybe just come home now.” He came home. I just didn’t feel it. I was starting to feel irritated by my kids and I was like, “I just want to go in my room and watch a show on my laptop. I just want to be alone.” I didn’t necessarily want them to leave yet, but I wanted to be alone and I wanted to know that they were taken care of. He came home and he was taking care of them. He was like, “Do you think this is it? Let’s call my mom.” I was like, “Yeah. I think this is happening and I think it’s going to be soon.” I just didn’t know how long I was going to labor. It was a mystery. My mother-in-law came and picked up my little two daughters. That was kind of sad watching them leave knowing the next time I saw them, we were going to be a different family– a better family, but a different family. Yeah. I just labored at home. It was so nice not having to go anywhere. I took a shower. I had some snacks. I wasn’t super hungry, but I definitely started drinking my electrolytes and started preparing to be hydrated. Meagan: Smart. Macy: I was like, “I’m preparing to run a marathon so I need to gear up.” I didn’t nap. I’ve never been a great napper, but I laid around and watched some shows, then I didn’t text my midwife right away because I had been bugging her so much with all of my prodromal labor that I was like, “I’m not going to text her until it’s really happening.” But by 6:00 or 7:00 PM, i texted her and was like, “Just so you know, my contractions are about 10 minutes apart.” As they got closer, she was like, “Okay. I’m going to come now.” Once the sun started setting, it was getting a little bit more intense. We set up my birth space at home. I set up my pool. Well, I didn’t. My husband set up the pool and we laid out all of the sheets on the couch and hung my birth affirmations. Actually, they had been hanging. My birth affirmations had been hanging for a couple of weeks so I started having them memorized, but we turned on the twinkle lights and I started listening to the Christian HypnoBirthing app which was fantastic. I just had such a peaceful labor. I don’t know how else to describe it. My mom came in and then my sister-in-law came over then my other sister-in-law came over. They just talked around me. I could hear them, but I was just in my space. I labored and my water never broke for a very long time. I got in the pool at one point and then I got back out because my husband was like, “I think that being in the pool is slowing down your contractions a little bit. I want you to get out and walk.” I got out and started walking down the hall then I got really sick with a contraction. I happened to already be laboring backwards on the toilet and I was like, “Oh my gosh. I’m going to throw up.” I jumped back off the toilet so I could throw up in it then my midwife was like, “Okay. You’re in transition now. You’ve got to be.” I hadn’t had any checks at all this whole time either too so I had no clue what I was even dilated at. I was just completely trying to trust my body and just know that when it was time, it would be time. It really was. My body just did what it knew to do. 32:42 Breaking her own water and pushing for 17 minutesMacy: Like I said earlier, I felt her move into position. I got back in the water and I felt so relaxed in the water. I was drifting off in between contractions. Meagan: Oh, that’s awesome. Macy: It was so calm and I just kept telling myself, “Breathe her down with every contraction,” and just all of the things I had been practicing, I was finally able to put into use. That was really cool, then I had a couple of urges where I was like, “I feel like I can start pushing soon.” I was like, “Do you want to check me now?” As soon as she stuck her finger, I was like, “Oh, no. No. Get your finger out. It’s time. She’s coming.” She was like, “Yeah. She’s ready. She’s right there, but your waters haven’t broken yet.” I was like, “Can I break them myself?” She was like, “Yeah,” so I reached in. I gave it a pinch-twist and in the water, I broke it. Meagan: Oh my gosh, that’s so cool. Macy: I felt the padding around her head, then I just felt her head. I felt her hair. I started pushing when it was time to push and I pushed for 17 minutes. It was perfect. Like I said, I felt her move and get into position. She came out and she was 9 pounds, 12 ounces so she was 3 pounds– Meagan: I was going to say 6lb,15oz, right, was your second and close to your first?Macy: 3 pounds heavier than my other two. She came out. She did perfectly. Her heart rate was perfect the whole time. She came out mad, screaming mad. She was so cozy in there. She did not want to come out. She came out but hearing her cry within 20 seconds was so reassuring. She was safe. I didn’t need anybody. I just needed to trust my body and to trust the Lord. My midwife was like, “That was one of the most perfect births I have ever attended.” She was beaming with joy and she was so excited for me. She was just so happy because she was like, “I’ve never done this after two.” She was like, “You changed everything I thought I knew about home birth, about after two C-sections.” She even now has another client which is great who is a VBA2C. I cannot wait for this podcast to come out so I can share it with my midwife and she can share it with her new client. Hopefully, they have a really great birth too. All in all, it was just everything I dreamed of. I was so thankful and I just remember laying there with her on my chest. I was watching the video last night trying to get in the mindset and remind myself and get there. On the video, I can hear myself go, “I’m so freaking proud of myself.” Meagan: You should be!Macy: I was beaming with joy. I was like, “That was so hard but so worth it.” So it was great. It was a great experience. I could not be more happy with her birth. She’s a great baby. She’s so happy. She was a little hard at first for 10 weeks which was different for me, but after that 10-week hump, she was a really good baby. Her name is Lucille. Meagan: Cute. Macy: We call her Lucy which means “light” and she is the light of our lives. She is the best and I can’t even believe we had a family without her for a minute there. But that’s my story. 36:47 ACOG’s statement on VBA2CMeagan: Oh my gosh. It is so beautiful. It is so peaceful. It sounds like one of those births where you really do. You close your eyes and you just envision birth and how peaceful and beautiful and calm it really can be. To me, you just described the birth that you physically did with one that I would imagine. Macy: Yes. It’s how it felt. My sisters-in-law and my other girlfriend who was there taking pictures just kept saying, “You did so good.” I was just like, “I don’t know what that means.” But everyone was proud of how it all went. I think that’s so super revolutionary. I hope my story touches other people’s lives. Meagan: It totally will. I’m so happy that you found your midwife and that your midwife was willing to take you on because a lot of the time, providers can be nervous if they have never done it before. Macy: Which I get. Meagan: Oh yeah. For sure, for sure. I’m just so glad that she was willing. That’s one of the things that gets me sometimes with so many people who just are not, we have to respect them and what they are comfortable with. But really, the evidence does show that VBAC after two Cesareans is reasonable. The overall risk and rate of rupture is approximately 1.4% so it’s still very low. It’s still very, very low. I mean, ACOG themselves, the American College of Obstetricians and Gynecologists, they suggest it. They say it’s a completely reasonable option so for so many people to be cut off after one is heartbreaking because there are so many people who could have a vaginal birth all over the world but aren’t given the option. We have a high Cesarean rate. We have so many. There are so many people. Just actually weirdly enough at the gym, a man who is the darndest cutest thing ever, his name is Robin and he will always say hi to me and check in on me and how I’m doing. He knows that I cycle and one of the things he asked the other day was, “How’s that doula thing coming?” I said, “It’s really great.” He said, “I never asked you. What made you want to become a doula?” I just told him my story and he said, “Oh, so you had two C-sections?” His eyes were wide. He said, “But you said you have three kids.” I said, “Yeah.” He goes, “But you only had two C-sections?” I said, “Yeah.” I said, “With my first two girls.” He was like, “Wait.” He literally was stumped there for a minute. Macy: Yeah, people don’t know. Meagan: He said, “You had a normal birth after two C-sections?” I said, “Yes.” I said, “Robin, I had a vaginal birth after two Cesareans.” He looked at me because I said the word vaginal. I said, “That’s what it is.” He said, “I didn’t even know that was a thing.” People just don’t. They just don’t know that and then there are still so many providers all over the world who aren’t supporting it. In the ACOG Practice Bulletin, it says that VBA2C, vaginal birth after two Cesarean, is reasonable to consider for women with two previous low-transverse Cesarean deliveries to be candidates for TOLAC. We mentioned the word TOLAC earlier, a trial of labor after Cesarean. A lot of providers use that. It is a medical turn. We call it VBAC. They call it TOLAC. It’s not a VBAC to them until the baby has passed through the vagina. It says that they are candidates for TOLAC and “to counsel them based on the combination of other factors that affect their probability of achieving a VBAC.” Meagan: Now, just a couple of things to share before we drop off on this episode, if you had a Cesarean before or two Cesareans, it is not necessarily a reason for you to have a third. If you have gestational diabetes, that doesn’t mean that you can’t VBAC either. I’m trying to talk up these other factors, right? If we have preeclampsia, that doesn’t always necessarily mean that we have to schedule a Cesarean. We’ve shared stories in the past. We’ve even had things like babies with medical conditions where still even their provider said, “Just because your baby has this doesn’t mean you can’t have a VBAC.” That doesn’t always necessarily mean you can’t either. If you have a big baby, here we are. A nine-pound baby, right? A nice, squishy little baby. Big baby doesn’t mean you can’t either. A diagnosis of a small pelvis shouldn’t be considered– these factors really are more extreme I feel like so if your provider is giving you some of these, “Oh, well you could have a VBAC after two Cesareans but because your baby didn’t come down the last two times, it’s just probably not going to happen.” You can’t see it. Macy rolls her eyes with me. Macy: The baby is going to come out. It has to come out. Meagan: Baby is going to come out. Believe in yourself. Do the research. We do have a VBAC after two Cesarean blog. We’ll make sure to link it here and kind of spin back to what you said about how you were like, “Let me be a statistic. Let me a statistic to your midwife.” VBA3C– we don’t have a lot of stats on VBA3C and I think a lot of it is because we are not doing them. We are not allowing them yet we have so many VBA3C moms in our community who share or on our podcast who show that it still is possible. I feel like there needs to be more risk assessment there and studies need to be done there. So know that even if you’ve had three Cesareans, that still doesn’t mean that you are eliminated from the chance to go for what you want, fight for what you want, and have that experience not only that you want but that you deserve. Macy: For sure. Meagan: Yes. Thank you so much for sharing your story and I cannot wait for this to be published for you to send this to your midwife so she can send it on to the next Woman of Strength. Macy: Thank you so much for having me. I have loved being here and talking with you. I hope there are so many lives touched and changed by sharing my story.ClosingWould you like to be a guest on the podcast? Tell us about your experience at thevbaclink.com/share. For more information on all things VBAC including online and in-person VBAC classes, The VBAC Link blog, and Meagan’s bio, head over to thevbaclink.com. Congratulations on starting your journey of learning and discovery with The VBAC Link.Support this podcast at — https://redcircle.com/the-vbac-link/donationsAdvertising Inquiries: https://redcircle.com/brands"/><meta name="google" content="notranslate"/><meta name="music:duration" content="2736"/><meta name="music:album" content="https://open.spotify.com/show/36bVxqOGd1EYcR0oJteF5n"/><meta name="music:release_date" content="2024-05-06T07:10:00Z"/><meta name="al:android:app_name" content="Spotify"/><meta name="al:android:package" content="com.spotify.music"/><meta name="al:android:url" content="spotify://episode/7sA7a9BMde5K9RpRaeHCij"/><meta name="al:ios:app_name" content="Spotify"/><meta name="al:ios:app_store_id" content="324684580"/><meta name="al:ios:url" content="spotify://episode/7sA7a9BMde5K9RpRaeHCij"/><meta property="og:title" content="Episode 297 Macy&#x27;s Amazing HBA2C + What Does the Evidence Show for VBA2C?"/><meta property="og:description" content="The VBAC Link · Episode"/><meta property="og:url" content="https://open.spotify.com/episode/7sA7a9BMde5K9RpRaeHCij"/><meta property="og:type" content="music.song"/><meta property="og:site_name" content="Spotify"/><meta property="og:restrictions:country:allowed" content="AD"/><meta property="og:restrictions:country:allowed" content="AE"/><meta property="og:restrictions:country:allowed" content="AG"/><meta property="og:restrictions:country:allowed" content="AL"/><meta property="og:restrictions:country:allowed" content="AM"/><meta property="og:restrictions:country:allowed" content="AO"/><meta property="og:restrictions:country:allowed" content="AR"/><meta property="og:restrictions:country:allowed" content="AT"/><meta property="og:restrictions:country:allowed" content="AU"/><meta property="og:restrictions:country:allowed" content="AZ"/><meta property="og:restrictions:country:allowed" content="BA"/><meta property="og:restrictions:country:allowed" content="BB"/><meta property="og:restrictions:country:allowed" content="BE"/><meta property="og:restrictions:country:allowed" content="BF"/><meta property="og:restrictions:country:allowed" content="BG"/><meta property="og:restrictions:country:allowed" content="BH"/><meta property="og:restrictions:country:allowed" content="BI"/><meta property="og:restrictions:country:allowed" content="BJ"/><meta property="og:restrictions:country:allowed" content="BN"/><meta property="og:restrictions:country:allowed" content="BO"/><meta property="og:restrictions:country:allowed" content="BR"/><meta property="og:restrictions:country:allowed" content="BS"/><meta property="og:restrictions:country:allowed" content="BT"/><meta property="og:restrictions:country:allowed" content="BW"/><meta property="og:restrictions:country:allowed" content="BZ"/><meta property="og:restrictions:country:allowed" content="CA"/><meta property="og:restrictions:country:allowed" content="CH"/><meta property="og:restrictions:country:allowed" content="CI"/><meta property="og:restrictions:country:allowed" content="CL"/><meta property="og:restrictions:country:allowed" content="CM"/><meta property="og:restrictions:country:allowed" content="CO"/><meta property="og:restrictions:country:allowed" content="CR"/><meta property="og:restrictions:country:allowed" content="CV"/><meta property="og:restrictions:country:allowed" content="CW"/><meta property="og:restrictions:country:allowed" content="CY"/><meta property="og:restrictions:country:allowed" content="CZ"/><meta property="og:restrictions:country:allowed" content="DE"/><meta property="og:restrictions:country:allowed" content="DJ"/><meta property="og:restrictions:country:allowed" content="DK"/><meta property="og:restrictions:country:allowed" content="DM"/><meta property="og:restrictions:country:allowed" content="DO"/><meta property="og:restrictions:country:allowed" content="DZ"/><meta property="og:restrictions:country:allowed" content="EC"/><meta property="og:restrictions:country:allowed" content="EE"/><meta property="og:restrictions:country:allowed" content="EG"/><meta property="og:restrictions:country:allowed" content="ES"/><meta property="og:restrictions:country:allowed" content="FI"/><meta property="og:restrictions:country:allowed" content="FJ"/><meta property="og:restrictions:country:allowed" content="FM"/><meta property="og:restrictions:country:allowed" content="FR"/><meta property="og:restrictions:country:allowed" content="GA"/><meta property="og:restrictions:country:allowed" content="GB"/><meta property="og:restrictions:country:allowed" content="GD"/><meta property="og:restrictions:country:allowed" content="GE"/><meta property="og:restrictions:country:allowed" content="GH"/><meta property="og:restrictions:country:allowed" content="GM"/><meta property="og:restrictions:country:allowed" content="GN"/><meta property="og:restrictions:country:allowed" content="GQ"/><meta property="og:restrictions:country:allowed" content="GR"/><meta property="og:restrictions:country:allowed" content="GT"/><meta property="og:restrictions:country:allowed" content="GW"/><meta property="og:restrictions:country:allowed" content="GY"/><meta property="og:restrictions:country:allowed" content="HK"/><meta property="og:restrictions:country:allowed" content="HN"/><meta property="og:restrictions:country:allowed" content="HR"/><meta property="og:restrictions:country:allowed" content="HT"/><meta property="og:restrictions:country:allowed" content="HU"/><meta property="og:restrictions:country:allowed" content="ID"/><meta property="og:restrictions:country:allowed" content="IE"/><meta property="og:restrictions:country:allowed" content="IL"/><meta property="og:restrictions:country:allowed" content="IN"/><meta property="og:restrictions:country:allowed" content="IS"/><meta property="og:restrictions:country:allowed" content="IT"/><meta property="og:restrictions:country:allowed" content="JM"/><meta property="og:restrictions:country:allowed" content="JO"/><meta property="og:restrictions:country:allowed" content="JP"/><meta property="og:restrictions:country:allowed" content="KE"/><meta property="og:restrictions:country:allowed" content="KH"/><meta property="og:restrictions:country:allowed" content="KI"/><meta property="og:restrictions:country:allowed" content="KM"/><meta property="og:restrictions:country:allowed" content="KN"/><meta property="og:restrictions:country:allowed" content="KR"/><meta property="og:restrictions:country:allowed" content="KW"/><meta property="og:restrictions:country:allowed" content="LA"/><meta property="og:restrictions:country:allowed" content="LB"/><meta property="og:restrictions:country:allowed" content="LC"/><meta property="og:restrictions:country:allowed" content="LI"/><meta property="og:restrictions:country:allowed" content="LR"/><meta property="og:restrictions:country:allowed" content="LS"/><meta property="og:restrictions:country:allowed" content="LT"/><meta property="og:restrictions:country:allowed" content="LU"/><meta property="og:restrictions:country:allowed" content="LV"/><meta property="og:restrictions:country:allowed" content="MA"/><meta property="og:restrictions:country:allowed" content="MC"/><meta property="og:restrictions:country:allowed" content="ME"/><meta property="og:restrictions:country:allowed" content="MG"/><meta property="og:restrictions:country:allowed" content="MH"/><meta property="og:restrictions:country:allowed" content="MK"/><meta property="og:restrictions:country:allowed" content="ML"/><meta property="og:restrictions:country:allowed" content="MN"/><meta property="og:restrictions:country:allowed" content="MO"/><meta property="og:restrictions:country:allowed" content="MR"/><meta property="og:restrictions:country:allowed" content="MT"/><meta property="og:restrictions:country:allowed" content="MU"/><meta property="og:restrictions:country:allowed" content="MV"/><meta property="og:restrictions:country:allowed" content="MW"/><meta property="og:restrictions:country:allowed" content="MX"/><meta property="og:restrictions:country:allowed" content="MY"/><meta property="og:restrictions:country:allowed" content="MZ"/><meta property="og:restrictions:country:allowed" content="NA"/><meta property="og:restrictions:country:allowed" content="NE"/><meta property="og:restrictions:country:allowed" content="NG"/><meta property="og:restrictions:country:allowed" content="NI"/><meta property="og:restrictions:country:allowed" content="NL"/><meta property="og:restrictions:country:allowed" content="NO"/><meta property="og:restrictions:country:allowed" content="NP"/><meta property="og:restrictions:country:allowed" content="NR"/><meta property="og:restrictions:country:allowed" content="NZ"/><meta property="og:restrictions:country:allowed" content="OM"/><meta property="og:restrictions:country:allowed" content="PA"/><meta property="og:restrictions:country:allowed" content="PE"/><meta property="og:restrictions:country:allowed" content="PG"/><meta property="og:restrictions:country:allowed" content="PH"/><meta property="og:restrictions:country:allowed" content="PL"/><meta property="og:restrictions:country:allowed" content="PR"/><meta property="og:restrictions:country:allowed" content="PS"/><meta property="og:restrictions:country:allowed" content="PT"/><meta property="og:restrictions:country:allowed" content="PW"/><meta property="og:restrictions:country:allowed" content="PY"/><meta property="og:restrictions:country:allowed" content="QA"/><meta property="og:restrictions:country:allowed" content="RO"/><meta property="og:restrictions:country:allowed" content="RS"/><meta property="og:restrictions:country:allowed" content="RW"/><meta property="og:restrictions:country:allowed" content="SA"/><meta property="og:restrictions:country:allowed" content="SB"/><meta property="og:restrictions:country:allowed" content="SC"/><meta property="og:restrictions:country:allowed" content="SE"/><meta property="og:restrictions:country:allowed" content="SG"/><meta property="og:restrictions:country:allowed" content="SI"/><meta property="og:restrictions:country:allowed" content="SK"/><meta property="og:restrictions:country:allowed" content="SL"/><meta property="og:restrictions:country:allowed" content="SM"/><meta property="og:restrictions:country:allowed" content="SN"/><meta property="og:restrictions:country:allowed" content="SR"/><meta property="og:restrictions:country:allowed" content="ST"/><meta property="og:restrictions:country:allowed" content="SV"/><meta property="og:restrictions:country:allowed" content="SZ"/><meta property="og:restrictions:country:allowed" content="TD"/><meta property="og:restrictions:country:allowed" content="TG"/><meta property="og:restrictions:country:allowed" content="TH"/><meta property="og:restrictions:country:allowed" content="TL"/><meta property="og:restrictions:country:allowed" content="TN"/><meta property="og:restrictions:country:allowed" content="TO"/><meta property="og:restrictions:country:allowed" content="TR"/><meta property="og:restrictions:country:allowed" content="TT"/><meta property="og:restrictions:country:allowed" content="TV"/><meta property="og:restrictions:country:allowed" content="TW"/><meta property="og:restrictions:country:allowed" content="TZ"/><meta property="og:restrictions:country:allowed" content="UA"/><meta property="og:restrictions:country:allowed" content="US"/><meta property="og:restrictions:country:allowed" content="UY"/><meta property="og:restrictions:country:allowed" content="UZ"/><meta property="og:restrictions:country:allowed" content="VC"/><meta property="og:restrictions:country:allowed" content="VN"/><meta property="og:restrictions:country:allowed" content="VU"/><meta property="og:restrictions:country:allowed" content="WS"/><meta property="og:restrictions:country:allowed" content="XK"/><meta property="og:restrictions:country:allowed" content="ZA"/><meta property="og:restrictions:country:allowed" content="ZM"/><meta property="og:restrictions:country:allowed" content="ZW"/><meta property="og:audio" content="https://podz-content.spotifycdn.com/audio/clips/0KcPWX2fq7onPk0aVyAfjU/clip_297991_357991.mp3"/><meta property="og:audio:type" content="audio/mpeg"/><meta property="og:image" content="https://i.scdn.co/image/ab6765630000ba8a77962fbcdb8b9ff677543371"/><meta name="twitter:site" content="@spotify"/><meta name="twitter:title" content="Episode 297 Macy&#x27;s Amazing HBA2C + What Does the Evidence Show for VBA2C?"/><meta name="twitter:description" content="The VBAC Link · Episode"/><meta name="twitter:image" content="https://i.scdn.co/image/ab6765630000ba8a77962fbcdb8b9ff677543371"/><meta name="twitter:card" content="summary"/><link rel="canonical" href="https://open.spotify.com/episode/7sA7a9BMde5K9RpRaeHCij"/><link rel="alternate" type="application/json+oembed" href="https://open.spotify.com/oembed?url=https%3A%2F%2Fopen.spotify.com%2Fepisode%2F7sA7a9BMde5K9RpRaeHCij"/><link rel="alternate" href="https://open.spotify.com/episode/7sA7a9BMde5K9RpRaeHCij" hrefLang="x-default"/><link rel="alternate" href="https://open.spotify.com/episode/7sA7a9BMde5K9RpRaeHCij" hrefLang="en"/><link rel="alternate" href="android-app://com.spotify.music/spotify/episode/7sA7a9BMde5K9RpRaeHCij"/><script type="application/ld+json">{"@context":"http://schema.googleapis.com/","@type":"MusicGroup","@id":"https://open.spotify.com/episode/7sA7a9BMde5K9RpRaeHCij","url":"https://open.spotify.com/episode/7sA7a9BMde5K9RpRaeHCij","name":"Episode 297 Macy's Amazing HBA2C + What Does the Evidence Show for VBA2C?","description":"Listen to this episode from The VBAC Link on Spotify. Macy\u2019s first birth was a scheduled C-section due to breech presentation that required follow-up exploratory surgery due to an unknown cause of internal bleeding. Unfortunately, her surgeon had accidentally nicked an ab muscle. Macy\u2019s recovery was very difficult.With her second, doctors were nervous about her chances of VBAC and would only let her try if she showed up in active labor before 39 weeks. Otherwise, she would go in for a scheduled C-section. Macy agreed and her birth ended in another Cesarean. Her birth was beautiful and her recovery was smooth, but it still wasn\u2019t the empowering experience she hoped for.\u00A0Macy hit the ground running during her third pregnancy. When doctors were not supportive of a VBA2C, she knew home birth was her best option. She found a midwife who was willing to take Macy on as her first VBA2C client! We know you will absolutely love listening to this birth story.\u00A0Like Meagan said, \u201CIt is so beautiful. It is so peaceful. It sounds like one of those births where you close your eyes and you envision birth and how peaceful, beautiful, and calm it really can be.\u201DThe VBAC Link Blog: VBA2C\u00A0Practice Bulletin - VBACInformed Pregnancy - code: vbaclink424Needed WebsiteHow to VBAC: The Ultimate Prep Course for ParentsFull Transcript under Episode Details\u00A003:44 First C-section with internal bleeding and a follow-up exploratory surgery09:04 Second pregnancy11:37 Scheduled C-section and getting pregnant again shortly after18:44 Finding a supportive home birth midwife23:24 VBA2C prep during pregnancy27:46 Labor begins32:42 Breaking her own water and pushing for 17 minutes36:47 ACOG\u2019s statement on VBA2CMeagan: Hello, hello Women of Strength. We are so excited to be sharing an HBA2C story and if you don\u2019t know yet what HBAC means, that\u2019s home birth after Cesarean and then HBA2C is home birth after two Cesareans. I feel like that\u2019s kind of funny. It\u2019s never really a term I used because I wasn\u2019t at the hospital and I wasn\u2019t at home, but I also kind of feel like I sort of had an HBAC. It was at a birth center. Maybe that\u2019s a term, birth center birth after two Cesareans. I don\u2019t know.\u00A0But obviously, VBAC after two Cesareans are near and dear to my own heart and today we have our friend Macy from California sharing her HBAC story and just before we started recording, we were talking about how one of her messages that she wants to give is that you can do this. Right, Macy? You\u2019re just like, you can. People can do this.\u00A0Macy: For sure.\u00A0Meagan: Yes. Yes. I am excited to hear your story and then I wanted to also just talk a little bit at the end about some evidence on VBAC after two C-sections. So if you\u2019re wondering more about VBA2C, make sure you stick to the very, very end even after the story because we\u2019ll talk a little bit about that.\u00A001:24Meagan: We do have a Review of the Week and this is from Jenna. It is actually on our How to VBAC: Ultimate VBAC Prep Course. She says, \u201CI just started but have already learned so much. After two C-sections and one where my doctor made me think it was very risky, I was terrified to try again. With this course, not only have I learned the truth about VBAC, but I am excited to attempt mine in August.\u201D That\u2019s coming up. I am so excited for Jenna. Thank you so much for the review and the support, of course, of taking the course. I am so excited that you are getting educated and definitely keep us posted.\u00A003:44 First C-section with internal bleeding and a follow-up exploratory surgeryMeagan: Okay, cute Macy. Welcome to the show.\u00A0Macy: Thank you for having me.\u00A0Meagan: Absolutely. I\u2019d love to turn the time over to you and share whatever message you feel is important for our beautiful Women of Strength listeners.\u00A0Macy: Okay, well like with all VBACs, my story begins of course with my first pregnancy. During my first pregnancy, I was pretty healthy. I didn\u2019t love being pregnant, but I was excited that we were starting our family and I got to\u2013 I can\u2019t remember\u2013 34 weeks maybe, 35ish, and baby was still breech.\u00A0They offered me the ECV procedure, but they told me I would have to do it around 37-38 weeks and I was worried about it being so early before my due date that she would turn again. I was scared. They got me scared. They don\u2019t really present the ECVs as something that should work.\u00A0Meagan: I know. I know.\u00A0Macy: My midwife with my third pregnancy was like, \u201CI wish you would have done it,\u201D but they talked me out of it so I decided not to do it. Come 40 weeks, she was still not flipped, but I wasn\u2019t in labor so another thing is I wish I would have just waited to see because maybe she would have flipped in labor.\u00A0Meagan: Sometimes they do. I actually recently had a client last year in 2023 that did have that. She was scheduled for her version and then she went into spontaneous labor so she actually went in pretty early because she was like, \u201COh my gosh. My baby\u2019s breech. I was scheduled the next day for a version,\u201D and they were like, \u201CBaby\u2019s head down.\u201D So it definitely happens.\u00A0Macy: With my third one, she was sunny-side up. She was posterior, but I could feel her turning and getting into position. But anyway, I\u2019ll get there. I\u2019ll get there.\u00A0I had my C-section scheduled. My daughter, Alayna was born 10 days before Christmas in 2018. She was perfect. She was 6 pounds, 13 ounces. I was not great.\u00A0After my surgery, I came out. I was in the PACU and my blood pressure was dropping crazy low and my heart rate was spiking super high. I was ghost-white and they were like, \u201CWe don\u2019t know what\u2019s going on.\u201D\u00A0Long, long, long story short, I was having crazy internal bleeding.\u00A0Meagan: I was going to say, were you hemorrhaging? Because that sounds like hemorrhaging.\u00A0Macy: I was hemorrhaging. I was bleeding internally, but it was from having surgery. It was not anything to do with baby or birth. It was just surgery. So what we discovered is they had accidentally nicked an ab muscle and it was bleeding.\u00A024 hours after my daughter was born, I had to go back in for an exploratory surgery and I was put under anesthesia completely again. They had to cut back open my layers and start over. Thankfully, they didn\u2019t have to cut into my uterus again, but they did open me back up and stop the bleeding, cauterize it and I mean, my recovery was just horrible.\u00A0Meagan: Not great, yeah.\u00A0Macy: I mean, thankfully I only had one baby so it was just her and my husband is amazing. I could not ask for a better partner, but it was just hard. It was hard to accept that, to grieve the birth I had dreamed of my whole life, but it never occurred to me that I couldn\u2019t have a VBAC. My mom had me via C-section and my three subsequent siblings were all VBAC. So when someone said to me at 12 weeks, I recovered. I was back at the gym and someone from the gym was like, \u201COh, so you have to have all your babies as C-sections now.\u201D I was like, \u201CWait, that\u2019s a thing still? We\u2019re still doing that?\u201D I was like, \u201CNo. I\u2019m going to have a VBAC.\u201D I never even thought about it. I immediately was like, \u201COh, so this is going to be a thing.\u201D That\u2019s when I found you guys and I started listening before I was even pregnant with my second one, but when I did get pregnant three years later with baby number two, I probably binge-listened to every single episode. I was like, \u201CI\u2019m doing this.\u201D\u00A009:04 Second pregnancyMacy: I switched providers just because I didn\u2019t have a great experience so I was like, my postpartum care, I didn\u2019t care for my pediatrician so I just switched everything. But because I was with a new provider, I had a really difficult time locating my surgical notes. My new providers wanted to know if my first C-section was done with a single or double-layer closure.\u00A0Meagan: Oh, interesting. Okay.\u00A0Macy: Because of course, if it\u2019s single, it\u2019s going to increase my risk for a rupture. I at this point was already like, the risk of rupture is so low. I am not worried about it. Breech baby is a great candidate for VBAC.\u00A0Meagan: And the evidence on that is really not solid on which one really is best. There are some that show double may be better, but that doesn\u2019t necessarily mean that your rupture rate skyrockets because you have a single layer. So they are focusing on something that didn\u2019t have a ton of evidence.\u00A0Macy: Right. I was like, \u201CThere is just not enough research to justify all of these C-sections.\u201D But because they didn\u2019t understand what had gone wrong and why I had to have a second surgery even though I told them a million times it wasn\u2019t anything to do with my uterus. It wasn\u2019t a me problem. It was a doctor's problem. They were just like, \u201CWe just don\u2019t feel comfortable with TOLAC.\u201D And you know, it\u2019s always TOLAC. It\u2019s never just a VBAC.\u00A0Meagan: I know.\u00A0Macy: But they didn\u2019t want to do anything. They didn\u2019t want to offer ultrasounds. They just were not willing to take a chance even though it was a really good chance.\u00A0So basically, they were like, \u201CThe only way you are having this second baby VBAC is if you come to the hospital and you are in labor and it\u2019s time to push.\u201D\u00A0I mean, that\u2019s kind of scary to someone who doesn\u2019t know. I mean, now that I\u2019ve done it I\u2019m like, \u201CThat\u2019s what I should have done,\u201D and that\u2019s what I tell my friends. You don\u2019t go to the doctor until your contractions are two minutes apart because they try to scare women out of their VBAC.\u00A011:37 Scheduled C-section and getting pregnant again shortly afterMacy: So I just didn\u2019t really stand up for myself. I just agreed like, \u201COkay, I guess.\u201D I told myself, \u201CIf I go into labor before my scheduled C-section at 39 weeks, then that\u2019s the way God wants it and I will have my VBAC.\u201D Obviously, that never happened and 39 weeks is pretty early now knowing especially when due dates are just guess dates.\u00A0Meagan: Very important note that you just gave there.\u00A0Macy: Yeah. I had my baby at 39 weeks. She was perfect. I mean, my recovery was\u2013 she was another 6 pounds, 15 ounces so they were almost the same size. That was Reagan. Recovery was a lot better but still, I had a 3-year-old at home.\u00A0Going from one to two was pretty good for me. I have a big family. That was great. But it was still not the empowering birth that I wanted. I did feel\u2013 I don\u2019t want to say I didn\u2019t feel empowered because C-section is badass. It\u2019s hard.\u00A0Meagan: Yeah. Mhmm, yeah.\u00A0Macy: It\u2019s not the easy way out ever. There is no easy way out of birth. I do want to preface that and say if that\u2019s what ends up happening and you only have two kids and you only have two C-sections, that\u2019s okay too. I knew we weren\u2019t done having kids. I wanted the birth I wanted.\u00A0I did not plan to get pregnant with such a short turnaround time. I was almost 8 months postpartum when we found out we were pregnant again. We were a little surprised. I mean, we are grown adults. It shouldn\u2019t be that surprising.\u00A0Meagan: But still, it can be a little alarming when you weren\u2019t mentally preparing for that.\u00A0Macy: I had just finished breastfeeding. I was just starting to track and all of these things so I was like, \u201COh no.\u201D But that was kind of when my work really started for me because I was like, \u201COkay. We are doing this again and I\u2019m going to do this the way I want. This is going to be how I want it to go. This is my story and this is going to be an essential component of who I am as a woman and as a mother going forward for the rest of my life. I need this to go the way I want it to go.\u201D I wanted it to go the way God wanted it to go of course, but I was like, \u201CI\u2019m going to take more control.\u201D Meagan: Can I add something to that? Sorry to interrupt, but there are so many times that I hear people, I read on social media that people are getting after moms and parents who are like, \u201CI want this birth. This is what I want. This is what I feel I need,\u201D or what you are saying. \u201CI want it to go a certain way.\u201D They are like, \u201CWhy do you have to focus on what you want? It\u2019s not what you want. It\u2019s what\u2019s best for the baby.\u201D They are railing on these people.\u00A0I want to stop and say that what you said is okay. I feel like maybe a little passionate about that too because so many people were naysayers to me. \u201CIt does not matter what you want. It\u2019s what\u2019s best for the baby.\u201D It\u2019s like, well guess what? That\u2019s also maybe what\u2019s best for my baby.\u00A0Macy: Right.\u00A0Meagan: It\u2019s okay to say, Women of Strength, \u201CI want this birth. This is what I want.\u201D And you deserve that. You deserve to go after what you want.\u00A0Macy: It is hard and being a mom is hard.\u00A0Meagan: Yes.\u00A0Macy: You can start out in a way that you feel empowered. It is life-changing. It really is.\u00A0Meagan: It is. So sorry for interrupting, but I just wanted to give a little tidbit that it\u2019s okay for people to want what they want. I wanted a white vehicle. I was going to find a white vehicle. It\u2019s okay to get what you want and to put forth energy and to say that out loud, \u201CI want this VBAC. I\u2019m going to get this. I want it.\u201D\u00A0Macy: You spend almost 10 months thinking about this and praying about it whereas you talk to\u2013 I mean, it wasn\u2019t as important to anyone else in my life except for me. That was okay. Especially the doctors and the providers, I\u2019m just another person to them and yes, there are some really great providers out there and they do care, but they are at their job. They are doing their job. Well, my job is to be a mother. That\u2019s my job, so doing what serves me well was birthing my baby the way\u2013\u00A0Meagan: Having a VBAC.\u00A0Macy: Having a VBAC. So I really hit the ground running. There were a few girls in my town who had recently had homebirths. They weren\u2019t VBACs, but they were VBACs so I reached out to them\u2013 shoutout to my girls Megan and Emily. They were so helpful because they were real people. I reached out to you guys and I just wanted to know, \u201CHey, what is the research on really close pregnancies?\u201D because I wasn\u2019t going to hit the 18 months.\u00A0Meagan: The 18 months. Your babies were going to be 17 months apart, right?\u00A0Macy: 17 months. So that was even annoying too because I was like, \u201CI\u2019m right there. Come on.\u201D You guys were like, \u201CGo join the Facebook Community group.\u201D I was so glad that I did because I was just finding story after story after post after post. Not only were so many women having VBACs after two+ C-sections, but they were close together. Some were like, \u201CMine were 12 months apart.\u201D I\u2019m like, \u201COh, I\u2019m good to go then.\u201D It was so nice having that community. I was even able to join a community within the community of everyone who was due at the same time as me so when we got close, we had a group message and everyone was like, \u201CIs it happening today? Is it happening today?\u201D It was so nice not to be alone in that.\u00A0I also had to find a midwife because I knew my providers were not going to be supportive of VBAC after two. I actually had a hard time finding a midwife which was also annoying because I was met with some medwives who were just really going to stick to that 18 months.\u00A018:44 Finding a supportive home birth midwifeThen I happened to just find a woman who was like, \u201CI\u2019ve never done this before. You are my first VBAC after two,\u201D but she was a midwife who was very knowledgeable. She had done lots of home births. She had done VBACs, but not after two.\u00A0She was like, \u201CIf we don\u2019t start accepting these patients, how are we ever going to change the status quo? How are we ever going to make a change?\u201D\u00A0Meagan: Boom.Macy: Right.\u00A0Meagan: It\u2019s so true though.\u00A0Macy: I was like, \u201COkay. Statistic me, please. I would love to be a statistic for the positive.\u201D The only thing was I was like, \u201CI can\u2019t be one for a hospital birth, but it\u2019s fine.\u201D\u00A0Meagan: That\u2019s okay. That\u2019s okay.\u00A0Macy: So I found Sarah. I started my visits with her. I had to travel an hour to my visits. It wasn\u2019t the worst thing ever.\u00A0Meagan: That\u2019s a commitment though. That\u2019s a commitment.\u00A0Macy: Towards the end, she came to me a lot more which was so nice. So nice.\u00A0Meagan: That\u2019s really nice.\u00A0Macy: Then we did a couple of phone calls, but we also texted all of the time and would FaceTime. It was just so personal. I also received co-care with another third local provider. I did that because my midwife wanted to have me get ultrasounds to check my uterus. She wanted to check for previa and we wanted to check for\u2013 what\u2019s the other one? I\u2019m blanking.\u00A0Meagan: Accreta?\u00A0Macy: Yes, so she just wanted to be aware.\u00A0Meagan: Placental issues and make sure the placenta is out of the way and all is doing okay. You\u2019re actually clear to have a VBAC.\u00A0Macy: Yeah.\u00A0Meagan: Which is very responsible of her.\u00A0Macy: I received my co-care. I would go in there. I don\u2019t know. I almost had a chip on my shoulder because I was like, \u201CI don\u2019t really need you guys,\u201D kind of. I didn\u2019t leave those appointments feeling like I wanted to cry like I did with my second pregnancy because I knew that I had something better planned. So it wasn\u2019t as upsetting, but they were pretty rough on me.\u00A0I had expressed my interest in a VBAC after two and you have to see the series of providers within the office. I had only one who was a little bit younger which was interesting, but he was the only one who was like, \u201CYeah. I really support this and the birth you want to have. I\u2019m going to give you a referral to UC San Francisco and when we get to the end, I want you to start care there and plan to have your birth there.\u201D\u00A0He was the only one who was like, \u201CI support the birth you want to have.\u201D Everyone else was pretty awful. They told me, \u201CIf you TOLAC and your uterus ruptures, you will die and your baby will die.\u201D\u00A0I was like, I will never forget getting in my car and texting my midwife and being like, \u201CCan you believe that he just said this to me?\u201D I was just like, \u201CAre you God? Do you know?\u201D How could you say that to someone? \u201CYou will die.\u201D Because that\u2019s not the case at all.\u00A0That was interesting but I knew. Like I said, I knew I had a backup plan in the back of my mind. It was just eye-opening for me more than anything. It wasn\u2019t upsetting.\u00A0Meagan: Someone that doesn\u2019t necessarily know the evidence of that, it can be terrifying.\u00A0Macy: Yeah. Yes, totally. And you know what? It\u2019s frustrating because a lot of people just trust their providers. I\u2019m a very skeptical person. I\u2019m very conspiratorial, so I\u2019m always researching things and looking into things, but people who are not prone to that are just going to trust what the doctor says because they went to school and they are smarter than them. It\u2019s so unfortunate that it\u2019s causing a high C-section rate for no reason.\u00A023:24 VBA2C prep during pregnancyMacy: That was a bummer but anyway, throughout my pregnancy, I did all of the things. I did my VBAC Link course. I loved it. It was great to have that. I did a Lamaze class which was really fun. It was funny because we were the only parents in there with other kids. One other lady was a VBAC, but the rest were all first-time parents. They were like, \u201CWhat are you doing here?\u201D I\u2019m like, \u201CThis is new for me.\u201D Again, shoutout to Modesto Birth and Beyond. They are fantastic. They have a great set of doulas. I\u2019m now on a friendly basis with them. They were great to have and they were really supportive of my whole journey.\u00A0Let\u2019s see what else. I did a Hypnobirthing class. I read Ina May\u2019s Guide to Childbirth. I mean, I walked and I stayed in shape. I kept doing CrossFit. I did CrossFit for all three of my pregnancies so I kept on. I ate healthy. I drank lots of water. I did all of the things. But I knew that when it came down to it, my mind was going to either make or break me.Fast forward to 41 weeks and I was getting very, very anxious.\u00A0Meagan: Were you getting anxious because you were getting ready to have a baby type thing or were people giving you some grief that you were over 40 weeks? Macy: By the time I was 40-41 weeks, the grief and the doubt and the naysayers that I got were kind of gone. Most of the people in my life were supportive. I always got that question of, \u201CWhat if this happens?\u201D I live 5 minutes from the hospital, so I was not too worried about it. I was more anxious of, I was ready to meet this baby. I was the biggest I\u2019d ever been. Third baby, only 17 months apart. My belly was huge. It was hot. I was swelling. I was ready to be done, but I also had never labored before.\u00A0I had no clue what my body was going to do. Was I just going to go into spontaneous labor at 40 weeks? At 39? I had no idea. So every day that passes, I\u2019m sure you remember that too, every day was a whole week where you wake up in the morning and I would just cry, \u201CI can\u2019t believe I\u2019m still pregnant.\u201D\u00A0Meagan: I remember going to bed and I was like, \u201CTonight could be the night,\u201D and then I\u2019d wake up and I was like, \u201CIt wasn\u2019t the night,\u201D then that night, I\u2019d be like, \u201CMaybe tonight,\u201D and it just kept happening.\u00A0Macy: So annoying. I had so much prodromal labor. I had contractions. I could time them and I was like, \u201COh, they are 20 minutes apart. They are for sure going to get closer,\u201D then I\u2019d go to sleep, wake up, and be like, \u201COkay. Here we go again.\u201D\u00A0Let\u2019s see. So on a Monday, I did acupuncture. Then on a Wednesday morning, I was 41 weeks and I went and got a massage. I got some acupressure. You never know if these are the things that really get things going, but sometimes they do. I got a massage and she gave me some moxibustion so I did that. You light it and do it around\u2013 my mom was like, \u201CThis is so hokey.\u201D I\u2019m like, \u201CIf it works, who cares?\u201D I was trying everything.\u00A0But I didn\u2019t want to be induced and I hadn\u2019t had my membranes swept yet. That was going to be the first intervention that my midwife and I agreed on because she was like, \u201CLegally in California, you can\u2019t go past 42 weeks and have a home birth.\u201D I was like, \u201COkay. I\u2019ve got one week. One week and this baby will be here.\u201D\u00A027:46 Labor beginsMacy: That Wednesday morning, I went and got my massage and by 2:00 in the afternoon, I was like, \u201COkay. Things are starting to pick up.\u201D I started having pretty intense contractions. I was having to\u2013 I could still talk. I was still taking care of my two little girls, but I was starting to feel really uncomfortable. My mom went home, then she came back. My husband gets off work at 3:30 and it was 2:30. I was feeding my youngest one a snack and he was like, \u201CDo you want me to come home early?\u201D I was like, \u201CNo, I can totally make it until you get home.\u201D\u00A0I had a contraction where I leaned over my kitchen counter, and then I was like, \u201COkay. Maybe just come home now.\u201D He came home. I just didn\u2019t feel it. I was starting to feel irritated by my kids and I was like, \u201CI just want to go in my room and watch a show on my laptop. I just want to be alone.\u201D I didn\u2019t necessarily want them to leave yet, but I wanted to be alone and I wanted to know that they were taken care of.\u00A0He came home and he was taking care of them. He was like, \u201CDo you think this is it? Let\u2019s call my mom.\u201D I was like, \u201CYeah. I think this is happening and I think it\u2019s going to be soon.\u201D I just didn\u2019t know how long I was going to labor. It was a mystery.\u00A0My mother-in-law came and picked up my little two daughters. That was kind of sad watching them leave knowing the next time I saw them, we were going to be a different family\u2013 a better family, but a different family. Yeah. I just labored at home. It was so nice not having to go anywhere. I took a shower. I had some snacks. I wasn\u2019t super hungry, but I definitely started drinking my electrolytes and started preparing to be hydrated.\u00A0Meagan: Smart.\u00A0Macy: I was like, \u201CI\u2019m preparing to run a marathon so I need to gear up.\u201D I didn\u2019t nap. I\u2019ve never been a great napper, but I laid around and watched some shows, then I didn\u2019t text my midwife right away because I had been bugging her so much with all of my prodromal labor that I was like, \u201CI\u2019m not going to text her until it\u2019s really happening.\u201D But by 6:00 or 7:00 PM, i texted her and was like, \u201CJust so you know, my contractions are about 10 minutes apart.\u201D\u00A0As they got closer, she was like, \u201COkay. I\u2019m going to come now.\u201D\u00A0Once the sun started setting, it was getting a little bit more intense. We set up my birth space at home. I set up my pool. Well, I didn\u2019t. My husband set up the pool and we laid out all of the sheets on the couch and hung my birth affirmations. Actually, they had been hanging. My birth affirmations had been hanging for a couple of weeks so I started having them memorized, but we turned on the twinkle lights and I started listening to the Christian HypnoBirthing app which was fantastic.\u00A0I just had such a peaceful labor. I don\u2019t know how else to describe it. My mom came in and then my sister-in-law came over then my other sister-in-law came over. They just talked around me. I could hear them, but I was just in my space. I labored and my water never broke for a very long time. I got in the pool at one point and then I got back out because my husband was like, \u201CI think that being in the pool is slowing down your contractions a little bit. I want you to get out and walk.\u201D I got out and started walking down the hall then I got really sick with a contraction. I happened to already be laboring backwards on the toilet and I was like, \u201COh my gosh. I\u2019m going to throw up.\u201D I jumped back off the toilet so I could throw up in it then my midwife was like, \u201COkay. You\u2019re in transition now. You\u2019ve got to be.\u201D I hadn\u2019t had any checks at all this whole time either too so I had no clue what I was even dilated at. I was just completely trying to trust my body and just know that when it was time, it would be time. It really was. My body just did what it knew to do.\u00A032:42 Breaking her own water and pushing for 17 minutesMacy: Like I said earlier, I felt her move into position. I got back in the water and I felt so relaxed in the water. I was drifting off in between contractions.\u00A0Meagan: Oh, that\u2019s awesome.\u00A0Macy: It was so calm and I just kept telling myself, \u201CBreathe her down with every contraction,\u201D and just all of the things I had been practicing, I was finally able to put into use.\u00A0That was really cool, then I had a couple of urges where I was like, \u201CI feel like I can start pushing soon.\u201D I was like, \u201CDo you want to check me now?\u201D As soon as she stuck her finger, I was like, \u201COh, no. No. Get your finger out. It\u2019s time. She\u2019s coming.\u201D\u00A0She was like, \u201CYeah. She\u2019s ready. She\u2019s right there, but your waters haven\u2019t broken yet.\u201D I was like, \u201CCan I break them myself?\u201D She was like, \u201CYeah,\u201D so I reached in. I gave it a pinch-twist and in the water, I broke it.\u00A0Meagan: Oh my gosh, that\u2019s so cool.\u00A0Macy: I felt the padding around her head, then I just felt her head. I felt her hair. I started pushing when it was time to push and I pushed for 17 minutes. It was perfect. Like I said, I felt her move and get into position. She came out and she was 9 pounds, 12 ounces so she was 3 pounds\u2013\u00A0Meagan: I was going to say 6lb,15oz, right, was your second and close to your first?Macy: 3 pounds heavier than my other two. She came out. She did perfectly. Her heart rate was perfect the whole time. She came out mad, screaming mad. She was so cozy in there. She did not want to come out. She came out but hearing her cry within 20 seconds was so reassuring. She was safe. I didn\u2019t need anybody. I just needed to trust my body and to trust the Lord. My midwife was like, \u201CThat was one of the most perfect births I have ever attended.\u201D She was beaming with joy and she was so excited for me. She was just so happy because she was like, \u201CI\u2019ve never done this after two.\u201D She was like, \u201CYou changed everything I thought I knew about home birth, about after two C-sections.\u201D She even now has another client which is great who is a VBA2C. I cannot wait for this podcast to come out so I can share it with my midwife and she can share it with her new client. Hopefully, they have a really great birth too.\u00A0All in all, it was just everything I dreamed of. I was so thankful and I just remember laying there with her on my chest. I was watching the video last night trying to get in the mindset and remind myself and get there. On the video, I can hear myself go, \u201CI\u2019m so freaking proud of myself.\u201D\u00A0Meagan: You should be!Macy: I was beaming with joy. I was like, \u201CThat was so hard but so worth it.\u201D So it was great. It was a great experience. I could not be more happy with her birth. She\u2019s a great baby. She\u2019s so happy. She was a little hard at first for 10 weeks which was different for me, but after that 10-week hump, she was a really good baby. Her name is Lucille.\u00A0Meagan: Cute.\u00A0Macy: We call her Lucy which means \u201Clight\u201D and she is the light of our lives. She is the best and I can\u2019t even believe we had a family without her for a minute there. But that\u2019s my story.\u00A036:47 ACOG\u2019s statement on VBA2CMeagan: Oh my gosh. It is so beautiful. It is so peaceful. It sounds like one of those births where you really do. You close your eyes and you just envision birth and how peaceful and beautiful and calm it really can be. To me, you just described the birth that you physically did with one that I would imagine.\u00A0Macy: Yes. It\u2019s how it felt. My sisters-in-law and my other girlfriend who was there taking pictures just kept saying, \u201CYou did so good.\u201D I was just like, \u201CI don\u2019t know what that means.\u201D But everyone was proud of how it all went. I think that\u2019s so super revolutionary. I hope my story touches other people\u2019s lives.\u00A0Meagan: It totally will. I\u2019m so happy that you found your midwife and that your midwife was willing to take you on because a lot of the time, providers can be nervous if they have never done it before.\u00A0Macy: Which I get.\u00A0Meagan: Oh yeah. For sure, for sure. I\u2019m just so glad that she was willing. That\u2019s one of the things that gets me sometimes with so many people who just are not, we have to respect them and what they are comfortable with. But really, the evidence does show that VBAC after two Cesareans is reasonable. The overall risk and rate of rupture is approximately 1.4% so it\u2019s still very low. It\u2019s still very, very low.\u00A0I mean, ACOG themselves, the American College of Obstetricians and Gynecologists, they suggest it. They say it\u2019s a completely reasonable option so for so many people to be cut off after one is heartbreaking because there are so many people who could have a vaginal birth all over the world but aren\u2019t given the option. We have a high Cesarean rate. We have so many.\u00A0There are so many people. Just actually weirdly enough at the gym, a man who is the darndest cutest thing ever, his name is Robin and he will always say hi to me and check in on me and how I\u2019m doing. He knows that I cycle and one of the things he asked the other day was, \u201CHow\u2019s that doula thing coming?\u201D I said, \u201CIt\u2019s really great.\u201D He said, \u201CI never asked you. What made you want to become a doula?\u201D I just told him my story and he said, \u201COh, so you had two C-sections?\u201D His eyes were wide. He said, \u201CBut you said you have three kids.\u201D I said, \u201CYeah.\u201D He goes, \u201CBut you only had two C-sections?\u201D I said, \u201CYeah.\u201D I said, \u201CWith my first two girls.\u201D He was like, \u201CWait.\u201D He literally was stumped there for a minute.\u00A0Macy: Yeah, people don\u2019t know.\u00A0Meagan: He said, \u201CYou had a normal birth after two C-sections?\u201D I said, \u201CYes.\u201D I said, \u201CRobin, I had a vaginal birth after two Cesareans.\u201D He looked at me because I said the word vaginal. I said, \u201CThat\u2019s what it is.\u201D He said, \u201CI didn\u2019t even know that was a thing.\u201D People just don\u2019t. They just don\u2019t know that and then there are still so many providers all over the world who aren\u2019t supporting it.\u00A0In the ACOG Practice Bulletin, it says that VBA2C, vaginal birth after two Cesarean, is reasonable to consider for women with two previous low-transverse Cesarean deliveries to be candidates for TOLAC. We mentioned the word TOLAC earlier, a trial of labor after Cesarean. A lot of providers use that. It is a medical turn. We call it VBAC. They call it TOLAC. It\u2019s not a VBAC to them until the baby has passed through the vagina.\u00A0It says that they are candidates for TOLAC and \u201Cto counsel them based on the combination of other factors that affect their probability of achieving a VBAC.\u201D\u00A0Meagan: Now, just a couple of things to share before we drop off on this episode, if you had a Cesarean before or two Cesareans, it is not necessarily a reason for you to have a third. If you have gestational diabetes, that doesn\u2019t mean that you can\u2019t VBAC either. I\u2019m trying to talk up these other factors, right? If we have preeclampsia, that doesn\u2019t always necessarily mean that we have to schedule a Cesarean. We\u2019ve shared stories in the past. We\u2019ve even had things like babies with medical conditions where still even their provider said, \u201CJust because your baby has this doesn\u2019t mean you can\u2019t have a VBAC.\u201D That doesn\u2019t always necessarily mean you can\u2019t either.\u00A0If you have a big baby, here we are. A nine-pound baby, right? A nice, squishy little baby. Big baby doesn\u2019t mean you can\u2019t either. A diagnosis of a small pelvis shouldn\u2019t be considered\u2013 these factors really are more extreme I feel like so if your provider is giving you some of these, \u201COh, well you could have a VBAC after two Cesareans but because your baby didn\u2019t come down the last two times, it\u2019s just probably not going to happen.\u201D\u00A0You can\u2019t see it. Macy rolls her eyes with me.\u00A0Macy: The baby is going to come out. It has to come out.\u00A0Meagan: Baby is going to come out. Believe in yourself. Do the research. We do have a VBAC after two Cesarean blog. We\u2019ll make sure to link it here and kind of spin back to what you said about how you were like, \u201CLet me be a statistic. Let me a statistic to your midwife.\u201D VBA3C\u2013 we don\u2019t have a lot of stats on VBA3C and I think a lot of it is because we are not doing them. We are not allowing them yet we have so many VBA3C moms in our community who share or on our podcast who show that it still is possible.\u00A0I feel like there needs to be more risk assessment there and studies need to be done there. So know that even if you\u2019ve had three Cesareans, that still doesn\u2019t mean that you are eliminated from the chance to go for what you want, fight for what you want, and have that experience not only that you want but that you deserve.\u00A0Macy: For sure.\u00A0Meagan: Yes. Thank you so much for sharing your story and I cannot wait for this to be published for you to send this to your midwife so she can send it on to the next Woman of Strength.\u00A0Macy: Thank you so much for having me. I have loved being here and talking with you. I hope there are so many lives touched and changed by sharing my story.ClosingWould you like to be a guest on the podcast? Tell us about your experience at thevbaclink.com/share. For more information on all things VBAC including online and in-person VBAC classes, The VBAC Link blog, and Meagan\u2019s bio, head over to thevbaclink.com. Congratulations on starting your journey of learning and discovery with The VBAC Link.Support this podcast at \u2014 https://redcircle.com/the-vbac-link/donationsAdvertising Inquiries: https://redcircle.com/brands","datePublished":"2024-05-06","potentialAction":{"@type":"ListenAction","target":[{"@type":"EntryPoint","urlTemplate":"https://open.spotify.com/episode/7sA7a9BMde5K9RpRaeHCij?autoplay=true","actionPlatform":["http://schema.org/DesktopWebPlatform","http://schema.org/IOSPlatform","http://schema.googleapis.com/GoogleAudioCast","http://schema.googleapis.com/GoogleVideoCast"]},"android-app://com.spotify.music/spotify/episode/7sA7a9BMde5K9RpRaeHCij/play"],"expectsAcceptanceOf":{"@type":"Offer","category":"free","eligibleRegion":[{"@type":"Country","name":"AD"},{"@type":"Country","name":"AE"},{"@type":"Country","name":"AG"},{"@type":"Country","name":"AL"},{"@type":"Country","name":"AM"},{"@type":"Country","name":"AO"},{"@type":"Country","name":"AR"},{"@type":"Country","name":"AT"},{"@type":"Country","name":"AU"},{"@type":"Country","name":"AZ"},{"@type":"Country","name":"BA"},{"@type":"Country","name":"BB"},{"@type":"Country","name":"BE"},{"@type":"Country","name":"BF"},{"@type":"Country","name":"BG"},{"@type":"Country","name":"BH"},{"@type":"Country","name":"BI"},{"@type":"Country","name":"BJ"},{"@type":"Country","name":"BN"},{"@type":"Country","name":"BO"},{"@type":"Country","name":"BR"},{"@type":"Country","name":"BS"},{"@type":"Country","name":"BT"},{"@type":"Country","name":"BW"},{"@type":"Country","name":"BZ"},{"@type":"Country","name":"CA"},{"@type":"Country","name":"CH"},{"@type":"Country","name":"CI"},{"@type":"Country","name":"CL"},{"@type":"Country","name":"CM"},{"@type":"Country","name":"CO"},{"@type":"Country","name":"CR"},{"@type":"Country","name":"CV"},{"@type":"Country","name":"CW"},{"@type":"Country","name":"CY"},{"@type":"Country","name":"CZ"},{"@type":"Country","name":"DE"},{"@type":"Country","name":"DJ"},{"@type":"Country","name":"DK"},{"@type":"Country","name":"DM"},{"@type":"Country","name":"DO"},{"@type":"Country","name":"DZ"},{"@type":"Country","name":"EC"},{"@type":"Country","name":"EE"},{"@type":"Country","name":"EG"},{"@type":"Country","name":"ES"},{"@type":"Country","name":"FI"},{"@type":"Country","name":"FJ"},{"@type":"Country","name":"FM"},{"@type":"Country","name":"FR"},{"@type":"Country","name":"GA"},{"@type":"Country","name":"GB"},{"@type":"Country","name":"GD"},{"@type":"Country","name":"GE"},{"@type":"Country","name":"GH"},{"@type":"Country","name":"GM"},{"@type":"Country","name":"GN"},{"@type":"Country","name":"GQ"},{"@type":"Country","name":"GR"},{"@type":"Country","name":"GT"},{"@type":"Country","name":"GW"},{"@type":"Country","name":"GY"},{"@type":"Country","name":"HK"},{"@type":"Country","name":"HN"},{"@type":"Country","name":"HR"},{"@type":"Country","name":"HT"},{"@type":"Country","name":"HU"},{"@type":"Country","name":"ID"},{"@type":"Country","name":"IE"},{"@type":"Country","name":"IL"},{"@type":"Country","name":"IN"},{"@type":"Country","name":"IS"},{"@type":"Country","name":"IT"},{"@type":"Country","name":"JM"},{"@type":"Country","name":"JO"},{"@type":"Country","name":"JP"},{"@type":"Country","name":"KE"},{"@type":"Country","name":"KH"},{"@type":"Country","name":"KI"},{"@type":"Country","name":"KM"},{"@type":"Country","name":"KN"},{"@type":"Country","name":"KR"},{"@type":"Country","name":"KW"},{"@type":"Country","name":"LA"},{"@type":"Country","name":"LB"},{"@type":"Country","name":"LC"},{"@type":"Country","name":"LI"},{"@type":"Country","name":"LR"},{"@type":"Country","name":"LS"},{"@type":"Country","name":"LT"},{"@type":"Country","name":"LU"},{"@type":"Country","name":"LV"},{"@type":"Country","name":"MA"},{"@type":"Country","name":"MC"},{"@type":"Country","name":"ME"},{"@type":"Country","name":"MG"},{"@type":"Country","name":"MH"},{"@type":"Country","name":"MK"},{"@type":"Country","name":"ML"},{"@type":"Country","name":"MN"},{"@type":"Country","name":"MO"},{"@type":"Country","name":"MR"},{"@type":"Country","name":"MT"},{"@type":"Country","name":"MU"},{"@type":"Country","name":"MV"},{"@type":"Country","name":"MW"},{"@type":"Country","name":"MX"},{"@type":"Country","name":"MY"},{"@type":"Country","name":"MZ"},{"@type":"Country","name":"NA"},{"@type":"Country","name":"NE"},{"@type":"Country","name":"NG"},{"@type":"Country","name":"NI"},{"@type":"Country","name":"NL"},{"@type":"Country","name":"NO"},{"@type":"Country","name":"NP"},{"@type":"Country","name":"NR"},{"@type":"Country","name":"NZ"},{"@type":"Country","name":"OM"},{"@type":"Country","name":"PA"},{"@type":"Country","name":"PE"},{"@type":"Country","name":"PG"},{"@type":"Country","name":"PH"},{"@type":"Country","name":"PL"},{"@type":"Country","name":"PR"},{"@type":"Country","name":"PS"},{"@type":"Country","name":"PT"},{"@type":"Country","name":"PW"},{"@type":"Country","name":"PY"},{"@type":"Country","name":"QA"},{"@type":"Country","name":"RO"},{"@type":"Country","name":"RS"},{"@type":"Country","name":"RW"},{"@type":"Country","name":"SA"},{"@type":"Country","name":"SB"},{"@type":"Country","name":"SC"},{"@type":"Country","name":"SE"},{"@type":"Country","name":"SG"},{"@type":"Country","name":"SI"},{"@type":"Country","name":"SK"},{"@type":"Country","name":"SL"},{"@type":"Country","name":"SM"},{"@type":"Country","name":"SN"},{"@type":"Country","name":"SR"},{"@type":"Country","name":"ST"},{"@type":"Country","name":"SV"},{"@type":"Country","name":"SZ"},{"@type":"Country","name":"TD"},{"@type":"Country","name":"TG"},{"@type":"Country","name":"TH"},{"@type":"Country","name":"TL"},{"@type":"Country","name":"TN"},{"@type":"Country","name":"TO"},{"@type":"Country","name":"TR"},{"@type":"Country","name":"TT"},{"@type":"Country","name":"TV"},{"@type":"Country","name":"TW"},{"@type":"Country","name":"TZ"},{"@type":"Country","name":"UA"},{"@type":"Country","name":"US"},{"@type":"Country","name":"UY"},{"@type":"Country","name":"UZ"},{"@type":"Country","name":"VC"},{"@type":"Country","name":"VN"},{"@type":"Country","name":"VU"},{"@type":"Country","name":"WS"},{"@type":"Country","name":"XK"},{"@type":"Country","name":"ZA"},{"@type":"Country","name":"ZM"},{"@type":"Country","name":"ZW"}]}}}</script><link rel="manifest" href="https://open.spotifycdn.com/cdn/generated/manifest-mobile-web-player.a1ddf51c.json"/><style data-styled="active"></style><style data-styled="" data-styled-version="5.3.11">.bksmLQ{box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;border:0;border-radius:var(--encore-button-corner-radius,9999px);cursor:pointer;display:inline-block;position:relative;text-align:center;-webkit-text-decoration:none;text-decoration:none;text-transform:none;touch-action:manipulation;-webkit-transition-duration:33ms;transition-duration:33ms;-webkit-transition-property:background-color,border-color,color,box-shadow,filter,-webkit-transform;-webkit-transition-property:background-color,border-color,color,box-shadow,filter,transform;transition-property:background-color,border-color,color,box-shadow,filter,transform;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);color:var(--text-subdued,#656565);min-inline-size:0;min-block-size:var(--encore-control-size-base,48px);padding-block:var(--encore-spacing-tighter,12px);padding-inline:var(--encore-spacing-tighter,12px);display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}/*!sc*/ @supports (overflow-wrap:anywhere){.bksmLQ{overflow-wrap:anywhere;}}/*!sc*/ @supports not (overflow-wrap:anywhere){.bksmLQ{word-break:break-word;}}/*!sc*/ .bksmLQ:hover{-webkit-transform:scale(1.04);-ms-transform:scale(1.04);transform:scale(1.04);color:var(--text-base,#000000);}/*!sc*/ .bksmLQ:active{opacity:0.7;outline:none;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);color:var(--text-subdued,#656565);}/*!sc*/ .bksmLQ::after{inline-size:24px;}/*!sc*/ .bksmLQ[disabled],.bksmLQ[aria-disabled='true'],fieldset[disabled] .bksmLQ{cursor:not-allowed;opacity:0.3;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);color:var(--text-subdued,#656565);}/*!sc*/ .bksmLQ[disabled]::before,.bksmLQ[aria-disabled='true']::before,fieldset[disabled] .bksmLQ::before{background-color:transparent;}/*!sc*/ .bksmLQ[disabled]::after,.bksmLQ[aria-disabled='true']::after,fieldset[disabled] .bksmLQ::after{border-color:transparent;}/*!sc*/ .hRqQQR{box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;border:0;border-radius:var(--encore-button-corner-radius,9999px);cursor:pointer;display:inline-block;position:relative;text-align:center;-webkit-text-decoration:none;text-decoration:none;text-transform:none;touch-action:manipulation;-webkit-transition-duration:33ms;transition-duration:33ms;-webkit-transition-property:background-color,border-color,color,box-shadow,filter,-webkit-transform;-webkit-transition-property:background-color,border-color,color,box-shadow,filter,transform;transition-property:background-color,border-color,color,box-shadow,filter,transform;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);color:var(--text-base,#000000);min-inline-size:0;min-block-size:var(--encore-control-size-base,48px);padding-block:calc(var(--encore-spacing-tighter-2,8px) - 2px);padding-inline:0;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}/*!sc*/ @supports (overflow-wrap:anywhere){.hRqQQR{overflow-wrap:anywhere;}}/*!sc*/ @supports not (overflow-wrap:anywhere){.hRqQQR{word-break:break-word;}}/*!sc*/ .hRqQQR:hover{-webkit-transform:scale(1.04);-ms-transform:scale(1.04);transform:scale(1.04);}/*!sc*/ .hRqQQR:active{opacity:0.7;outline:none;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);color:var(--text-base,#000000);}/*!sc*/ .hRqQQR::after{inline-size:100%;}/*!sc*/ .hRqQQR[disabled],.hRqQQR[aria-disabled='true'],fieldset[disabled] .hRqQQR{cursor:not-allowed;opacity:0.3;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);color:var(--text-base,#000000);}/*!sc*/ .hRqQQR[disabled]::before,.hRqQQR[aria-disabled='true']::before,fieldset[disabled] .hRqQQR::before{background-color:transparent;}/*!sc*/ .hRqQQR[disabled]::after,.hRqQQR[aria-disabled='true']::after,fieldset[disabled] .hRqQQR::after{border-color:transparent;}/*!sc*/ data-styled.g2[id="Button-sc-1dqy6lx-0"]{content:"bksmLQ,hRqQQR,"}/*!sc*/ .hYdsxw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}/*!sc*/ .kUVYXR{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-inline-start:12px;}/*!sc*/ data-styled.g3[id="IconWrapper__Wrapper-sc-16usrgb-0"]{content:"hYdsxw,kUVYXR,"}/*!sc*/ .bneLcE{fill:currentcolor;width:var(--encore-graphic-size-decorative-base,24px);height:var(--encore-graphic-size-decorative-base,24px);}/*!sc*/ .bneLcE *{vector-effect:non-scaling-stroke;}/*!sc*/ .zsGU{fill:currentcolor;width:var(--encore-graphic-size-decorative-base,24px);height:var(--encore-graphic-size-decorative-base,24px);}/*!sc*/ .zsGU *{vector-effect:non-scaling-stroke;}/*!sc*/ [dir='rtl'] .zsGU.zsGU{-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1);}/*!sc*/ data-styled.g4[id="Svg-sc-ytk21e-0"]{content:"bneLcE,zsGU,"}/*!sc*/ .hKFGwn{box-sizing:border-box;-webkit-tap-highlight-color:transparent;position:relative;background-color:var(--background-base,#1ed760);color:var(--text-base,#000000);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border-radius:var(--encore-button-corner-radius,9999px);font-size:inherit;min-block-size:var(--encore-control-size-larger,56px);-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;inline-size:var(--encore-control-size-larger,56px);-webkit-block-size:var(--encore-control-size-larger,56px);-ms-flex-block-size:var(--encore-control-size-larger,56px);block-size:var(--encore-control-size-larger,56px);-webkit-transition-property:background-color,-webkit-transform;-webkit-transition-property:background-color,transform;transition-property:background-color,transform;-webkit-transition-duration:33ms;transition-duration:33ms;}/*!sc*/ @supports (overflow-wrap:anywhere){.hKFGwn{overflow-wrap:anywhere;}}/*!sc*/ @supports not (overflow-wrap:anywhere){.hKFGwn{word-break:break-word;}}/*!sc*/ data-styled.g6[id="ButtonInner-sc-14ud5tc-0"]{content:"hKFGwn,"}/*!sc*/ .dlTJiR{box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;border:0;border-radius:var(--encore-button-corner-radius,9999px);cursor:pointer;display:inline-block;position:relative;text-align:center;-webkit-text-decoration:none;text-decoration:none;text-transform:none;touch-action:manipulation;-webkit-transition-duration:33ms;transition-duration:33ms;-webkit-transition-property:background-color,border-color,color,box-shadow,filter,-webkit-transform;-webkit-transition-property:background-color,border-color,color,box-shadow,filter,transform;transition-property:background-color,border-color,color,box-shadow,filter,transform;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);padding:0;min-inline-size:0;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;}/*!sc*/ .dlTJiR:hover .ButtonInner-sc-14ud5tc-0,.dlTJiR:hover .ButtonFocus-sc-2hq6ey-0{-webkit-transform:scale(1.04);-ms-transform:scale(1.04);transform:scale(1.04);}/*!sc*/ .dlTJiR:hover .ButtonInner-sc-14ud5tc-0{background-color:var(--background-highlight,#3be477);}/*!sc*/ .dlTJiR:active .ButtonInner-sc-14ud5tc-0{background-color:var(--background-press,#1abc54);box-shadow:none;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);}/*!sc*/ .dlTJiR:active .ButtonFocus-sc-2hq6ey-0{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);}/*!sc*/ .dlTJiR:focus .ButtonFocus-sc-2hq6ey-0{border-color:var(--parents-essential-base,var(--essential-base,#000000));}/*!sc*/ .dlTJiR[disabled] .ButtonInner-sc-14ud5tc-0,.dlTJiR[aria-disabled='true'] .ButtonInner-sc-14ud5tc-0,fieldset[disabled] .dlTJiR .ButtonInner-sc-14ud5tc-0{cursor:not-allowed;opacity:0.3;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);background-color:var(--background-base,#1ed760);color:var(--text-base,#000000);}/*!sc*/ .dlTJiR[disabled] .ButtonFocus-sc-2hq6ey-0,.dlTJiR[aria-disabled='true'] .ButtonFocus-sc-2hq6ey-0,fieldset[disabled] .dlTJiR .ButtonFocus-sc-2hq6ey-0{border-color:transparent;}/*!sc*/ data-styled.g7[id="Button-sc-qlcn5g-0"]{content:"dlTJiR,"}/*!sc*/ .ivomLs{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:absolute;inset-block-start:calc((var(--encore-control-size-larger,56px) - var(--encore-graphic-size-decorative-base,24px)) / 2);inset-inline-start:calc((var(--encore-control-size-larger,56px) - var(--encore-graphic-size-decorative-base,24px)) / 2);}/*!sc*/ data-styled.g8[id="IconWrapper__Wrapper-sc-1hf1hjl-0"]{content:"ivomLs,"}/*!sc*/ .kOChlU{inline-size:100%;border-radius:var(--encore-corner-radius-base,4px);}/*!sc*/ data-styled.g15[id="Image-sc-1u215sg-3"]{content:"kOChlU,"}/*!sc*/ .lmgIvZ{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}/*!sc*/ data-styled.g19[id="ListRowTitle__LineClamp-sc-1xe2if1-0"]{content:"lmgIvZ,"}/*!sc*/ .eFGzcP{outline:none;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ @supports (overflow-wrap:anywhere){.eFGzcP{overflow-wrap:anywhere;}}/*!sc*/ @supports not (overflow-wrap:anywhere){.eFGzcP{word-break:break-word;}}/*!sc*/ data-styled.g20[id="ListRowTitle__ListRowText-sc-1xe2if1-1"]{content:"eFGzcP,"}/*!sc*/ .wLcyr{box-sizing:border-box;-webkit-tap-highlight-color:transparent;position:relative;border-radius:var(--encore-corner-radius-larger,6px);min-block-size:48px;z-index:0;color:var(--text-base,#000000);padding-block-start:8px;padding-block-end:8px;padding-inline-start:8px;padding-inline-end:8px;--animation-speed:300ms;--animation-ease:ease;--bg-inset-change-press:-4px;cursor:pointer;}/*!sc*/ .wLcyr::after{content:'';position:absolute;border-radius:var(--encore-corner-radius-larger,6px);z-index:-1;-webkit-transition:background-color var(--animation-speed) var(--animation-ease),top var(--animation-speed) var(--animation-ease),left var(--animation-speed) var(--animation-ease),right var(--animation-speed) var(--animation-ease),bottom var(--animation-speed) var(--animation-ease);transition:background-color var(--animation-speed) var(--animation-ease),top var(--animation-speed) var(--animation-ease),left var(--animation-speed) var(--animation-ease),right var(--animation-speed) var(--animation-ease),bottom var(--animation-speed) var(--animation-ease);inset:0;inset:8px 8px 8px 8px;}/*!sc*/ .wLcyr[disabled],.wLcyr[aria-disabled='true'],fieldset[disabled] .wLcyr{cursor:not-allowed;opacity:0.3;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);}/*!sc*/ .wLcyr:hover::after{background-color:var(--background-highlight,#f5f5f5);inset:0;}/*!sc*/ .wLcyr[disabled]:hover::after,.wLcyr[aria-disabled='true']:hover::after{background-color:unset;}/*!sc*/ .wLcyr[disabled]:active::after,.wLcyr[aria-disabled='true']:active::after{background-color:unset;inset:unset;}/*!sc*/ data-styled.g29[id="Box__BoxComponent-sc-y4nds-0"]{content:"wLcyr,"}/*!sc*/ .MWEhk button,.MWEhk a,.MWEhk [role='button'],.MWEhk [role='link']{position:relative;z-index:1;}/*!sc*/ data-styled.g37[id="Areas__InteractiveArea-sc-1tea2mc-0"]{content:"MWEhk,"}/*!sc*/ .kLALqL{-webkit-column-gap:var(--encore-spacing-tighter,12px);column-gap:var(--encore-spacing-tighter,12px);-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}/*!sc*/ data-styled.g38[id="Areas__MainArea-sc-1tea2mc-1"]{content:"kLALqL,"}/*!sc*/ .cuoMqc{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:2px;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}/*!sc*/ data-styled.g39[id="Areas__Column-sc-1tea2mc-2"]{content:"cuoMqc,"}/*!sc*/ .hscyXl{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;row-gap:var(--encore-spacing-tighter-2,8px);}/*!sc*/ .hscyXl[disabled]{opacity:0.7;}/*!sc*/ data-styled.g41[id="Box-sc-1njtxi4-0"]{content:"hscyXl,"}/*!sc*/ .DjiIj{position:absolute;z-index:0;inset:0;cursor:pointer;}/*!sc*/ data-styled.g43[id="CardLink-sc-1ut6cns-0"]{content:"DjiIj,"}/*!sc*/ .gPhSUm{box-sizing:border-box;-webkit-tap-highlight-color:transparent;border:0;border-block-start:1px solid var(--decorative-subdued,#dedede);margin-block:var(--encore-spacing-looser,24px);}/*!sc*/ data-styled.g48[id="HorizontalRule__HorizontalRuleElement-sc-198gjx4-0"]{content:"gPhSUm,"}/*!sc*/ </style><link rel="stylesheet" href="https://open.spotifycdn.com/cdn/build/mobile-web-player/mwp-dialog-container.27a73578.css"/><link rel="stylesheet" href="https://open.spotifycdn.com/cdn/build/mobile-web-player/mwp-context-menu-container.745a6bcd.css"/><link rel="stylesheet" href="https://open.spotifycdn.com/cdn/build/mobile-web-player/mwp-home-page.70b68d75.css"/><link rel="stylesheet" href="https://open.spotifycdn.com/cdn/build/mobile-web-player/mwp-connect-view-container.5d43dcff.css"/><link rel="stylesheet" href="https://open.spotifycdn.com/cdn/build/mobile-web-player/mwp-now-playing-view.075811b4.css"/><link rel="stylesheet" href="https://open.spotifycdn.com/cdn/build/mobile-web-player/mwp-artist-page.59426d02.css"/><link rel="stylesheet" href="https://open.spotifycdn.com/cdn/build/mobile-web-player/mobile-web-player.96045797.css"/><link rel="preconnect" href="https://apresolve.spotify.com" crossorigin="anonymous"/><link rel="preconnect" href="https://clienttoken.spotify.com" crossorigin="anonymous"/><link rel="preconnect" href="https://api-partner.spotify.com" crossorigin="anonymous"/><link rel="preconnect" href="https://spclient.wg.spotify.com" crossorigin="anonymous"/><link rel="preconnect" href="https://api.spotify.com" crossorigin="anonymous"/><link rel="preconnect" href="https://daily-mix.scdn.co" crossorigin="anonymous"/><link rel="preconnect" href="https://exp.wg.spotify.com" crossorigin="anonymous"/><link rel="preconnect" href="https://i.scdn.co" crossorigin="anonymous"/><link rel="preconnect" href="https://lineup-images.scdn.co" crossorigin="anonymous"/><link rel="preconnect" href="https://mosaic.scdn.co" crossorigin="anonymous"/><link rel="preconnect" href="https://open.spotifycdn.com" crossorigin="anonymous"/><link rel="preconnect" href="https://pixel-static.spotify.com" crossorigin="anonymous"/><link rel="preconnect" href="https://pixel.spotify.com" crossorigin="anonymous"/><link rel="preconnect" href="https://pl.scdn.co" crossorigin="anonymous"/><link rel="preconnect" href="https://open.spotifycdn.com" crossorigin="anonymous"/><link rel="preconnect" href="https://gae2-dealer.spotify.com" crossorigin="anonymous"/><link rel="preconnect" href="https://gae2-spclient.spotify.com" crossorigin="anonymous"/><link rel="preload" href="https://open.spotifycdn.com/cdn/generated-locales/mobile-web-player/en.b88ec63c.json" data-translations-url-for-locale="en" as="fetch" crossorigin="anonymous" type="application/json"/><link rel="search" type="application/opensearchdescription+xml" title="Spotify" href="https://open.spotifycdn.com/cdn/generated/opensearch.4cd8879e.xml"/><script defer="" src="https://www.googleoptimize.com/optimize.js?id=GTM-W53X654"></script><script defer="" src="https://open.spotifycdn.com/cdn/js/gtm.ea4c34bc.js"></script><script defer="" src="https://open.spotifycdn.com/cdn/js/retargeting-pixels.5ab9cdc0.js"></script></head><body class="mobile-web-player"><script id="config" data-testid="config" type="application/json">{"appName":"web_player_prototype","market":"SG","locale":{"locale":"en","rtl":false,"textDirection":"ltr"},"isPremium":false,"correlationId":"fa55e5f2c9ccc272cc975646e2690263","isAnonymous":true,"gtmId":"GTM-PZHN3VD","optimizeId":"GTM-W53X654","pipResources":{"scripts":["https://open.spotifycdn.com/cdn/build/web-player/vendor~web-player.634ed7ba.js","https://open.spotifycdn.com/cdn/build/web-player/pip-mini-player.7bed11d2.js"],"styles":["https://open.spotifycdn.com/cdn/build/web-player/pip-mini-player.db269d42.css"]},"retargetingPixels":null,"recaptchaWebPlayerFraudSiteKey":"6LfCVLAUAAAAALFwwRnnCJ12DalriUGbj8FW_J39"}</script><script id="session" data-testid="session" type="application/json">{"accessToken":"BQB_TLAh9M3ddhnGTviNC8MkSG4Q1EohpQm1WoBHM4-zxO8h_X7TwPhjIS3L8dLdUnsf_0lvm-NdBbuzY7GcKhw6sXs3CSjqpiUarzWXLVNY94giJ0M","accessTokenExpirationTimestampMs":1732710090352,"isAnonymous":true,"clientId":"f6a40776580943a7bc5173125a1e8832"}</script><div id="main" data-ssr="1"><div class="encore-layout-themes"><div class="ufy3rNNsNBx6IOixSXEG"><div class="encore-dark-theme xXxkvFpB54Fne7ykRnXa" data-main-scrollable-node="true"><div class="Cv2QMWaKhio30Ly6ooMy"><div class="SAvutxFsWpINsq8pSOqb" style="--bottomMargin:0px"><!--$--><div data-testid="podcast-entity-view" class="E34FrewmewkuBM1IDQsg"><div class="M2zTPqWSULZAGKARgjXG" style="background:linear-gradient(#7F7F7F 0%, transparent 100%)"><div class="LTYHCckz80h0rAHEj0aQ OgFUAo4HM9zkORh6yYKs lBPLQvOs6NEAQQaTuYm9" data-testid="entity-header-top-section"><div class="cfggPp9bWTWmJHtaMuwE"><div data-testid="entity-image" style="opacity:1;width:56px;height:56px" class="_9oqBtpu3TVycIiibYRVw"><img aria-hidden="false" draggable="false" loading="eager" src="https://lite-images-i.scdn.co/image/ab67656300005f1f77962fbcdb8b9ff677543371" data-testid="entity-header-entity-image" alt="" class="mMx2LUixlnN_Fu45JpFB"/></div></div><div class="cfggPp9bWTWmJHtaMuwE"><div class="zJT83mTjBmPlNfEnuNYs" data-testid="entity-header-title-and-subtitle-section"><h1 class="encore-text encore-text-title-medium gj6rSoF7K4FohS2DJDEm" data-encore-id="text" data-testid="showTitle">Episode 297 Macy&#x27;s Amazing HBA2C + What Does the Evidence Show for VBA2C?</h1><div class="encore-text encore-text-body-small sMT6JaxLhI2QLVSevX_3 fjP8GyQyM5IWQvTxWk6W" data-encore-id="text" data-testid="entity-header-entity-subtitle">The VBAC Link</div></div></div></div><div class="kVj4O1X1hlTwIyajGjJb" data-testid="entity-bottom-section"><span><div class="qfYkuLpETFW3axnfMntO"><p class="encore-text encore-text-body-small _q93agegdE655O5zPz6l" data-encore-id="text">May 6</p><p class="encore-text encore-text-body-small _q93agegdE655O5zPz6l" data-encore-id="text" data-testid="episode-progress-not-played"><span class="UyzJidwrGk3awngSGIwv">45 min 36 sec</span></p></div></span><div class="encore-text encore-text-body-small jXbmfyIkvfBoDgVxAaDD" data-encore-id="text"><button class="Button-sc-1dqy6lx-0 bksmLQ" aria-label="Save to Your Library" data-encore-id="buttonTertiary"><span aria-hidden="true" class="IconWrapper__Wrapper-sc-16usrgb-0 hYdsxw"><svg data-encore-id="icon" role="img" aria-hidden="true" viewBox="0 0 24 24" class="Svg-sc-ytk21e-0 bneLcE"><path d='M11.999 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18zm-11 9c0-6.075 4.925-11 11-11s11 4.925 11 11-4.925 11-11 11-11-4.925-11-11z'/><path d='M17.999 12a1 1 0 0 1-1 1h-4v4a1 1 0 1 1-2 0v-4h-4a1 1 0 1 1 0-2h4V7a1 1 0 1 1 2 0v4h4a1 1 0 0 1 1 1z'/></svg></span></button><button data-testid="entity-share-button" class="Button-sc-1dqy6lx-0 bksmLQ" aria-label="Share" data-encore-id="buttonTertiary"><span aria-hidden="true" class="IconWrapper__Wrapper-sc-16usrgb-0 hYdsxw"><svg data-encore-id="icon" role="img" aria-hidden="true" viewBox="0 0 24 24" class="Svg-sc-ytk21e-0 bneLcE"><path d='M18.5 4a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zM15 5.5a3.5 3.5 0 1 1 1.006 2.455L9 12l7.006 4.045a3.5 3.5 0 1 1-.938 1.768l-6.67-3.85a3.5 3.5 0 1 1 0-3.924l6.67-3.852A3.513 3.513 0 0 1 15 5.5zm-9.5 5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zm13 6.5a1.5 1.5 0 1 0-.001 3 1.5 1.5 0 0 0 .001-3z'/></svg></span></button><button data-testid="context-menu-action" class="Button-sc-1dqy6lx-0 bksmLQ" aria-label="More" data-encore-id="buttonTertiary"><span aria-hidden="true" class="IconWrapper__Wrapper-sc-16usrgb-0 hYdsxw"><svg data-encore-id="icon" role="img" aria-hidden="true" viewBox="0 0 24 24" class="Svg-sc-ytk21e-0 bneLcE"><path d='M10.5 4.5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0zm0 15a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0zm0-7.5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0z'/></svg></span></button></div><div class="PbbAKgDSKqb_aeaogoiN"><div class="ilFQxSwAuKW7R9upfQxi"><button data-testid="play-button" aria-label="Play" data-encore-id="buttonPrimary" data-is-icon-only="true" class="Button-sc-qlcn5g-0 dlTJiR"><span class="ButtonInner-sc-14ud5tc-0 hKFGwn encore-bright-accent-set"><span aria-hidden="true" class="IconWrapper__Wrapper-sc-1hf1hjl-0 ivomLs"><svg data-encore-id="icon" role="img" aria-hidden="true" viewBox="0 0 24 24" class="Svg-sc-ytk21e-0 bneLcE"><path d='m7.05 3.606 13.49 7.788a.7.7 0 0 1 0 1.212L7.05 20.394A.7.7 0 0 1 6 19.788V4.212a.7.7 0 0 1 1.05-.606z'/></svg></span></span></button></div></div></div></div><div class="AXLhOsSjT3bowfjf42kK"><div><div data-testid="expandable-description"><div class="buqVKMpwHgGMDJFSl54R"><div class="encore-text encore-text-body-small Zbad_ytC5aqG3ZISd4Gw" data-encore-id="text"><span class="encore-text encore-text-body-small encore-internal-color-text-subdued G_f5DJd2sgHWeto5cwbi" data-encore-id="text">Macy’s first birth was a scheduled C-section due to breech presentation that required follow-up exploratory surgery due to an unknown cause of internal bleeding. Unfortunately, her surgeon had accidentally nicked an ab muscle. Macy’s recovery was very difficult.With her second, doctors were nervous about her chances of VBAC and would only let her try if she showed up in active labor before 39 weeks. Otherwise, she would go in for a scheduled C-section. Macy agreed and her birth ended in another Cesarean. Her birth was beautiful and her recovery was smooth, but it still wasn’t the empowering experience she hoped for. Macy hit the ground running during her third pregnancy. When doctors were not supportive of a VBA2C, she knew home birth was her best option. She found a midwife who was willing to take Macy on as her first VBA2C client! We know you will absolutely love listening to this birth story. Like Meagan said, “It is so beautiful. It is so peaceful. It sounds like one of those births where you close your eyes and you envision birth and how peaceful, beautiful, and calm it really can be.”The VBAC Link Blog: VBA2C Practice Bulletin - VBACInformed Pregnancy - code: vbaclink424Needed WebsiteHow to VBAC: The Ultimate Prep Course for ParentsFull Transcript under Episode Details 03:44 First C-section with internal bleeding and a follow-up exploratory surgery09:04 Second pregnancy11:37 Scheduled C-section and getting pregnant again shortly after18:44 Finding a supportive home birth midwife23:24 VBA2C prep during pregnancy27:46 Labor begins32:42 Breaking her own water and pushing for 17 minutes36:47 ACOG’s statement on VBA2CMeagan: Hello, hello Women of Strength. We are so excited to be sharing an HBA2C story and if you don’t know yet what HBAC means, that’s home birth after Cesarean and then HBA2C is home birth after two Cesareans. I feel like that’s kind of funny. It’s never really a term I used because I wasn’t at the hospital and I wasn’t at home, but I also kind of feel like I sort of had an HBAC. It was at a birth center. Maybe that’s a term, birth center birth after two Cesareans. I don’t know. But obviously, VBAC after two Cesareans are near and dear to my own heart and today we have our friend Macy from California sharing her HBAC story and just before we started recording, we were talking about how one of her messages that she wants to give is that you can do this. Right, Macy? You’re just like, you can. People can do this. Macy: For sure. Meagan: Yes. Yes. I am excited to hear your story and then I wanted to also just talk a little bit at the end about some evidence on VBAC after two C-sections. So if you’re wondering more about VBA2C, make sure you stick to the very, very end even after the story because we’ll talk a little bit about that. 01:24Meagan: We do have a Review of the Week and this is from Jenna. It is actually on our How to VBAC: Ultimate VBAC Prep Course. She says, “I just started but have already learned so much. After two C-sections and one where my doctor made me think it was very risky, I was terrified to try again. With this course, not only have I learned the truth about VBAC, but I am excited to attempt mine in August.” That’s coming up. I am so excited for Jenna. Thank you so much for the review and the support, of course, of taking the course. I am so excited that you are getting educated and definitely keep us posted. 03:44 First C-section with internal bleeding and a follow-up exploratory surgeryMeagan: Okay, cute Macy. Welcome to the show. Macy: Thank you for having me. Meagan: Absolutely. I’d love to turn the time over to you and share whatever message you feel is important for our beautiful Women of Strength listeners. Macy: Okay, well like with all VBACs, my story begins of course with my first pregnancy. During my first pregnancy, I was pretty healthy. I didn’t love being pregnant, but I was excited that we were starting our family and I got to– I can’t remember– 34 weeks maybe, 35ish, and baby was still breech. They offered me the ECV procedure, but they told me I would have to do it around 37-38 weeks and I was worried about it being so early before my due date that she would turn again. I was scared. They got me scared. They don’t really present the ECVs as something that should work. Meagan: I know. I know. Macy: My midwife with my third pregnancy was like, “I wish you would have done it,” but they talked me out of it so I decided not to do it. Come 40 weeks, she was still not flipped, but I wasn’t in labor so another thing is I wish I would have just waited to see because maybe she would have flipped in labor. Meagan: Sometimes they do. I actually recently had a client last year in 2023 that did have that. She was scheduled for her version and then she went into spontaneous labor so she actually went in pretty early because she was like, “Oh my gosh. My baby’s breech. I was scheduled the next day for a version,” and they were like, “Baby’s head down.” So it definitely happens. Macy: With my third one, she was sunny-side up. She was posterior, but I could feel her turning and getting into position. But anyway, I’ll get there. I’ll get there. I had my C-section scheduled. My daughter, Alayna was born 10 days before Christmas in 2018. She was perfect. She was 6 pounds, 13 ounces. I was not great. After my surgery, I came out. I was in the PACU and my blood pressure was dropping crazy low and my heart rate was spiking super high. I was ghost-white and they were like, “We don’t know what’s going on.” Long, long, long story short, I was having crazy internal bleeding. Meagan: I was going to say, were you hemorrhaging? Because that sounds like hemorrhaging. Macy: I was hemorrhaging. I was bleeding internally, but it was from having surgery. It was not anything to do with baby or birth. It was just surgery. So what we discovered is they had accidentally nicked an ab muscle and it was bleeding. 24 hours after my daughter was born, I had to go back in for an exploratory surgery and I was put under anesthesia completely again. They had to cut back open my layers and start over. Thankfully, they didn’t have to cut into my uterus again, but they did open me back up and stop the bleeding, cauterize it and I mean, my recovery was just horrible. Meagan: Not great, yeah. Macy: I mean, thankfully I only had one baby so it was just her and my husband is amazing. I could not ask for a better partner, but it was just hard. It was hard to accept that, to grieve the birth I had dreamed of my whole life, but it never occurred to me that I couldn’t have a VBAC. My mom had me via C-section and my three subsequent siblings were all VBAC. So when someone said to me at 12 weeks, I recovered. I was back at the gym and someone from the gym was like, “Oh, so you have to have all your babies as C-sections now.” I was like, “Wait, that’s a thing still? We’re still doing that?” I was like, “No. I’m going to have a VBAC.” I never even thought about it. I immediately was like, “Oh, so this is going to be a thing.” That’s when I found you guys and I started listening before I was even pregnant with my second one, but when I did get pregnant three years later with baby number two, I probably binge-listened to every single episode. I was like, “I’m doing this.” 09:04 Second pregnancyMacy: I switched providers just because I didn’t have a great experience so I was like, my postpartum care, I didn’t care for my pediatrician so I just switched everything. But because I was with a new provider, I had a really difficult time locating my surgical notes. My new providers wanted to know if my first C-section was done with a single or double-layer closure. Meagan: Oh, interesting. Okay. Macy: Because of course, if it’s single, it’s going to increase my risk for a rupture. I at this point was already like, the risk of rupture is so low. I am not worried about it. Breech baby is a great candidate for VBAC. Meagan: And the evidence on that is really not solid on which one really is best. There are some that show double may be better, but that doesn’t necessarily mean that your rupture rate skyrockets because you have a single layer. So they are focusing on something that didn’t have a ton of evidence. Macy: Right. I was like, “There is just not enough research to justify all of these C-sections.” But because they didn’t understand what had gone wrong and why I had to have a second surgery even though I told them a million times it wasn’t anything to do with my uterus. It wasn’t a me problem. It was a doctor&#x27;s problem. They were just like, “We just don’t feel comfortable with TOLAC.” And you know, it’s always TOLAC. It’s never just a VBAC. Meagan: I know. Macy: But they didn’t want to do anything. They didn’t want to offer ultrasounds. They just were not willing to take a chance even though it was a really good chance. So basically, they were like, “The only way you are having this second baby VBAC is if you come to the hospital and you are in labor and it’s time to push.” I mean, that’s kind of scary to someone who doesn’t know. I mean, now that I’ve done it I’m like, “That’s what I should have done,” and that’s what I tell my friends. You don’t go to the doctor until your contractions are two minutes apart because they try to scare women out of their VBAC. 11:37 Scheduled C-section and getting pregnant again shortly afterMacy: So I just didn’t really stand up for myself. I just agreed like, “Okay, I guess.” I told myself, “If I go into labor before my scheduled C-section at 39 weeks, then that’s the way God wants it and I will have my VBAC.” Obviously, that never happened and 39 weeks is pretty early now knowing especially when due dates are just guess dates. Meagan: Very important note that you just gave there. Macy: Yeah. I had my baby at 39 weeks. She was perfect. I mean, my recovery was– she was another 6 pounds, 15 ounces so they were almost the same size. That was Reagan. Recovery was a lot better but still, I had a 3-year-old at home. Going from one to two was pretty good for me. I have a big family. That was great. But it was still not the empowering birth that I wanted. I did feel– I don’t want to say I didn’t feel empowered because C-section is badass. It’s hard. Meagan: Yeah. Mhmm, yeah. Macy: It’s not the easy way out ever. There is no easy way out of birth. I do want to preface that and say if that’s what ends up happening and you only have two kids and you only have two C-sections, that’s okay too. I knew we weren’t done having kids. I wanted the birth I wanted. I did not plan to get pregnant with such a short turnaround time. I was almost 8 months postpartum when we found out we were pregnant again. We were a little surprised. I mean, we are grown adults. It shouldn’t be that surprising. Meagan: But still, it can be a little alarming when you weren’t mentally preparing for that. Macy: I had just finished breastfeeding. I was just starting to track and all of these things so I was like, “Oh no.” But that was kind of when my work really started for me because I was like, “Okay. We are doing this again and I’m going to do this the way I want. This is going to be how I want it to go. This is my story and this is going to be an essential component of who I am as a woman and as a mother going forward for the rest of my life. I need this to go the way I want it to go.” I wanted it to go the way God wanted it to go of course, but I was like, “I’m going to take more control.” Meagan: Can I add something to that? Sorry to interrupt, but there are so many times that I hear people, I read on social media that people are getting after moms and parents who are like, “I want this birth. This is what I want. This is what I feel I need,” or what you are saying. “I want it to go a certain way.” They are like, “Why do you have to focus on what you want? It’s not what you want. It’s what’s best for the baby.” They are railing on these people. I want to stop and say that what you said is okay. I feel like maybe a little passionate about that too because so many people were naysayers to me. “It does not matter what you want. It’s what’s best for the baby.” It’s like, well guess what? That’s also maybe what’s best for my baby. Macy: Right. Meagan: It’s okay to say, Women of Strength, “I want this birth. This is what I want.” And you deserve that. You deserve to go after what you want. Macy: It is hard and being a mom is hard. Meagan: Yes. Macy: You can start out in a way that you feel empowered. It is life-changing. It really is. Meagan: It is. So sorry for interrupting, but I just wanted to give a little tidbit that it’s okay for people to want what they want. I wanted a white vehicle. I was going to find a white vehicle. It’s okay to get what you want and to put forth energy and to say that out loud, “I want this VBAC. I’m going to get this. I want it.” Macy: You spend almost 10 months thinking about this and praying about it whereas you talk to– I mean, it wasn’t as important to anyone else in my life except for me. That was okay. Especially the doctors and the providers, I’m just another person to them and yes, there are some really great providers out there and they do care, but they are at their job. They are doing their job. Well, my job is to be a mother. That’s my job, so doing what serves me well was birthing my baby the way– Meagan: Having a VBAC. Macy: Having a VBAC. So I really hit the ground running. There were a few girls in my town who had recently had homebirths. They weren’t VBACs, but they were VBACs so I reached out to them– shoutout to my girls Megan and Emily. They were so helpful because they were real people. I reached out to you guys and I just wanted to know, “Hey, what is the research on really close pregnancies?” because I wasn’t going to hit the 18 months. Meagan: The 18 months. Your babies were going to be 17 months apart, right? Macy: 17 months. So that was even annoying too because I was like, “I’m right there. Come on.” You guys were like, “Go join the Facebook Community group.” I was so glad that I did because I was just finding story after story after post after post. Not only were so many women having VBACs after two+ C-sections, but they were close together. Some were like, “Mine were 12 months apart.” I’m like, “Oh, I’m good to go then.” It was so nice having that community. I was even able to join a community within the community of everyone who was due at the same time as me so when we got close, we had a group message and everyone was like, “Is it happening today? Is it happening today?” It was so nice not to be alone in that. I also had to find a midwife because I knew my providers were not going to be supportive of VBAC after two. I actually had a hard time finding a midwife which was also annoying because I was met with some medwives who were just really going to stick to that 18 months. 18:44 Finding a supportive home birth midwifeThen I happened to just find a woman who was like, “I’ve never done this before. You are my first VBAC after two,” but she was a midwife who was very knowledgeable. She had done lots of home births. She had done VBACs, but not after two. She was like, “If we don’t start accepting these patients, how are we ever going to change the status quo? How are we ever going to make a change?” Meagan: Boom.Macy: Right. Meagan: It’s so true though. Macy: I was like, “Okay. Statistic me, please. I would love to be a statistic for the positive.” The only thing was I was like, “I can’t be one for a hospital birth, but it’s fine.” Meagan: That’s okay. That’s okay. Macy: So I found Sarah. I started my visits with her. I had to travel an hour to my visits. It wasn’t the worst thing ever. Meagan: That’s a commitment though. That’s a commitment. Macy: Towards the end, she came to me a lot more which was so nice. So nice. Meagan: That’s really nice. Macy: Then we did a couple of phone calls, but we also texted all of the time and would FaceTime. It was just so personal. I also received co-care with another third local provider. I did that because my midwife wanted to have me get ultrasounds to check my uterus. She wanted to check for previa and we wanted to check for– what’s the other one? I’m blanking. Meagan: Accreta? Macy: Yes, so she just wanted to be aware. Meagan: Placental issues and make sure the placenta is out of the way and all is doing okay. You’re actually clear to have a VBAC. Macy: Yeah. Meagan: Which is very responsible of her. Macy: I received my co-care. I would go in there. I don’t know. I almost had a chip on my shoulder because I was like, “I don’t really need you guys,” kind of. I didn’t leave those appointments feeling like I wanted to cry like I did with my second pregnancy because I knew that I had something better planned. So it wasn’t as upsetting, but they were pretty rough on me. I had expressed my interest in a VBAC after two and you have to see the series of providers within the office. I had only one who was a little bit younger which was interesting, but he was the only one who was like, “Yeah. I really support this and the birth you want to have. I’m going to give you a referral to UC San Francisco and when we get to the end, I want you to start care there and plan to have your birth there.” He was the only one who was like, “I support the birth you want to have.” Everyone else was pretty awful. They told me, “If you TOLAC and your uterus ruptures, you will die and your baby will die.” I was like, I will never forget getting in my car and texting my midwife and being like, “Can you believe that he just said this to me?” I was just like, “Are you God? Do you know?” How could you say that to someone? “You will die.” Because that’s not the case at all. That was interesting but I knew. Like I said, I knew I had a backup plan in the back of my mind. It was just eye-opening for me more than anything. It wasn’t upsetting. Meagan: Someone that doesn’t necessarily know the evidence of that, it can be terrifying. Macy: Yeah. Yes, totally. And you know what? It’s frustrating because a lot of people just trust their providers. I’m a very skeptical person. I’m very conspiratorial, so I’m always researching things and looking into things, but people who are not prone to that are just going to trust what the doctor says because they went to school and they are smarter than them. It’s so unfortunate that it’s causing a high C-section rate for no reason. 23:24 VBA2C prep during pregnancyMacy: That was a bummer but anyway, throughout my pregnancy, I did all of the things. I did my VBAC Link course. I loved it. It was great to have that. I did a Lamaze class which was really fun. It was funny because we were the only parents in there with other kids. One other lady was a VBAC, but the rest were all first-time parents. They were like, “What are you doing here?” I’m like, “This is new for me.” Again, shoutout to Modesto Birth and Beyond. They are fantastic. They have a great set of doulas. I’m now on a friendly basis with them. They were great to have and they were really supportive of my whole journey. Let’s see what else. I did a Hypnobirthing class. I read Ina May’s Guide to Childbirth. I mean, I walked and I stayed in shape. I kept doing CrossFit. I did CrossFit for all three of my pregnancies so I kept on. I ate healthy. I drank lots of water. I did all of the things. But I knew that when it came down to it, my mind was going to either make or break me.Fast forward to 41 weeks and I was getting very, very anxious. Meagan: Were you getting anxious because you were getting ready to have a baby type thing or were people giving you some grief that you were over 40 weeks? Macy: By the time I was 40-41 weeks, the grief and the doubt and the naysayers that I got were kind of gone. Most of the people in my life were supportive. I always got that question of, “What if this happens?” I live 5 minutes from the hospital, so I was not too worried about it. I was more anxious of, I was ready to meet this baby. I was the biggest I’d ever been. Third baby, only 17 months apart. My belly was huge. It was hot. I was swelling. I was ready to be done, but I also had never labored before. I had no clue what my body was going to do. Was I just going to go into spontaneous labor at 40 weeks? At 39? I had no idea. So every day that passes, I’m sure you remember that too, every day was a whole week where you wake up in the morning and I would just cry, “I can’t believe I’m still pregnant.” Meagan: I remember going to bed and I was like, “Tonight could be the night,” and then I’d wake up and I was like, “It wasn’t the night,” then that night, I’d be like, “Maybe tonight,” and it just kept happening. Macy: So annoying. I had so much prodromal labor. I had contractions. I could time them and I was like, “Oh, they are 20 minutes apart. They are for sure going to get closer,” then I’d go to sleep, wake up, and be like, “Okay. Here we go again.” Let’s see. So on a Monday, I did acupuncture. Then on a Wednesday morning, I was 41 weeks and I went and got a massage. I got some acupressure. You never know if these are the things that really get things going, but sometimes they do. I got a massage and she gave me some moxibustion so I did that. You light it and do it around– my mom was like, “This is so hokey.” I’m like, “If it works, who cares?” I was trying everything. But I didn’t want to be induced and I hadn’t had my membranes swept yet. That was going to be the first intervention that my midwife and I agreed on because she was like, “Legally in California, you can’t go past 42 weeks and have a home birth.” I was like, “Okay. I’ve got one week. One week and this baby will be here.” 27:46 Labor beginsMacy: That Wednesday morning, I went and got my massage and by 2:00 in the afternoon, I was like, “Okay. Things are starting to pick up.” I started having pretty intense contractions. I was having to– I could still talk. I was still taking care of my two little girls, but I was starting to feel really uncomfortable. My mom went home, then she came back. My husband gets off work at 3:30 and it was 2:30. I was feeding my youngest one a snack and he was like, “Do you want me to come home early?” I was like, “No, I can totally make it until you get home.” I had a contraction where I leaned over my kitchen counter, and then I was like, “Okay. Maybe just come home now.” He came home. I just didn’t feel it. I was starting to feel irritated by my kids and I was like, “I just want to go in my room and watch a show on my laptop. I just want to be alone.” I didn’t necessarily want them to leave yet, but I wanted to be alone and I wanted to know that they were taken care of. He came home and he was taking care of them. He was like, “Do you think this is it? Let’s call my mom.” I was like, “Yeah. I think this is happening and I think it’s going to be soon.” I just didn’t know how long I was going to labor. It was a mystery. My mother-in-law came and picked up my little two daughters. That was kind of sad watching them leave knowing the next time I saw them, we were going to be a different family– a better family, but a different family. Yeah. I just labored at home. It was so nice not having to go anywhere. I took a shower. I had some snacks. I wasn’t super hungry, but I definitely started drinking my electrolytes and started preparing to be hydrated. Meagan: Smart. Macy: I was like, “I’m preparing to run a marathon so I need to gear up.” I didn’t nap. I’ve never been a great napper, but I laid around and watched some shows, then I didn’t text my midwife right away because I had been bugging her so much with all of my prodromal labor that I was like, “I’m not going to text her until it’s really happening.” But by 6:00 or 7:00 PM, i texted her and was like, “Just so you know, my contractions are about 10 minutes apart.” As they got closer, she was like, “Okay. I’m going to come now.” Once the sun started setting, it was getting a little bit more intense. We set up my birth space at home. I set up my pool. Well, I didn’t. My husband set up the pool and we laid out all of the sheets on the couch and hung my birth affirmations. Actually, they had been hanging. My birth affirmations had been hanging for a couple of weeks so I started having them memorized, but we turned on the twinkle lights and I started listening to the Christian HypnoBirthing app which was fantastic. I just had such a peaceful labor. I don’t know how else to describe it. My mom came in and then my sister-in-law came over then my other sister-in-law came over. They just talked around me. I could hear them, but I was just in my space. I labored and my water never broke for a very long time. I got in the pool at one point and then I got back out because my husband was like, “I think that being in the pool is slowing down your contractions a little bit. I want you to get out and walk.” I got out and started walking down the hall then I got really sick with a contraction. I happened to already be laboring backwards on the toilet and I was like, “Oh my gosh. I’m going to throw up.” I jumped back off the toilet so I could throw up in it then my midwife was like, “Okay. You’re in transition now. You’ve got to be.” I hadn’t had any checks at all this whole time either too so I had no clue what I was even dilated at. I was just completely trying to trust my body and just know that when it was time, it would be time. It really was. My body just did what it knew to do. 32:42 Breaking her own water and pushing for 17 minutesMacy: Like I said earlier, I felt her move into position. I got back in the water and I felt so relaxed in the water. I was drifting off in between contractions. Meagan: Oh, that’s awesome. Macy: It was so calm and I just kept telling myself, “Breathe her down with every contraction,” and just all of the things I had been practicing, I was finally able to put into use. That was really cool, then I had a couple of urges where I was like, “I feel like I can start pushing soon.” I was like, “Do you want to check me now?” As soon as she stuck her finger, I was like, “Oh, no. No. Get your finger out. It’s time. She’s coming.” She was like, “Yeah. She’s ready. She’s right there, but your waters haven’t broken yet.” I was like, “Can I break them myself?” She was like, “Yeah,” so I reached in. I gave it a pinch-twist and in the water, I broke it. Meagan: Oh my gosh, that’s so cool. Macy: I felt the padding around her head, then I just felt her head. I felt her hair. I started pushing when it was time to push and I pushed for 17 minutes. It was perfect. Like I said, I felt her move and get into position. She came out and she was 9 pounds, 12 ounces so she was 3 pounds– Meagan: I was going to say 6lb,15oz, right, was your second and close to your first?Macy: 3 pounds heavier than my other two. She came out. She did perfectly. Her heart rate was perfect the whole time. She came out mad, screaming mad. She was so cozy in there. She did not want to come out. She came out but hearing her cry within 20 seconds was so reassuring. She was safe. I didn’t need anybody. I just needed to trust my body and to trust the Lord. My midwife was like, “That was one of the most perfect births I have ever attended.” She was beaming with joy and she was so excited for me. She was just so happy because she was like, “I’ve never done this after two.” She was like, “You changed everything I thought I knew about home birth, about after two C-sections.” She even now has another client which is great who is a VBA2C. I cannot wait for this podcast to come out so I can share it with my midwife and she can share it with her new client. Hopefully, they have a really great birth too. All in all, it was just everything I dreamed of. I was so thankful and I just remember laying there with her on my chest. I was watching the video last night trying to get in the mindset and remind myself and get there. On the video, I can hear myself go, “I’m so freaking proud of myself.” Meagan: You should be!Macy: I was beaming with joy. I was like, “That was so hard but so worth it.” So it was great. It was a great experience. I could not be more happy with her birth. She’s a great baby. She’s so happy. She was a little hard at first for 10 weeks which was different for me, but after that 10-week hump, she was a really good baby. Her name is Lucille. Meagan: Cute. Macy: We call her Lucy which means “light” and she is the light of our lives. She is the best and I can’t even believe we had a family without her for a minute there. But that’s my story. 36:47 ACOG’s statement on VBA2CMeagan: Oh my gosh. It is so beautiful. It is so peaceful. It sounds like one of those births where you really do. You close your eyes and you just envision birth and how peaceful and beautiful and calm it really can be. To me, you just described the birth that you physically did with one that I would imagine. Macy: Yes. It’s how it felt. My sisters-in-law and my other girlfriend who was there taking pictures just kept saying, “You did so good.” I was just like, “I don’t know what that means.” But everyone was proud of how it all went. I think that’s so super revolutionary. I hope my story touches other people’s lives. Meagan: It totally will. I’m so happy that you found your midwife and that your midwife was willing to take you on because a lot of the time, providers can be nervous if they have never done it before. Macy: Which I get. Meagan: Oh yeah. For sure, for sure. I’m just so glad that she was willing. That’s one of the things that gets me sometimes with so many people who just are not, we have to respect them and what they are comfortable with. But really, the evidence does show that VBAC after two Cesareans is reasonable. The overall risk and rate of rupture is approximately 1.4% so it’s still very low. It’s still very, very low. I mean, ACOG themselves, the American College of Obstetricians and Gynecologists, they suggest it. They say it’s a completely reasonable option so for so many people to be cut off after one is heartbreaking because there are so many people who could have a vaginal birth all over the world but aren’t given the option. We have a high Cesarean rate. We have so many. There are so many people. Just actually weirdly enough at the gym, a man who is the darndest cutest thing ever, his name is Robin and he will always say hi to me and check in on me and how I’m doing. He knows that I cycle and one of the things he asked the other day was, “How’s that doula thing coming?” I said, “It’s really great.” He said, “I never asked you. What made you want to become a doula?” I just told him my story and he said, “Oh, so you had two C-sections?” His eyes were wide. He said, “But you said you have three kids.” I said, “Yeah.” He goes, “But you only had two C-sections?” I said, “Yeah.” I said, “With my first two girls.” He was like, “Wait.” He literally was stumped there for a minute. Macy: Yeah, people don’t know. Meagan: He said, “You had a normal birth after two C-sections?” I said, “Yes.” I said, “Robin, I had a vaginal birth after two Cesareans.” He looked at me because I said the word vaginal. I said, “That’s what it is.” He said, “I didn’t even know that was a thing.” People just don’t. They just don’t know that and then there are still so many providers all over the world who aren’t supporting it. In the ACOG Practice Bulletin, it says that VBA2C, vaginal birth after two Cesarean, is reasonable to consider for women with two previous low-transverse Cesarean deliveries to be candidates for TOLAC. We mentioned the word TOLAC earlier, a trial of labor after Cesarean. A lot of providers use that. It is a medical turn. We call it VBAC. They call it TOLAC. It’s not a VBAC to them until the baby has passed through the vagina. It says that they are candidates for TOLAC and “to counsel them based on the combination of other factors that affect their probability of achieving a VBAC.” Meagan: Now, just a couple of things to share before we drop off on this episode, if you had a Cesarean before or two Cesareans, it is not necessarily a reason for you to have a third. If you have gestational diabetes, that doesn’t mean that you can’t VBAC either. I’m trying to talk up these other factors, right? If we have preeclampsia, that doesn’t always necessarily mean that we have to schedule a Cesarean. We’ve shared stories in the past. We’ve even had things like babies with medical conditions where still even their provider said, “Just because your baby has this doesn’t mean you can’t have a VBAC.” That doesn’t always necessarily mean you can’t either. If you have a big baby, here we are. A nine-pound baby, right? A nice, squishy little baby. Big baby doesn’t mean you can’t either. A diagnosis of a small pelvis shouldn’t be considered– these factors really are more extreme I feel like so if your provider is giving you some of these, “Oh, well you could have a VBAC after two Cesareans but because your baby didn’t come down the last two times, it’s just probably not going to happen.” You can’t see it. Macy rolls her eyes with me. Macy: The baby is going to come out. It has to come out. Meagan: Baby is going to come out. Believe in yourself. Do the research. We do have a VBAC after two Cesarean blog. We’ll make sure to link it here and kind of spin back to what you said about how you were like, “Let me be a statistic. Let me a statistic to your midwife.” VBA3C– we don’t have a lot of stats on VBA3C and I think a lot of it is because we are not doing them. We are not allowing them yet we have so many VBA3C moms in our community who share or on our podcast who show that it still is possible. I feel like there needs to be more risk assessment there and studies need to be done there. So know that even if you’ve had three Cesareans, that still doesn’t mean that you are eliminated from the chance to go for what you want, fight for what you want, and have that experience not only that you want but that you deserve. Macy: For sure. Meagan: Yes. Thank you so much for sharing your story and I cannot wait for this to be published for you to send this to your midwife so she can send it on to the next Woman of Strength. Macy: Thank you so much for having me. I have loved being here and talking with you. I hope there are so many lives touched and changed by sharing my story.ClosingWould you like to be a guest on the podcast? Tell us about your experience at thevbaclink.com/share. For more information on all things VBAC including online and in-person VBAC classes, The VBAC Link blog, and Meagan’s bio, head over to thevbaclink.com. Congratulations on starting your journey of learning and discovery with The VBAC Link.Support this podcast at — https://redcircle.com/the-vbac-link/donationsAdvertising Inquiries: https://redcircle.com/brands</span></div></div></div><img class="kjxUv_MHNgEH5IARHdA0" src="https://lite-images-i.scdn.co/image/ab67656300005f1f77962fbcdb8b9ff677543371" alt="Podcast Episode" loading="lazy"/><a href="/show/36bVxqOGd1EYcR0oJteF5n"><button class="Button-sc-1dqy6lx-0 hRqQQR encore-text-body-medium-bold" data-encore-id="buttonTertiary">See all episodes<span aria-hidden="true" class="IconWrapper__Wrapper-sc-16usrgb-0 kUVYXR"><svg data-encore-id="icon" role="img" aria-hidden="true" viewBox="0 0 24 24" class="Svg-sc-ytk21e-0 zsGU"><path d='M8.043 2.793a1 1 0 0 0 0 1.414L15.836 12l-7.793 7.793a1 1 0 1 0 1.414 1.414L18.664 12 9.457 2.793a1 1 0 0 0-1.414 0z'/></svg></span></button></a><div data-testid="internal-link-recommender-shelf"><div class="JMgUTIyId0RuU9k6aQaz"><h2 class="encore-text encore-text-title-small" data-encore-id="text" dir="auto">More episodes like this</h2></div><div class="qirFczpKFgQDsNuuzLHP" data-testid="carousel-mwp"><div class="Box__BoxComponent-sc-y4nds-0 wLcyr Box-sc-1njtxi4-0 hscyXl" data-encore-id="card" role="group" aria-labelledby="card-title-63Rr4MOoQVX2p6AQ0WcbOv"><div class="CardLink-sc-1ut6cns-0 DjiIj"></div><div style="display:none" id="onClickHint63Rr4MOoQVX2p6AQ0WcbOv"></div><a draggable="false" href="/episode/63Rr4MOoQVX2p6AQ0WcbOv"><img alt="" style="min-inline-size:152px" data-encore-id="image" src="https://i.scdn.co/image/ab67656300005f1f9bad3dd450c531d306e55b2c" class="Image-sc-1u215sg-3 kOChlU"/></a><div class="Areas__InteractiveArea-sc-1tea2mc-0 Areas__MainArea-sc-1tea2mc-1 MWEhk kLALqL"><div class="Areas__InteractiveArea-sc-1tea2mc-0 Areas__Column-sc-1tea2mc-2 MWEhk cuoMqc"><a draggable="false" href="/episode/63Rr4MOoQVX2p6AQ0WcbOv"><p class="encore-text encore-text-body-medium ListRowTitle__ListRowText-sc-1xe2if1-1 eFGzcP" data-encore-id="listRowTitle"><span class="ListRowTitle__LineClamp-sc-1xe2if1-0 lmgIvZ">Episode 293 Heidi&#x27;s VBAC + Gestational Diabetes, GBS &amp; Advanced Maternal Age</span></p></a></div></div></div><div class="Box__BoxComponent-sc-y4nds-0 wLcyr Box-sc-1njtxi4-0 hscyXl" data-encore-id="card" role="group" aria-labelledby="card-title-3eMn3uF2V5ERjjzhh3sLXY"><div class="CardLink-sc-1ut6cns-0 DjiIj"></div><div style="display:none" id="onClickHint3eMn3uF2V5ERjjzhh3sLXY"></div><a draggable="false" href="/episode/3eMn3uF2V5ERjjzhh3sLXY"><img alt="" style="min-inline-size:152px" data-encore-id="image" src="https://i.scdn.co/image/ab67656300005f1fbb5f76ba432dfc303f37f806" class="Image-sc-1u215sg-3 kOChlU"/></a><div class="Areas__InteractiveArea-sc-1tea2mc-0 Areas__MainArea-sc-1tea2mc-1 MWEhk kLALqL"><div class="Areas__InteractiveArea-sc-1tea2mc-0 Areas__Column-sc-1tea2mc-2 MWEhk cuoMqc"><a draggable="false" href="/episode/3eMn3uF2V5ERjjzhh3sLXY"><p class="encore-text encore-text-body-medium ListRowTitle__ListRowText-sc-1xe2if1-1 eFGzcP" data-encore-id="listRowTitle"><span class="ListRowTitle__LineClamp-sc-1xe2if1-0 lmgIvZ">10 Ashley&#x27;s VBAC + VBAC Induction Facts</span></p></a></div></div></div><div class="Box__BoxComponent-sc-y4nds-0 wLcyr Box-sc-1njtxi4-0 hscyXl" data-encore-id="card" role="group" aria-labelledby="card-title-4bERpLxEezDZbeoVZFOYWs"><div class="CardLink-sc-1ut6cns-0 DjiIj"></div><div style="display:none" id="onClickHint4bERpLxEezDZbeoVZFOYWs"></div><a draggable="false" href="/episode/4bERpLxEezDZbeoVZFOYWs"><img alt="" style="min-inline-size:152px" data-encore-id="image" src="https://i.scdn.co/image/ab67656300005f1f451e7a1e11274f387074a6bc" class="Image-sc-1u215sg-3 kOChlU"/></a><div class="Areas__InteractiveArea-sc-1tea2mc-0 Areas__MainArea-sc-1tea2mc-1 MWEhk kLALqL"><div class="Areas__InteractiveArea-sc-1tea2mc-0 Areas__Column-sc-1tea2mc-2 MWEhk cuoMqc"><a draggable="false" href="/episode/4bERpLxEezDZbeoVZFOYWs"><p class="encore-text encore-text-body-medium ListRowTitle__ListRowText-sc-1xe2if1-1 eFGzcP" data-encore-id="listRowTitle"><span class="ListRowTitle__LineClamp-sc-1xe2if1-0 lmgIvZ">Episode 308 Shannon&#x27;s VBA3C + Doubt From Her Delivery Team</span></p></a></div></div></div><div class="Box__BoxComponent-sc-y4nds-0 wLcyr Box-sc-1njtxi4-0 hscyXl" data-encore-id="card" role="group" aria-labelledby="card-title-6Qr3zE6Cg74dQyY7sCsFtV"><div class="CardLink-sc-1ut6cns-0 DjiIj"></div><div style="display:none" id="onClickHint6Qr3zE6Cg74dQyY7sCsFtV"></div><a draggable="false" href="/episode/6Qr3zE6Cg74dQyY7sCsFtV"><img alt="" style="min-inline-size:152px" data-encore-id="image" src="https://i.scdn.co/image/ab67656300005f1ffb3ee95e010024469e95893b" class="Image-sc-1u215sg-3 kOChlU"/></a><div class="Areas__InteractiveArea-sc-1tea2mc-0 Areas__MainArea-sc-1tea2mc-1 MWEhk kLALqL"><div class="Areas__InteractiveArea-sc-1tea2mc-0 Areas__Column-sc-1tea2mc-2 MWEhk cuoMqc"><a draggable="false" href="/episode/6Qr3zE6Cg74dQyY7sCsFtV"><p class="encore-text encore-text-body-medium ListRowTitle__ListRowText-sc-1xe2if1-1 eFGzcP" data-encore-id="listRowTitle"><span class="ListRowTitle__LineClamp-sc-1xe2if1-0 lmgIvZ">Episode 295 Dr. Kendra&#x27;s Empowering HBAC + Tips From a VBAC Doula</span></p></a></div></div></div><div class="Box__BoxComponent-sc-y4nds-0 wLcyr Box-sc-1njtxi4-0 hscyXl" data-encore-id="card" role="group" aria-labelledby="card-title-2GrlAfMHfr67El9R7yUqTK"><div class="CardLink-sc-1ut6cns-0 DjiIj"></div><div style="display:none" id="onClickHint2GrlAfMHfr67El9R7yUqTK"></div><a draggable="false" href="/episode/2GrlAfMHfr67El9R7yUqTK"><img alt="" style="min-inline-size:152px" data-encore-id="image" src="https://i.scdn.co/image/ab67656300005f1fdf35af8e0d80b71388f7a642" class="Image-sc-1u215sg-3 kOChlU"/></a><div class="Areas__InteractiveArea-sc-1tea2mc-0 Areas__MainArea-sc-1tea2mc-1 MWEhk kLALqL"><div class="Areas__InteractiveArea-sc-1tea2mc-0 Areas__Column-sc-1tea2mc-2 MWEhk cuoMqc"><a draggable="false" href="/episode/2GrlAfMHfr67El9R7yUqTK"><p class="encore-text encore-text-body-medium ListRowTitle__ListRowText-sc-1xe2if1-1 eFGzcP" data-encore-id="listRowTitle"><span class="ListRowTitle__LineClamp-sc-1xe2if1-0 lmgIvZ">Episode 290 Hayley&#x27;s Unmedicated VBAC + Epidural and Prolapse Talk</span></p></a></div></div></div><div class="Box__BoxComponent-sc-y4nds-0 wLcyr Box-sc-1njtxi4-0 hscyXl" data-encore-id="card" role="group" aria-labelledby="card-title-6xwnYWVoGLINyw49FJ8I98"><div class="CardLink-sc-1ut6cns-0 DjiIj"></div><div style="display:none" id="onClickHint6xwnYWVoGLINyw49FJ8I98"></div><a draggable="false" href="/episode/6xwnYWVoGLINyw49FJ8I98"><img alt="" style="min-inline-size:152px" data-encore-id="image" src="https://i.scdn.co/image/ab67656300005f1f7aa316a3cf6da12db3017bc5" class="Image-sc-1u215sg-3 kOChlU"/></a><div class="Areas__InteractiveArea-sc-1tea2mc-0 Areas__MainArea-sc-1tea2mc-1 MWEhk kLALqL"><div class="Areas__InteractiveArea-sc-1tea2mc-0 Areas__Column-sc-1tea2mc-2 MWEhk cuoMqc"><a draggable="false" href="/episode/6xwnYWVoGLINyw49FJ8I98"><p class="encore-text encore-text-body-medium ListRowTitle__ListRowText-sc-1xe2if1-1 eFGzcP" data-encore-id="listRowTitle"><span class="ListRowTitle__LineClamp-sc-1xe2if1-0 lmgIvZ">Episode 285 Selah&#x27;s 48-hour VBA2C + Changing Providers in Late Pregnancy</span></p></a></div></div></div></div></div></div></div><div class="iQxdxLc2HsEnJMZt0Us4"><hr class="HorizontalRule__HorizontalRuleElement-sc-198gjx4-0 gPhSUm bHqWsu7YPnOhoFVoWo1o" data-encore-id="horizontalRule"/></div></div><!--/$--></div><div class="LQ6Ss79CdgHw2ScSPflQ"></div></div></div></div><aside class="encore-dark-theme Yg_FlRTSnjxmfwyAvnFJ"><div></div></aside></div></div><script id="initial-state" type="text/plain">eyJzZXNzaW9uIjp7Im1lIjpudWxsLCJwcm9kdWN0Ijp7ImNvdW50cnkiOiJTRyIsImNhdGFsb2d1ZSI6InByZW1pdW0iLCJwcm9kdWN0IjoiUFJFTUlVTSIsIm9uLWRlbWFuZCI6IjEifSwibG9jYWxlIjoiZW4iLCJ0ZXh0RGlyZWN0aW9uYWxpdHkiOiJsdHIiLCJpc0Fub255bW91cyI6dHJ1ZSwiZmVhdHVyZXMiOnsiZW5hYmxlU2hvd3MiOnRydWUsImlzVHJhY2luZ0VuYWJsZWQiOmZhbHNlLCJ1cGdyYWRlQnV0dG9uIjoiY29udHJvbCIsIm13cCI6dHJ1ZSwiaXNNV1BFcnJvckNvZGVFbmFibGVkIjpmYWxzZSwiaXNNd3BSYWRpb0VudGl0eSI6dHJ1ZSwiaXNNV1BBbmRQbGF5YmFja0NhcGFibGUiOmZhbHNlLCJwcmVhdXRoUmVjYXB0Y2hhIjpmYWxzZSwiaXNFcXVhbGl6ZXJBQkVuYWJsZWQiOmZhbHNlLCJpc1BvZGNhc3RFbmFibGVkIjp0cnVlLCJlbmFibGVJMThuTG9jYWxlcyI6dHJ1ZSwiaXNJMThuQWRkaXRpb25hbFBhZ2VzRW5hYmxlZCI6ZmFsc2UsImlzSW50ZXJhY3Rpb25Mb2dnZXJFbmFibGVkIjp0cnVlLCJpc1JlaW52ZW50RnJlZUVuYWJsZWQiOmZhbHNlLCJpc0VudGl0eVJlcG9ydEVuYWJsZWQiOnRydWUsImlzQWxidW1SZXBvcnRFbmFibGVkIjpmYWxzZSwiaXNUcmFja1JlcG9ydEVuYWJsZWQiOmZhbHNlLCJpc1BvZGNhc3RTaG93UmVwb3J0RW5hYmxlZCI6ZmFsc2UsImlzUG9kY2FzdEVwaXNvZGVSZXBvcnRFbmFibGVkIjpmYWxzZX0sImNvdW50cnkiOiJTRyIsImJyb3dzZXJPUyI6ImFuZHJvaWQiLCJjYW5Hb0JhY2siOmZhbHNlLCJjYW5Hb0ZvcndhcmQiOmZhbHNlfSwiY29ubmVjdCI6eyJkZXZpY2UiOm51bGwsImRldmljZXMiOltdLCJtYW51YWxUcmFuc2ZlckRldmljZUlkIjpudWxsfSwiZW50aXRpZXMiOnsiaXRlbXMiOnsic3BvdGlmeTplcGlzb2RlOjdzQTdhOUJNZGU1SzlScFJhZUhDaWoiOnsiX190eXBlbmFtZSI6IkVwaXNvZGUiLCJhdWRpbyI6eyJpdGVtcyI6W3siZmlsZUlkIjoiZGVhZTYzM2I1NTE5YTAyNzEzZDI5NGE0YjE4MTQ2MjY2Mzk3Y2EyZCIsImZvcm1hdCI6Ik1QNF8xMjgiLCJ1cmwiOiJodHRwczovL3Auc2Nkbi5jby9tcDMtcHJldmlldy9kZWFlNjMzYjU1MTlhMDI3MTNkMjk0YTRiMTgxNDYyNjYzOTdjYTJkIn0seyJmaWxlSWQiOiIyOGZiNzg5MDY1MzM1Zjk5YzM5YmFmN2E2ZGI3ZTgwYTBmODc4YjlhIiwiZm9ybWF0IjoiTVA0XzEyOF9DQkNTIiwidXJsIjoiaHR0cHM6Ly9wLnNjZG4uY28vbXAzLXByZXZpZXcvMjhmYjc4OTA2NTMzNWY5OWMzOWJhZjdhNmRiN2U4MGEwZjg3OGI5YSJ9LHsiZmlsZUlkIjoiZWY0ZTE3ZjQyNDU3ZDc1OTJkMGRiMWRiYWIxMWI5NTZhZGJmOGJkYyIsImZvcm1hdCI6Ik1QNF8xMjhfRFVBTCIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3L2VmNGUxN2Y0MjQ1N2Q3NTkyZDBkYjFkYmFiMTFiOTU2YWRiZjhiZGMifSx7ImZpbGVJZCI6IjcwNmE1MjAyNmQxZDg5YjdjNTU4MzAwZTlkZTNhNmViYmMwYjkxYmUiLCJmb3JtYXQiOiJPR0dfVk9SQklTXzk2IiwidXJsIjoiaHR0cHM6Ly9wLnNjZG4uY28vbXAzLXByZXZpZXcvNzA2YTUyMDI2ZDFkODliN2M1NTgzMDBlOWRlM2E2ZWJiYzBiOTFiZSJ9LHsiZmlsZUlkIjoiNzAzYTA1MTgxODAzNjBjMGJlNDliMzdmYjA3ZDUxOGI5Zjg5ZjczZiIsImZvcm1hdCI6IkFBQ18yNCIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3LzcwM2EwNTE4MTgwMzYwYzBiZTQ5YjM3ZmIwN2Q1MThiOWY4OWY3M2YifV19LCJhdWRpb1ByZXZpZXciOnsiZm9ybWF0IjoiTVAzXzk2IiwidXJsIjoiaHR0cHM6Ly9wb2R6LWNvbnRlbnQuc3BvdGlmeWNkbi5jb20vYXVkaW8vY2xpcHMvMEtjUFdYMmZxN29uUGswYVZ5QWZqVS9jbGlwXzI5Nzk5MV8zNTc5OTEubXAzIn0sImF2YWlsYWJsZU1hcmtldHMiOnsiaXRlbXMiOlt7ImNvdW50cnlDb2RlIjoiQUQifSx7ImNvdW50cnlDb2RlIjoiQUUifSx7ImNvdW50cnlDb2RlIjoiQUcifSx7ImNvdW50cnlDb2RlIjoiQUwifSx7ImNvdW50cnlDb2RlIjoiQU0ifSx7ImNvdW50cnlDb2RlIjoiQU8ifSx7ImNvdW50cnlDb2RlIjoiQVIifSx7ImNvdW50cnlDb2RlIjoiQVQifSx7ImNvdW50cnlDb2RlIjoiQVUifSx7ImNvdW50cnlDb2RlIjoiQVoifSx7ImNvdW50cnlDb2RlIjoiQkEifSx7ImNvdW50cnlDb2RlIjoiQkIifSx7ImNvdW50cnlDb2RlIjoiQkUifSx7ImNvdW50cnlDb2RlIjoiQkYifSx7ImNvdW50cnlDb2RlIjoiQkcifSx7ImNvdW50cnlDb2RlIjoiQkgifSx7ImNvdW50cnlDb2RlIjoiQkkifSx7ImNvdW50cnlDb2RlIjoiQkoifSx7ImNvdW50cnlDb2RlIjoiQk4ifSx7ImNvdW50cnlDb2RlIjoiQk8ifSx7ImNvdW50cnlDb2RlIjoiQlIifSx7ImNvdW50cnlDb2RlIjoiQlMifSx7ImNvdW50cnlDb2RlIjoiQlQifSx7ImNvdW50cnlDb2RlIjoiQlcifSx7ImNvdW50cnlDb2RlIjoiQloifSx7ImNvdW50cnlDb2RlIjoiQ0EifSx7ImNvdW50cnlDb2RlIjoiQ0gifSx7ImNvdW50cnlDb2RlIjoiQ0kifSx7ImNvdW50cnlDb2RlIjoiQ0wifSx7ImNvdW50cnlDb2RlIjoiQ00ifSx7ImNvdW50cnlDb2RlIjoiQ08ifSx7ImNvdW50cnlDb2RlIjoiQ1IifSx7ImNvdW50cnlDb2RlIjoiQ1YifSx7ImNvdW50cnlDb2RlIjoiQ1cifSx7ImNvdW50cnlDb2RlIjoiQ1kifSx7ImNvdW50cnlDb2RlIjoiQ1oifSx7ImNvdW50cnlDb2RlIjoiREUifSx7ImNvdW50cnlDb2RlIjoiREoifSx7ImNvdW50cnlDb2RlIjoiREsifSx7ImNvdW50cnlDb2RlIjoiRE0ifSx7ImNvdW50cnlDb2RlIjoiRE8ifSx7ImNvdW50cnlDb2RlIjoiRFoifSx7ImNvdW50cnlDb2RlIjoiRUMifSx7ImNvdW50cnlDb2RlIjoiRUUifSx7ImNvdW50cnlDb2RlIjoiRUcifSx7ImNvdW50cnlDb2RlIjoiRVMifSx7ImNvdW50cnlDb2RlIjoiRkkifSx7ImNvdW50cnlDb2RlIjoiRkoifSx7ImNvdW50cnlDb2RlIjoiRk0ifSx7ImNvdW50cnlDb2RlIjoiRlIifSx7ImNvdW50cnlDb2RlIjoiR0EifSx7ImNvdW50cnlDb2RlIjoiR0IifSx7ImNvdW50cnlDb2RlIjoiR0QifSx7ImNvdW50cnlDb2RlIjoiR0UifSx7ImNvdW50cnlDb2RlIjoiR0gifSx7ImNvdW50cnlDb2RlIjoiR00ifSx7ImNvdW50cnlDb2RlIjoiR04ifSx7ImNvdW50cnlDb2RlIjoiR1EifSx7ImNvdW50cnlDb2RlIjoiR1IifSx7ImNvdW50cnlDb2RlIjoiR1QifSx7ImNvdW50cnlDb2RlIjoiR1cifSx7ImNvdW50cnlDb2RlIjoiR1kifSx7ImNvdW50cnlDb2RlIjoiSEsifSx7ImNvdW50cnlDb2RlIjoiSE4ifSx7ImNvdW50cnlDb2RlIjoiSFIifSx7ImNvdW50cnlDb2RlIjoiSFQifSx7ImNvdW50cnlDb2RlIjoiSFUifSx7ImNvdW50cnlDb2RlIjoiSUQifSx7ImNvdW50cnlDb2RlIjoiSUUifSx7ImNvdW50cnlDb2RlIjoiSUwifSx7ImNvdW50cnlDb2RlIjoiSU4ifSx7ImNvdW50cnlDb2RlIjoiSVMifSx7ImNvdW50cnlDb2RlIjoiSVQifSx7ImNvdW50cnlDb2RlIjoiSk0ifSx7ImNvdW50cnlDb2RlIjoiSk8ifSx7ImNvdW50cnlDb2RlIjoiSlAifSx7ImNvdW50cnlDb2RlIjoiS0UifSx7ImNvdW50cnlDb2RlIjoiS0gifSx7ImNvdW50cnlDb2RlIjoiS0kifSx7ImNvdW50cnlDb2RlIjoiS00ifSx7ImNvdW50cnlDb2RlIjoiS04ifSx7ImNvdW50cnlDb2RlIjoiS1IifSx7ImNvdW50cnlDb2RlIjoiS1cifSx7ImNvdW50cnlDb2RlIjoiTEEifSx7ImNvdW50cnlDb2RlIjoiTEIifSx7ImNvdW50cnlDb2RlIjoiTEMifSx7ImNvdW50cnlDb2RlIjoiTEkifSx7ImNvdW50cnlDb2RlIjoiTFIifSx7ImNvdW50cnlDb2RlIjoiTFMifSx7ImNvdW50cnlDb2RlIjoiTFQifSx7ImNvdW50cnlDb2RlIjoiTFUifSx7ImNvdW50cnlDb2RlIjoiTFYifSx7ImNvdW50cnlDb2RlIjoiTUEifSx7ImNvdW50cnlDb2RlIjoiTUMifSx7ImNvdW50cnlDb2RlIjoiTUUifSx7ImNvdW50cnlDb2RlIjoiTUcifSx7ImNvdW50cnlDb2RlIjoiTUgifSx7ImNvdW50cnlDb2RlIjoiTUsifSx7ImNvdW50cnlDb2RlIjoiTUwifSx7ImNvdW50cnlDb2RlIjoiTU4ifSx7ImNvdW50cnlDb2RlIjoiTU8ifSx7ImNvdW50cnlDb2RlIjoiTVIifSx7ImNvdW50cnlDb2RlIjoiTVQifSx7ImNvdW50cnlDb2RlIjoiTVUifSx7ImNvdW50cnlDb2RlIjoiTVYifSx7ImNvdW50cnlDb2RlIjoiTVcifSx7ImNvdW50cnlDb2RlIjoiTVgifSx7ImNvdW50cnlDb2RlIjoiTVkifSx7ImNvdW50cnlDb2RlIjoiTVoifSx7ImNvdW50cnlDb2RlIjoiTkEifSx7ImNvdW50cnlDb2RlIjoiTkUifSx7ImNvdW50cnlDb2RlIjoiTkcifSx7ImNvdW50cnlDb2RlIjoiTkkifSx7ImNvdW50cnlDb2RlIjoiTkwifSx7ImNvdW50cnlDb2RlIjoiTk8ifSx7ImNvdW50cnlDb2RlIjoiTlAifSx7ImNvdW50cnlDb2RlIjoiTlIifSx7ImNvdW50cnlDb2RlIjoiTloifSx7ImNvdW50cnlDb2RlIjoiT00ifSx7ImNvdW50cnlDb2RlIjoiUEEifSx7ImNvdW50cnlDb2RlIjoiUEUifSx7ImNvdW50cnlDb2RlIjoiUEcifSx7ImNvdW50cnlDb2RlIjoiUEgifSx7ImNvdW50cnlDb2RlIjoiUEwifSx7ImNvdW50cnlDb2RlIjoiUFIifSx7ImNvdW50cnlDb2RlIjoiUFMifSx7ImNvdW50cnlDb2RlIjoiUFQifSx7ImNvdW50cnlDb2RlIjoiUFcifSx7ImNvdW50cnlDb2RlIjoiUFkifSx7ImNvdW50cnlDb2RlIjoiUUEifSx7ImNvdW50cnlDb2RlIjoiUk8ifSx7ImNvdW50cnlDb2RlIjoiUlMifSx7ImNvdW50cnlDb2RlIjoiUlcifSx7ImNvdW50cnlDb2RlIjoiU0EifSx7ImNvdW50cnlDb2RlIjoiU0IifSx7ImNvdW50cnlDb2RlIjoiU0MifSx7ImNvdW50cnlDb2RlIjoiU0UifSx7ImNvdW50cnlDb2RlIjoiU0cifSx7ImNvdW50cnlDb2RlIjoiU0kifSx7ImNvdW50cnlDb2RlIjoiU0sifSx7ImNvdW50cnlDb2RlIjoiU0wifSx7ImNvdW50cnlDb2RlIjoiU00ifSx7ImNvdW50cnlDb2RlIjoiU04ifSx7ImNvdW50cnlDb2RlIjoiU1IifSx7ImNvdW50cnlDb2RlIjoiU1QifSx7ImNvdW50cnlDb2RlIjoiU1YifSx7ImNvdW50cnlDb2RlIjoiU1oifSx7ImNvdW50cnlDb2RlIjoiVEQifSx7ImNvdW50cnlDb2RlIjoiVEcifSx7ImNvdW50cnlDb2RlIjoiVEgifSx7ImNvdW50cnlDb2RlIjoiVEwifSx7ImNvdW50cnlDb2RlIjoiVE4ifSx7ImNvdW50cnlDb2RlIjoiVE8ifSx7ImNvdW50cnlDb2RlIjoiVFIifSx7ImNvdW50cnlDb2RlIjoiVFQifSx7ImNvdW50cnlDb2RlIjoiVFYifSx7ImNvdW50cnlDb2RlIjoiVFcifSx7ImNvdW50cnlDb2RlIjoiVFoifSx7ImNvdW50cnlDb2RlIjoiVUEifSx7ImNvdW50cnlDb2RlIjoiVVMifSx7ImNvdW50cnlDb2RlIjoiVVkifSx7ImNvdW50cnlDb2RlIjoiVVoifSx7ImNvdW50cnlDb2RlIjoiVkMifSx7ImNvdW50cnlDb2RlIjoiVk4ifSx7ImNvdW50cnlDb2RlIjoiVlUifSx7ImNvdW50cnlDb2RlIjoiV1MifSx7ImNvdW50cnlDb2RlIjoiWEsifSx7ImNvdW50cnlDb2RlIjoiWkEifSx7ImNvdW50cnlDb2RlIjoiWk0ifSx7ImNvdW50cnlDb2RlIjoiWlcifV19LCJjb250ZW50SW5mb3JtYXRpb24iOm51bGwsImNvbnRlbnRSYXRpbmciOnsibGFiZWwiOiJOT05FIn0sImNvdmVyQXJ0Ijp7ImV4dHJhY3RlZENvbG9ycyI6eyJjb2xvckxpZ2h0Ijp7ImJsdWUiOjEyNywiZ3JlZW4iOjEyNywiaGV4IjoiIzdGN0Y3RiIsInJlZCI6MTI3fX0sInNvdXJjZXMiOlt7ImhlaWdodCI6NjQsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMGY2OGQ3Nzk2MmZiY2RiOGI5ZmY2Nzc1NDMzNzEiLCJ3aWR0aCI6NjR9LHsiaGVpZ2h0IjozMDAsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMDVmMWY3Nzk2MmZiY2RiOGI5ZmY2Nzc1NDMzNzEiLCJ3aWR0aCI6MzAwfSx7ImhlaWdodCI6NjQwLCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDBiYThhNzc5NjJmYmNkYjhiOWZmNjc3NTQzMzcxIiwid2lkdGgiOjY0MH1dfSwiZGVzY3JpcHRpb24iOiJNYWN54oCZcyBmaXJzdCBiaXJ0aCB3YXMgYSBzY2hlZHVsZWQgQy1zZWN0aW9uIGR1ZSB0byBicmVlY2ggcHJlc2VudGF0aW9uIHRoYXQgcmVxdWlyZWQgZm9sbG93LXVwIGV4cGxvcmF0b3J5IHN1cmdlcnkgZHVlIHRvIGFuIHVua25vd24gY2F1c2Ugb2YgaW50ZXJuYWwgYmxlZWRpbmcuIFVuZm9ydHVuYXRlbHksIGhlciBzdXJnZW9uIGhhZCBhY2NpZGVudGFsbHkgbmlja2VkIGFuIGFiIG11c2NsZS4gTWFjeeKAmXMgcmVjb3Zlcnkgd2FzIHZlcnkgZGlmZmljdWx0LldpdGggaGVyIHNlY29uZCwgZG9jdG9ycyB3ZXJlIG5lcnZvdXMgYWJvdXQgaGVyIGNoYW5jZXMgb2YgVkJBQyBhbmQgd291bGQgb25seSBsZXQgaGVyIHRyeSBpZiBzaGUgc2hvd2VkIHVwIGluIGFjdGl2ZSBsYWJvciBiZWZvcmUgMzkgd2Vla3MuIE90aGVyd2lzZSwgc2hlIHdvdWxkIGdvIGluIGZvciBhIHNjaGVkdWxlZCBDLXNlY3Rpb24uIE1hY3kgYWdyZWVkIGFuZCBoZXIgYmlydGggZW5kZWQgaW4gYW5vdGhlciBDZXNhcmVhbi4gSGVyIGJpcnRoIHdhcyBiZWF1dGlmdWwgYW5kIGhlciByZWNvdmVyeSB3YXMgc21vb3RoLCBidXQgaXQgc3RpbGwgd2FzbuKAmXQgdGhlIGVtcG93ZXJpbmcgZXhwZXJpZW5jZSBzaGUgaG9wZWQgZm9yLsKgTWFjeSBoaXQgdGhlIGdyb3VuZCBydW5uaW5nIGR1cmluZyBoZXIgdGhpcmQgcHJlZ25hbmN5LiBXaGVuIGRvY3RvcnMgd2VyZSBub3Qgc3VwcG9ydGl2ZSBvZiBhIFZCQTJDLCBzaGUga25ldyBob21lIGJpcnRoIHdhcyBoZXIgYmVzdCBvcHRpb24uIFNoZSBmb3VuZCBhIG1pZHdpZmUgd2hvIHdhcyB3aWxsaW5nIHRvIHRha2UgTWFjeSBvbiBhcyBoZXIgZmlyc3QgVkJBMkMgY2xpZW50ISBXZSBrbm93IHlvdSB3aWxsIGFic29sdXRlbHkgbG92ZSBsaXN0ZW5pbmcgdG8gdGhpcyBiaXJ0aCBzdG9yeS7CoExpa2UgTWVhZ2FuIHNhaWQsIOKAnEl0IGlzIHNvIGJlYXV0aWZ1bC4gSXQgaXMgc28gcGVhY2VmdWwuIEl0IHNvdW5kcyBsaWtlIG9uZSBvZiB0aG9zZSBiaXJ0aHMgd2hlcmUgeW91IGNsb3NlIHlvdXIgZXllcyBhbmQgeW91IGVudmlzaW9uIGJpcnRoIGFuZCBob3cgcGVhY2VmdWwsIGJlYXV0aWZ1bCwgYW5kIGNhbG0gaXQgcmVhbGx5IGNhbiBiZS7igJ1UaGUgVkJBQyBMaW5rIEJsb2c6IFZCQTJDwqBQcmFjdGljZSBCdWxsZXRpbiAtIFZCQUNJbmZvcm1lZCBQcmVnbmFuY3kgLSBjb2RlOiB2YmFjbGluazQyNE5lZWRlZCBXZWJzaXRlSG93IHRvIFZCQUM6IFRoZSBVbHRpbWF0ZSBQcmVwIENvdXJzZSBmb3IgUGFyZW50c0Z1bGwgVHJhbnNjcmlwdCB1bmRlciBFcGlzb2RlIERldGFpbHPCoDAzOjQ0IEZpcnN0IEMtc2VjdGlvbiB3aXRoIGludGVybmFsIGJsZWVkaW5nIGFuZCBhIGZvbGxvdy11cCBleHBsb3JhdG9yeSBzdXJnZXJ5MDk6MDQgU2Vjb25kIHByZWduYW5jeTExOjM3IFNjaGVkdWxlZCBDLXNlY3Rpb24gYW5kIGdldHRpbmcgcHJlZ25hbnQgYWdhaW4gc2hvcnRseSBhZnRlcjE4OjQ0IEZpbmRpbmcgYSBzdXBwb3J0aXZlIGhvbWUgYmlydGggbWlkd2lmZTIzOjI0IFZCQTJDIHByZXAgZHVyaW5nIHByZWduYW5jeTI3OjQ2IExhYm9yIGJlZ2luczMyOjQyIEJyZWFraW5nIGhlciBvd24gd2F0ZXIgYW5kIHB1c2hpbmcgZm9yIDE3IG1pbnV0ZXMzNjo0NyBBQ09H4oCZcyBzdGF0ZW1lbnQgb24gVkJBMkNNZWFnYW46IEhlbGxvLCBoZWxsbyBXb21lbiBvZiBTdHJlbmd0aC4gV2UgYXJlIHNvIGV4Y2l0ZWQgdG8gYmUgc2hhcmluZyBhbiBIQkEyQyBzdG9yeSBhbmQgaWYgeW91IGRvbuKAmXQga25vdyB5ZXQgd2hhdCBIQkFDIG1lYW5zLCB0aGF04oCZcyBob21lIGJpcnRoIGFmdGVyIENlc2FyZWFuIGFuZCB0aGVuIEhCQTJDIGlzIGhvbWUgYmlydGggYWZ0ZXIgdHdvIENlc2FyZWFucy4gSSBmZWVsIGxpa2UgdGhhdOKAmXMga2luZCBvZiBmdW5ueS4gSXTigJlzIG5ldmVyIHJlYWxseSBhIHRlcm0gSSB1c2VkIGJlY2F1c2UgSSB3YXNu4oCZdCBhdCB0aGUgaG9zcGl0YWwgYW5kIEkgd2FzbuKAmXQgYXQgaG9tZSwgYnV0IEkgYWxzbyBraW5kIG9mIGZlZWwgbGlrZSBJIHNvcnQgb2YgaGFkIGFuIEhCQUMuIEl0IHdhcyBhdCBhIGJpcnRoIGNlbnRlci4gTWF5YmUgdGhhdOKAmXMgYSB0ZXJtLCBiaXJ0aCBjZW50ZXIgYmlydGggYWZ0ZXIgdHdvIENlc2FyZWFucy4gSSBkb27igJl0IGtub3cuwqBCdXQgb2J2aW91c2x5LCBWQkFDIGFmdGVyIHR3byBDZXNhcmVhbnMgYXJlIG5lYXIgYW5kIGRlYXIgdG8gbXkgb3duIGhlYXJ0IGFuZCB0b2RheSB3ZSBoYXZlIG91ciBmcmllbmQgTWFjeSBmcm9tIENhbGlmb3JuaWEgc2hhcmluZyBoZXIgSEJBQyBzdG9yeSBhbmQganVzdCBiZWZvcmUgd2Ugc3RhcnRlZCByZWNvcmRpbmcsIHdlIHdlcmUgdGFsa2luZyBhYm91dCBob3cgb25lIG9mIGhlciBtZXNzYWdlcyB0aGF0IHNoZSB3YW50cyB0byBnaXZlIGlzIHRoYXQgeW91IGNhbiBkbyB0aGlzLiBSaWdodCwgTWFjeT8gWW914oCZcmUganVzdCBsaWtlLCB5b3UgY2FuLiBQZW9wbGUgY2FuIGRvIHRoaXMuwqBNYWN5OiBGb3Igc3VyZS7CoE1lYWdhbjogWWVzLiBZZXMuIEkgYW0gZXhjaXRlZCB0byBoZWFyIHlvdXIgc3RvcnkgYW5kIHRoZW4gSSB3YW50ZWQgdG8gYWxzbyBqdXN0IHRhbGsgYSBsaXR0bGUgYml0IGF0IHRoZSBlbmQgYWJvdXQgc29tZSBldmlkZW5jZSBvbiBWQkFDIGFmdGVyIHR3byBDLXNlY3Rpb25zLiBTbyBpZiB5b3XigJlyZSB3b25kZXJpbmcgbW9yZSBhYm91dCBWQkEyQywgbWFrZSBzdXJlIHlvdSBzdGljayB0byB0aGUgdmVyeSwgdmVyeSBlbmQgZXZlbiBhZnRlciB0aGUgc3RvcnkgYmVjYXVzZSB3ZeKAmWxsIHRhbGsgYSBsaXR0bGUgYml0IGFib3V0IHRoYXQuwqAwMToyNE1lYWdhbjogV2UgZG8gaGF2ZSBhIFJldmlldyBvZiB0aGUgV2VlayBhbmQgdGhpcyBpcyBmcm9tIEplbm5hLiBJdCBpcyBhY3R1YWxseSBvbiBvdXIgSG93IHRvIFZCQUM6IFVsdGltYXRlIFZCQUMgUHJlcCBDb3Vyc2UuIFNoZSBzYXlzLCDigJxJIGp1c3Qgc3RhcnRlZCBidXQgaGF2ZSBhbHJlYWR5IGxlYXJuZWQgc28gbXVjaC4gQWZ0ZXIgdHdvIEMtc2VjdGlvbnMgYW5kIG9uZSB3aGVyZSBteSBkb2N0b3IgbWFkZSBtZSB0aGluayBpdCB3YXMgdmVyeSByaXNreSwgSSB3YXMgdGVycmlmaWVkIHRvIHRyeSBhZ2Fpbi4gV2l0aCB0aGlzIGNvdXJzZSwgbm90IG9ubHkgaGF2ZSBJIGxlYXJuZWQgdGhlIHRydXRoIGFib3V0IFZCQUMsIGJ1dCBJIGFtIGV4Y2l0ZWQgdG8gYXR0ZW1wdCBtaW5lIGluIEF1Z3VzdC7igJ0gVGhhdOKAmXMgY29taW5nIHVwLiBJIGFtIHNvIGV4Y2l0ZWQgZm9yIEplbm5hLiBUaGFuayB5b3Ugc28gbXVjaCBmb3IgdGhlIHJldmlldyBhbmQgdGhlIHN1cHBvcnQsIG9mIGNvdXJzZSwgb2YgdGFraW5nIHRoZSBjb3Vyc2UuIEkgYW0gc28gZXhjaXRlZCB0aGF0IHlvdSBhcmUgZ2V0dGluZyBlZHVjYXRlZCBhbmQgZGVmaW5pdGVseSBrZWVwIHVzIHBvc3RlZC7CoDAzOjQ0IEZpcnN0IEMtc2VjdGlvbiB3aXRoIGludGVybmFsIGJsZWVkaW5nIGFuZCBhIGZvbGxvdy11cCBleHBsb3JhdG9yeSBzdXJnZXJ5TWVhZ2FuOiBPa2F5LCBjdXRlIE1hY3kuIFdlbGNvbWUgdG8gdGhlIHNob3cuwqBNYWN5OiBUaGFuayB5b3UgZm9yIGhhdmluZyBtZS7CoE1lYWdhbjogQWJzb2x1dGVseS4gSeKAmWQgbG92ZSB0byB0dXJuIHRoZSB0aW1lIG92ZXIgdG8geW91IGFuZCBzaGFyZSB3aGF0ZXZlciBtZXNzYWdlIHlvdSBmZWVsIGlzIGltcG9ydGFudCBmb3Igb3VyIGJlYXV0aWZ1bCBXb21lbiBvZiBTdHJlbmd0aCBsaXN0ZW5lcnMuwqBNYWN5OiBPa2F5LCB3ZWxsIGxpa2Ugd2l0aCBhbGwgVkJBQ3MsIG15IHN0b3J5IGJlZ2lucyBvZiBjb3Vyc2Ugd2l0aCBteSBmaXJzdCBwcmVnbmFuY3kuIER1cmluZyBteSBmaXJzdCBwcmVnbmFuY3ksIEkgd2FzIHByZXR0eSBoZWFsdGh5LiBJIGRpZG7igJl0IGxvdmUgYmVpbmcgcHJlZ25hbnQsIGJ1dCBJIHdhcyBleGNpdGVkIHRoYXQgd2Ugd2VyZSBzdGFydGluZyBvdXIgZmFtaWx5IGFuZCBJIGdvdCB0b+KAkyBJIGNhbuKAmXQgcmVtZW1iZXLigJMgMzQgd2Vla3MgbWF5YmUsIDM1aXNoLCBhbmQgYmFieSB3YXMgc3RpbGwgYnJlZWNoLsKgVGhleSBvZmZlcmVkIG1lIHRoZSBFQ1YgcHJvY2VkdXJlLCBidXQgdGhleSB0b2xkIG1lIEkgd291bGQgaGF2ZSB0byBkbyBpdCBhcm91bmQgMzctMzggd2Vla3MgYW5kIEkgd2FzIHdvcnJpZWQgYWJvdXQgaXQgYmVpbmcgc28gZWFybHkgYmVmb3JlIG15IGR1ZSBkYXRlIHRoYXQgc2hlIHdvdWxkIHR1cm4gYWdhaW4uIEkgd2FzIHNjYXJlZC4gVGhleSBnb3QgbWUgc2NhcmVkLiBUaGV5IGRvbuKAmXQgcmVhbGx5IHByZXNlbnQgdGhlIEVDVnMgYXMgc29tZXRoaW5nIHRoYXQgc2hvdWxkIHdvcmsuwqBNZWFnYW46IEkga25vdy4gSSBrbm93LsKgTWFjeTogTXkgbWlkd2lmZSB3aXRoIG15IHRoaXJkIHByZWduYW5jeSB3YXMgbGlrZSwg4oCcSSB3aXNoIHlvdSB3b3VsZCBoYXZlIGRvbmUgaXQs4oCdIGJ1dCB0aGV5IHRhbGtlZCBtZSBvdXQgb2YgaXQgc28gSSBkZWNpZGVkIG5vdCB0byBkbyBpdC4gQ29tZSA0MCB3ZWVrcywgc2hlIHdhcyBzdGlsbCBub3QgZmxpcHBlZCwgYnV0IEkgd2FzbuKAmXQgaW4gbGFib3Igc28gYW5vdGhlciB0aGluZyBpcyBJIHdpc2ggSSB3b3VsZCBoYXZlIGp1c3Qgd2FpdGVkIHRvIHNlZSBiZWNhdXNlIG1heWJlIHNoZSB3b3VsZCBoYXZlIGZsaXBwZWQgaW4gbGFib3IuwqBNZWFnYW46IFNvbWV0aW1lcyB0aGV5IGRvLiBJIGFjdHVhbGx5IHJlY2VudGx5IGhhZCBhIGNsaWVudCBsYXN0IHllYXIgaW4gMjAyMyB0aGF0IGRpZCBoYXZlIHRoYXQuIFNoZSB3YXMgc2NoZWR1bGVkIGZvciBoZXIgdmVyc2lvbiBhbmQgdGhlbiBzaGUgd2VudCBpbnRvIHNwb250YW5lb3VzIGxhYm9yIHNvIHNoZSBhY3R1YWxseSB3ZW50IGluIHByZXR0eSBlYXJseSBiZWNhdXNlIHNoZSB3YXMgbGlrZSwg4oCcT2ggbXkgZ29zaC4gTXkgYmFieeKAmXMgYnJlZWNoLiBJIHdhcyBzY2hlZHVsZWQgdGhlIG5leHQgZGF5IGZvciBhIHZlcnNpb24s4oCdIGFuZCB0aGV5IHdlcmUgbGlrZSwg4oCcQmFieeKAmXMgaGVhZCBkb3duLuKAnSBTbyBpdCBkZWZpbml0ZWx5IGhhcHBlbnMuwqBNYWN5OiBXaXRoIG15IHRoaXJkIG9uZSwgc2hlIHdhcyBzdW5ueS1zaWRlIHVwLiBTaGUgd2FzIHBvc3RlcmlvciwgYnV0IEkgY291bGQgZmVlbCBoZXIgdHVybmluZyBhbmQgZ2V0dGluZyBpbnRvIHBvc2l0aW9uLiBCdXQgYW55d2F5LCBJ4oCZbGwgZ2V0IHRoZXJlLiBJ4oCZbGwgZ2V0IHRoZXJlLsKgSSBoYWQgbXkgQy1zZWN0aW9uIHNjaGVkdWxlZC4gTXkgZGF1Z2h0ZXIsIEFsYXluYSB3YXMgYm9ybiAxMCBkYXlzIGJlZm9yZSBDaHJpc3RtYXMgaW4gMjAxOC4gU2hlIHdhcyBwZXJmZWN0LiBTaGUgd2FzIDYgcG91bmRzLCAxMyBvdW5jZXMuIEkgd2FzIG5vdCBncmVhdC7CoEFmdGVyIG15IHN1cmdlcnksIEkgY2FtZSBvdXQuIEkgd2FzIGluIHRoZSBQQUNVIGFuZCBteSBibG9vZCBwcmVzc3VyZSB3YXMgZHJvcHBpbmcgY3JhenkgbG93IGFuZCBteSBoZWFydCByYXRlIHdhcyBzcGlraW5nIHN1cGVyIGhpZ2guIEkgd2FzIGdob3N0LXdoaXRlIGFuZCB0aGV5IHdlcmUgbGlrZSwg4oCcV2UgZG9u4oCZdCBrbm93IHdoYXTigJlzIGdvaW5nIG9uLuKAncKgTG9uZywgbG9uZywgbG9uZyBzdG9yeSBzaG9ydCwgSSB3YXMgaGF2aW5nIGNyYXp5IGludGVybmFsIGJsZWVkaW5nLsKgTWVhZ2FuOiBJIHdhcyBnb2luZyB0byBzYXksIHdlcmUgeW91IGhlbW9ycmhhZ2luZz8gQmVjYXVzZSB0aGF0IHNvdW5kcyBsaWtlIGhlbW9ycmhhZ2luZy7CoE1hY3k6IEkgd2FzIGhlbW9ycmhhZ2luZy4gSSB3YXMgYmxlZWRpbmcgaW50ZXJuYWxseSwgYnV0IGl0IHdhcyBmcm9tIGhhdmluZyBzdXJnZXJ5LiBJdCB3YXMgbm90IGFueXRoaW5nIHRvIGRvIHdpdGggYmFieSBvciBiaXJ0aC4gSXQgd2FzIGp1c3Qgc3VyZ2VyeS4gU28gd2hhdCB3ZSBkaXNjb3ZlcmVkIGlzIHRoZXkgaGFkIGFjY2lkZW50YWxseSBuaWNrZWQgYW4gYWIgbXVzY2xlIGFuZCBpdCB3YXMgYmxlZWRpbmcuwqAyNCBob3VycyBhZnRlciBteSBkYXVnaHRlciB3YXMgYm9ybiwgSSBoYWQgdG8gZ28gYmFjayBpbiBmb3IgYW4gZXhwbG9yYXRvcnkgc3VyZ2VyeSBhbmQgSSB3YXMgcHV0IHVuZGVyIGFuZXN0aGVzaWEgY29tcGxldGVseSBhZ2Fpbi4gVGhleSBoYWQgdG8gY3V0IGJhY2sgb3BlbiBteSBsYXllcnMgYW5kIHN0YXJ0IG92ZXIuIFRoYW5rZnVsbHksIHRoZXkgZGlkbuKAmXQgaGF2ZSB0byBjdXQgaW50byBteSB1dGVydXMgYWdhaW4sIGJ1dCB0aGV5IGRpZCBvcGVuIG1lIGJhY2sgdXAgYW5kIHN0b3AgdGhlIGJsZWVkaW5nLCBjYXV0ZXJpemUgaXQgYW5kIEkgbWVhbiwgbXkgcmVjb3Zlcnkgd2FzIGp1c3QgaG9ycmlibGUuwqBNZWFnYW46IE5vdCBncmVhdCwgeWVhaC7CoE1hY3k6IEkgbWVhbiwgdGhhbmtmdWxseSBJIG9ubHkgaGFkIG9uZSBiYWJ5IHNvIGl0IHdhcyBqdXN0IGhlciBhbmQgbXkgaHVzYmFuZCBpcyBhbWF6aW5nLiBJIGNvdWxkIG5vdCBhc2sgZm9yIGEgYmV0dGVyIHBhcnRuZXIsIGJ1dCBpdCB3YXMganVzdCBoYXJkLiBJdCB3YXMgaGFyZCB0byBhY2NlcHQgdGhhdCwgdG8gZ3JpZXZlIHRoZSBiaXJ0aCBJIGhhZCBkcmVhbWVkIG9mIG15IHdob2xlIGxpZmUsIGJ1dCBpdCBuZXZlciBvY2N1cnJlZCB0byBtZSB0aGF0IEkgY291bGRu4oCZdCBoYXZlIGEgVkJBQy4gTXkgbW9tIGhhZCBtZSB2aWEgQy1zZWN0aW9uIGFuZCBteSB0aHJlZSBzdWJzZXF1ZW50IHNpYmxpbmdzIHdlcmUgYWxsIFZCQUMuIFNvIHdoZW4gc29tZW9uZSBzYWlkIHRvIG1lIGF0IDEyIHdlZWtzLCBJIHJlY292ZXJlZC4gSSB3YXMgYmFjayBhdCB0aGUgZ3ltIGFuZCBzb21lb25lIGZyb20gdGhlIGd5bSB3YXMgbGlrZSwg4oCcT2gsIHNvIHlvdSBoYXZlIHRvIGhhdmUgYWxsIHlvdXIgYmFiaWVzIGFzIEMtc2VjdGlvbnMgbm93LuKAnSBJIHdhcyBsaWtlLCDigJxXYWl0LCB0aGF04oCZcyBhIHRoaW5nIHN0aWxsPyBXZeKAmXJlIHN0aWxsIGRvaW5nIHRoYXQ/4oCdIEkgd2FzIGxpa2UsIOKAnE5vLiBJ4oCZbSBnb2luZyB0byBoYXZlIGEgVkJBQy7igJ0gSSBuZXZlciBldmVuIHRob3VnaHQgYWJvdXQgaXQuIEkgaW1tZWRpYXRlbHkgd2FzIGxpa2UsIOKAnE9oLCBzbyB0aGlzIGlzIGdvaW5nIHRvIGJlIGEgdGhpbmcu4oCdIFRoYXTigJlzIHdoZW4gSSBmb3VuZCB5b3UgZ3V5cyBhbmQgSSBzdGFydGVkIGxpc3RlbmluZyBiZWZvcmUgSSB3YXMgZXZlbiBwcmVnbmFudCB3aXRoIG15IHNlY29uZCBvbmUsIGJ1dCB3aGVuIEkgZGlkIGdldCBwcmVnbmFudCB0aHJlZSB5ZWFycyBsYXRlciB3aXRoIGJhYnkgbnVtYmVyIHR3bywgSSBwcm9iYWJseSBiaW5nZS1saXN0ZW5lZCB0byBldmVyeSBzaW5nbGUgZXBpc29kZS4gSSB3YXMgbGlrZSwg4oCcSeKAmW0gZG9pbmcgdGhpcy7igJ3CoDA5OjA0IFNlY29uZCBwcmVnbmFuY3lNYWN5OiBJIHN3aXRjaGVkIHByb3ZpZGVycyBqdXN0IGJlY2F1c2UgSSBkaWRu4oCZdCBoYXZlIGEgZ3JlYXQgZXhwZXJpZW5jZSBzbyBJIHdhcyBsaWtlLCBteSBwb3N0cGFydHVtIGNhcmUsIEkgZGlkbuKAmXQgY2FyZSBmb3IgbXkgcGVkaWF0cmljaWFuIHNvIEkganVzdCBzd2l0Y2hlZCBldmVyeXRoaW5nLiBCdXQgYmVjYXVzZSBJIHdhcyB3aXRoIGEgbmV3IHByb3ZpZGVyLCBJIGhhZCBhIHJlYWxseSBkaWZmaWN1bHQgdGltZSBsb2NhdGluZyBteSBzdXJnaWNhbCBub3Rlcy4gTXkgbmV3IHByb3ZpZGVycyB3YW50ZWQgdG8ga25vdyBpZiBteSBmaXJzdCBDLXNlY3Rpb24gd2FzIGRvbmUgd2l0aCBhIHNpbmdsZSBvciBkb3VibGUtbGF5ZXIgY2xvc3VyZS7CoE1lYWdhbjogT2gsIGludGVyZXN0aW5nLiBPa2F5LsKgTWFjeTogQmVjYXVzZSBvZiBjb3Vyc2UsIGlmIGl04oCZcyBzaW5nbGUsIGl04oCZcyBnb2luZyB0byBpbmNyZWFzZSBteSByaXNrIGZvciBhIHJ1cHR1cmUuIEkgYXQgdGhpcyBwb2ludCB3YXMgYWxyZWFkeSBsaWtlLCB0aGUgcmlzayBvZiBydXB0dXJlIGlzIHNvIGxvdy4gSSBhbSBub3Qgd29ycmllZCBhYm91dCBpdC4gQnJlZWNoIGJhYnkgaXMgYSBncmVhdCBjYW5kaWRhdGUgZm9yIFZCQUMuwqBNZWFnYW46IEFuZCB0aGUgZXZpZGVuY2Ugb24gdGhhdCBpcyByZWFsbHkgbm90IHNvbGlkIG9uIHdoaWNoIG9uZSByZWFsbHkgaXMgYmVzdC4gVGhlcmUgYXJlIHNvbWUgdGhhdCBzaG93IGRvdWJsZSBtYXkgYmUgYmV0dGVyLCBidXQgdGhhdCBkb2VzbuKAmXQgbmVjZXNzYXJpbHkgbWVhbiB0aGF0IHlvdXIgcnVwdHVyZSByYXRlIHNreXJvY2tldHMgYmVjYXVzZSB5b3UgaGF2ZSBhIHNpbmdsZSBsYXllci4gU28gdGhleSBhcmUgZm9jdXNpbmcgb24gc29tZXRoaW5nIHRoYXQgZGlkbuKAmXQgaGF2ZSBhIHRvbiBvZiBldmlkZW5jZS7CoE1hY3k6IFJpZ2h0LiBJIHdhcyBsaWtlLCDigJxUaGVyZSBpcyBqdXN0IG5vdCBlbm91Z2ggcmVzZWFyY2ggdG8ganVzdGlmeSBhbGwgb2YgdGhlc2UgQy1zZWN0aW9ucy7igJ0gQnV0IGJlY2F1c2UgdGhleSBkaWRu4oCZdCB1bmRlcnN0YW5kIHdoYXQgaGFkIGdvbmUgd3JvbmcgYW5kIHdoeSBJIGhhZCB0byBoYXZlIGEgc2Vjb25kIHN1cmdlcnkgZXZlbiB0aG91Z2ggSSB0b2xkIHRoZW0gYSBtaWxsaW9uIHRpbWVzIGl0IHdhc27igJl0IGFueXRoaW5nIHRvIGRvIHdpdGggbXkgdXRlcnVzLiBJdCB3YXNu4oCZdCBhIG1lIHByb2JsZW0uIEl0IHdhcyBhIGRvY3RvcidzIHByb2JsZW0uIFRoZXkgd2VyZSBqdXN0IGxpa2UsIOKAnFdlIGp1c3QgZG9u4oCZdCBmZWVsIGNvbWZvcnRhYmxlIHdpdGggVE9MQUMu4oCdIEFuZCB5b3Uga25vdywgaXTigJlzIGFsd2F5cyBUT0xBQy4gSXTigJlzIG5ldmVyIGp1c3QgYSBWQkFDLsKgTWVhZ2FuOiBJIGtub3cuwqBNYWN5OiBCdXQgdGhleSBkaWRu4oCZdCB3YW50IHRvIGRvIGFueXRoaW5nLiBUaGV5IGRpZG7igJl0IHdhbnQgdG8gb2ZmZXIgdWx0cmFzb3VuZHMuIFRoZXkganVzdCB3ZXJlIG5vdCB3aWxsaW5nIHRvIHRha2UgYSBjaGFuY2UgZXZlbiB0aG91Z2ggaXQgd2FzIGEgcmVhbGx5IGdvb2QgY2hhbmNlLsKgU28gYmFzaWNhbGx5LCB0aGV5IHdlcmUgbGlrZSwg4oCcVGhlIG9ubHkgd2F5IHlvdSBhcmUgaGF2aW5nIHRoaXMgc2Vjb25kIGJhYnkgVkJBQyBpcyBpZiB5b3UgY29tZSB0byB0aGUgaG9zcGl0YWwgYW5kIHlvdSBhcmUgaW4gbGFib3IgYW5kIGl04oCZcyB0aW1lIHRvIHB1c2gu4oCdwqBJIG1lYW4sIHRoYXTigJlzIGtpbmQgb2Ygc2NhcnkgdG8gc29tZW9uZSB3aG8gZG9lc27igJl0IGtub3cuIEkgbWVhbiwgbm93IHRoYXQgSeKAmXZlIGRvbmUgaXQgSeKAmW0gbGlrZSwg4oCcVGhhdOKAmXMgd2hhdCBJIHNob3VsZCBoYXZlIGRvbmUs4oCdIGFuZCB0aGF04oCZcyB3aGF0IEkgdGVsbCBteSBmcmllbmRzLiBZb3UgZG9u4oCZdCBnbyB0byB0aGUgZG9jdG9yIHVudGlsIHlvdXIgY29udHJhY3Rpb25zIGFyZSB0d28gbWludXRlcyBhcGFydCBiZWNhdXNlIHRoZXkgdHJ5IHRvIHNjYXJlIHdvbWVuIG91dCBvZiB0aGVpciBWQkFDLsKgMTE6MzcgU2NoZWR1bGVkIEMtc2VjdGlvbiBhbmQgZ2V0dGluZyBwcmVnbmFudCBhZ2FpbiBzaG9ydGx5IGFmdGVyTWFjeTogU28gSSBqdXN0IGRpZG7igJl0IHJlYWxseSBzdGFuZCB1cCBmb3IgbXlzZWxmLiBJIGp1c3QgYWdyZWVkIGxpa2UsIOKAnE9rYXksIEkgZ3Vlc3Mu4oCdIEkgdG9sZCBteXNlbGYsIOKAnElmIEkgZ28gaW50byBsYWJvciBiZWZvcmUgbXkgc2NoZWR1bGVkIEMtc2VjdGlvbiBhdCAzOSB3ZWVrcywgdGhlbiB0aGF04oCZcyB0aGUgd2F5IEdvZCB3YW50cyBpdCBhbmQgSSB3aWxsIGhhdmUgbXkgVkJBQy7igJ0gT2J2aW91c2x5LCB0aGF0IG5ldmVyIGhhcHBlbmVkIGFuZCAzOSB3ZWVrcyBpcyBwcmV0dHkgZWFybHkgbm93IGtub3dpbmcgZXNwZWNpYWxseSB3aGVuIGR1ZSBkYXRlcyBhcmUganVzdCBndWVzcyBkYXRlcy7CoE1lYWdhbjogVmVyeSBpbXBvcnRhbnQgbm90ZSB0aGF0IHlvdSBqdXN0IGdhdmUgdGhlcmUuwqBNYWN5OiBZZWFoLiBJIGhhZCBteSBiYWJ5IGF0IDM5IHdlZWtzLiBTaGUgd2FzIHBlcmZlY3QuIEkgbWVhbiwgbXkgcmVjb3Zlcnkgd2Fz4oCTIHNoZSB3YXMgYW5vdGhlciA2IHBvdW5kcywgMTUgb3VuY2VzIHNvIHRoZXkgd2VyZSBhbG1vc3QgdGhlIHNhbWUgc2l6ZS4gVGhhdCB3YXMgUmVhZ2FuLiBSZWNvdmVyeSB3YXMgYSBsb3QgYmV0dGVyIGJ1dCBzdGlsbCwgSSBoYWQgYSAzLXllYXItb2xkIGF0IGhvbWUuwqBHb2luZyBmcm9tIG9uZSB0byB0d28gd2FzIHByZXR0eSBnb29kIGZvciBtZS4gSSBoYXZlIGEgYmlnIGZhbWlseS4gVGhhdCB3YXMgZ3JlYXQuIEJ1dCBpdCB3YXMgc3RpbGwgbm90IHRoZSBlbXBvd2VyaW5nIGJpcnRoIHRoYXQgSSB3YW50ZWQuIEkgZGlkIGZlZWzigJMgSSBkb27igJl0IHdhbnQgdG8gc2F5IEkgZGlkbuKAmXQgZmVlbCBlbXBvd2VyZWQgYmVjYXVzZSBDLXNlY3Rpb24gaXMgYmFkYXNzLiBJdOKAmXMgaGFyZC7CoE1lYWdhbjogWWVhaC4gTWhtbSwgeWVhaC7CoE1hY3k6IEl04oCZcyBub3QgdGhlIGVhc3kgd2F5IG91dCBldmVyLiBUaGVyZSBpcyBubyBlYXN5IHdheSBvdXQgb2YgYmlydGguIEkgZG8gd2FudCB0byBwcmVmYWNlIHRoYXQgYW5kIHNheSBpZiB0aGF04oCZcyB3aGF0IGVuZHMgdXAgaGFwcGVuaW5nIGFuZCB5b3Ugb25seSBoYXZlIHR3byBraWRzIGFuZCB5b3Ugb25seSBoYXZlIHR3byBDLXNlY3Rpb25zLCB0aGF04oCZcyBva2F5IHRvby4gSSBrbmV3IHdlIHdlcmVu4oCZdCBkb25lIGhhdmluZyBraWRzLiBJIHdhbnRlZCB0aGUgYmlydGggSSB3YW50ZWQuwqBJIGRpZCBub3QgcGxhbiB0byBnZXQgcHJlZ25hbnQgd2l0aCBzdWNoIGEgc2hvcnQgdHVybmFyb3VuZCB0aW1lLiBJIHdhcyBhbG1vc3QgOCBtb250aHMgcG9zdHBhcnR1bSB3aGVuIHdlIGZvdW5kIG91dCB3ZSB3ZXJlIHByZWduYW50IGFnYWluLiBXZSB3ZXJlIGEgbGl0dGxlIHN1cnByaXNlZC4gSSBtZWFuLCB3ZSBhcmUgZ3Jvd24gYWR1bHRzLiBJdCBzaG91bGRu4oCZdCBiZSB0aGF0IHN1cnByaXNpbmcuwqBNZWFnYW46IEJ1dCBzdGlsbCwgaXQgY2FuIGJlIGEgbGl0dGxlIGFsYXJtaW5nIHdoZW4geW91IHdlcmVu4oCZdCBtZW50YWxseSBwcmVwYXJpbmcgZm9yIHRoYXQuwqBNYWN5OiBJIGhhZCBqdXN0IGZpbmlzaGVkIGJyZWFzdGZlZWRpbmcuIEkgd2FzIGp1c3Qgc3RhcnRpbmcgdG8gdHJhY2sgYW5kIGFsbCBvZiB0aGVzZSB0aGluZ3Mgc28gSSB3YXMgbGlrZSwg4oCcT2ggbm8u4oCdIEJ1dCB0aGF0IHdhcyBraW5kIG9mIHdoZW4gbXkgd29yayByZWFsbHkgc3RhcnRlZCBmb3IgbWUgYmVjYXVzZSBJIHdhcyBsaWtlLCDigJxPa2F5LiBXZSBhcmUgZG9pbmcgdGhpcyBhZ2FpbiBhbmQgSeKAmW0gZ29pbmcgdG8gZG8gdGhpcyB0aGUgd2F5IEkgd2FudC4gVGhpcyBpcyBnb2luZyB0byBiZSBob3cgSSB3YW50IGl0IHRvIGdvLiBUaGlzIGlzIG15IHN0b3J5IGFuZCB0aGlzIGlzIGdvaW5nIHRvIGJlIGFuIGVzc2VudGlhbCBjb21wb25lbnQgb2Ygd2hvIEkgYW0gYXMgYSB3b21hbiBhbmQgYXMgYSBtb3RoZXIgZ29pbmcgZm9yd2FyZCBmb3IgdGhlIHJlc3Qgb2YgbXkgbGlmZS4gSSBuZWVkIHRoaXMgdG8gZ28gdGhlIHdheSBJIHdhbnQgaXQgdG8gZ28u4oCdIEkgd2FudGVkIGl0IHRvIGdvIHRoZSB3YXkgR29kIHdhbnRlZCBpdCB0byBnbyBvZiBjb3Vyc2UsIGJ1dCBJIHdhcyBsaWtlLCDigJxJ4oCZbSBnb2luZyB0byB0YWtlIG1vcmUgY29udHJvbC7igJ0gTWVhZ2FuOiBDYW4gSSBhZGQgc29tZXRoaW5nIHRvIHRoYXQ/IFNvcnJ5IHRvIGludGVycnVwdCwgYnV0IHRoZXJlIGFyZSBzbyBtYW55IHRpbWVzIHRoYXQgSSBoZWFyIHBlb3BsZSwgSSByZWFkIG9uIHNvY2lhbCBtZWRpYSB0aGF0IHBlb3BsZSBhcmUgZ2V0dGluZyBhZnRlciBtb21zIGFuZCBwYXJlbnRzIHdobyBhcmUgbGlrZSwg4oCcSSB3YW50IHRoaXMgYmlydGguIFRoaXMgaXMgd2hhdCBJIHdhbnQuIFRoaXMgaXMgd2hhdCBJIGZlZWwgSSBuZWVkLOKAnSBvciB3aGF0IHlvdSBhcmUgc2F5aW5nLiDigJxJIHdhbnQgaXQgdG8gZ28gYSBjZXJ0YWluIHdheS7igJ0gVGhleSBhcmUgbGlrZSwg4oCcV2h5IGRvIHlvdSBoYXZlIHRvIGZvY3VzIG9uIHdoYXQgeW91IHdhbnQ/IEl04oCZcyBub3Qgd2hhdCB5b3Ugd2FudC4gSXTigJlzIHdoYXTigJlzIGJlc3QgZm9yIHRoZSBiYWJ5LuKAnSBUaGV5IGFyZSByYWlsaW5nIG9uIHRoZXNlIHBlb3BsZS7CoEkgd2FudCB0byBzdG9wIGFuZCBzYXkgdGhhdCB3aGF0IHlvdSBzYWlkIGlzIG9rYXkuIEkgZmVlbCBsaWtlIG1heWJlIGEgbGl0dGxlIHBhc3Npb25hdGUgYWJvdXQgdGhhdCB0b28gYmVjYXVzZSBzbyBtYW55IHBlb3BsZSB3ZXJlIG5heXNheWVycyB0byBtZS4g4oCcSXQgZG9lcyBub3QgbWF0dGVyIHdoYXQgeW91IHdhbnQuIEl04oCZcyB3aGF04oCZcyBiZXN0IGZvciB0aGUgYmFieS7igJ0gSXTigJlzIGxpa2UsIHdlbGwgZ3Vlc3Mgd2hhdD8gVGhhdOKAmXMgYWxzbyBtYXliZSB3aGF04oCZcyBiZXN0IGZvciBteSBiYWJ5LsKgTWFjeTogUmlnaHQuwqBNZWFnYW46IEl04oCZcyBva2F5IHRvIHNheSwgV29tZW4gb2YgU3RyZW5ndGgsIOKAnEkgd2FudCB0aGlzIGJpcnRoLiBUaGlzIGlzIHdoYXQgSSB3YW50LuKAnSBBbmQgeW91IGRlc2VydmUgdGhhdC4gWW91IGRlc2VydmUgdG8gZ28gYWZ0ZXIgd2hhdCB5b3Ugd2FudC7CoE1hY3k6IEl0IGlzIGhhcmQgYW5kIGJlaW5nIGEgbW9tIGlzIGhhcmQuwqBNZWFnYW46IFllcy7CoE1hY3k6IFlvdSBjYW4gc3RhcnQgb3V0IGluIGEgd2F5IHRoYXQgeW91IGZlZWwgZW1wb3dlcmVkLiBJdCBpcyBsaWZlLWNoYW5naW5nLiBJdCByZWFsbHkgaXMuwqBNZWFnYW46IEl0IGlzLiBTbyBzb3JyeSBmb3IgaW50ZXJydXB0aW5nLCBidXQgSSBqdXN0IHdhbnRlZCB0byBnaXZlIGEgbGl0dGxlIHRpZGJpdCB0aGF0IGl04oCZcyBva2F5IGZvciBwZW9wbGUgdG8gd2FudCB3aGF0IHRoZXkgd2FudC4gSSB3YW50ZWQgYSB3aGl0ZSB2ZWhpY2xlLiBJIHdhcyBnb2luZyB0byBmaW5kIGEgd2hpdGUgdmVoaWNsZS4gSXTigJlzIG9rYXkgdG8gZ2V0IHdoYXQgeW91IHdhbnQgYW5kIHRvIHB1dCBmb3J0aCBlbmVyZ3kgYW5kIHRvIHNheSB0aGF0IG91dCBsb3VkLCDigJxJIHdhbnQgdGhpcyBWQkFDLiBJ4oCZbSBnb2luZyB0byBnZXQgdGhpcy4gSSB3YW50IGl0LuKAncKgTWFjeTogWW91IHNwZW5kIGFsbW9zdCAxMCBtb250aHMgdGhpbmtpbmcgYWJvdXQgdGhpcyBhbmQgcHJheWluZyBhYm91dCBpdCB3aGVyZWFzIHlvdSB0YWxrIHRv4oCTIEkgbWVhbiwgaXQgd2FzbuKAmXQgYXMgaW1wb3J0YW50IHRvIGFueW9uZSBlbHNlIGluIG15IGxpZmUgZXhjZXB0IGZvciBtZS4gVGhhdCB3YXMgb2theS4gRXNwZWNpYWxseSB0aGUgZG9jdG9ycyBhbmQgdGhlIHByb3ZpZGVycywgSeKAmW0ganVzdCBhbm90aGVyIHBlcnNvbiB0byB0aGVtIGFuZCB5ZXMsIHRoZXJlIGFyZSBzb21lIHJlYWxseSBncmVhdCBwcm92aWRlcnMgb3V0IHRoZXJlIGFuZCB0aGV5IGRvIGNhcmUsIGJ1dCB0aGV5IGFyZSBhdCB0aGVpciBqb2IuIFRoZXkgYXJlIGRvaW5nIHRoZWlyIGpvYi4gV2VsbCwgbXkgam9iIGlzIHRvIGJlIGEgbW90aGVyLiBUaGF04oCZcyBteSBqb2IsIHNvIGRvaW5nIHdoYXQgc2VydmVzIG1lIHdlbGwgd2FzIGJpcnRoaW5nIG15IGJhYnkgdGhlIHdheeKAk8KgTWVhZ2FuOiBIYXZpbmcgYSBWQkFDLsKgTWFjeTogSGF2aW5nIGEgVkJBQy4gU28gSSByZWFsbHkgaGl0IHRoZSBncm91bmQgcnVubmluZy4gVGhlcmUgd2VyZSBhIGZldyBnaXJscyBpbiBteSB0b3duIHdobyBoYWQgcmVjZW50bHkgaGFkIGhvbWViaXJ0aHMuIFRoZXkgd2VyZW7igJl0IFZCQUNzLCBidXQgdGhleSB3ZXJlIFZCQUNzIHNvIEkgcmVhY2hlZCBvdXQgdG8gdGhlbeKAkyBzaG91dG91dCB0byBteSBnaXJscyBNZWdhbiBhbmQgRW1pbHkuIFRoZXkgd2VyZSBzbyBoZWxwZnVsIGJlY2F1c2UgdGhleSB3ZXJlIHJlYWwgcGVvcGxlLiBJIHJlYWNoZWQgb3V0IHRvIHlvdSBndXlzIGFuZCBJIGp1c3Qgd2FudGVkIHRvIGtub3csIOKAnEhleSwgd2hhdCBpcyB0aGUgcmVzZWFyY2ggb24gcmVhbGx5IGNsb3NlIHByZWduYW5jaWVzP+KAnSBiZWNhdXNlIEkgd2FzbuKAmXQgZ29pbmcgdG8gaGl0IHRoZSAxOCBtb250aHMuwqBNZWFnYW46IFRoZSAxOCBtb250aHMuIFlvdXIgYmFiaWVzIHdlcmUgZ29pbmcgdG8gYmUgMTcgbW9udGhzIGFwYXJ0LCByaWdodD/CoE1hY3k6IDE3IG1vbnRocy4gU28gdGhhdCB3YXMgZXZlbiBhbm5veWluZyB0b28gYmVjYXVzZSBJIHdhcyBsaWtlLCDigJxJ4oCZbSByaWdodCB0aGVyZS4gQ29tZSBvbi7igJ0gWW91IGd1eXMgd2VyZSBsaWtlLCDigJxHbyBqb2luIHRoZSBGYWNlYm9vayBDb21tdW5pdHkgZ3JvdXAu4oCdIEkgd2FzIHNvIGdsYWQgdGhhdCBJIGRpZCBiZWNhdXNlIEkgd2FzIGp1c3QgZmluZGluZyBzdG9yeSBhZnRlciBzdG9yeSBhZnRlciBwb3N0IGFmdGVyIHBvc3QuIE5vdCBvbmx5IHdlcmUgc28gbWFueSB3b21lbiBoYXZpbmcgVkJBQ3MgYWZ0ZXIgdHdvKyBDLXNlY3Rpb25zLCBidXQgdGhleSB3ZXJlIGNsb3NlIHRvZ2V0aGVyLiBTb21lIHdlcmUgbGlrZSwg4oCcTWluZSB3ZXJlIDEyIG1vbnRocyBhcGFydC7igJ0gSeKAmW0gbGlrZSwg4oCcT2gsIEnigJltIGdvb2QgdG8gZ28gdGhlbi7igJ0gSXQgd2FzIHNvIG5pY2UgaGF2aW5nIHRoYXQgY29tbXVuaXR5LiBJIHdhcyBldmVuIGFibGUgdG8gam9pbiBhIGNvbW11bml0eSB3aXRoaW4gdGhlIGNvbW11bml0eSBvZiBldmVyeW9uZSB3aG8gd2FzIGR1ZSBhdCB0aGUgc2FtZSB0aW1lIGFzIG1lIHNvIHdoZW4gd2UgZ290IGNsb3NlLCB3ZSBoYWQgYSBncm91cCBtZXNzYWdlIGFuZCBldmVyeW9uZSB3YXMgbGlrZSwg4oCcSXMgaXQgaGFwcGVuaW5nIHRvZGF5PyBJcyBpdCBoYXBwZW5pbmcgdG9kYXk/4oCdIEl0IHdhcyBzbyBuaWNlIG5vdCB0byBiZSBhbG9uZSBpbiB0aGF0LsKgSSBhbHNvIGhhZCB0byBmaW5kIGEgbWlkd2lmZSBiZWNhdXNlIEkga25ldyBteSBwcm92aWRlcnMgd2VyZSBub3QgZ29pbmcgdG8gYmUgc3VwcG9ydGl2ZSBvZiBWQkFDIGFmdGVyIHR3by4gSSBhY3R1YWxseSBoYWQgYSBoYXJkIHRpbWUgZmluZGluZyBhIG1pZHdpZmUgd2hpY2ggd2FzIGFsc28gYW5ub3lpbmcgYmVjYXVzZSBJIHdhcyBtZXQgd2l0aCBzb21lIG1lZHdpdmVzIHdobyB3ZXJlIGp1c3QgcmVhbGx5IGdvaW5nIHRvIHN0aWNrIHRvIHRoYXQgMTggbW9udGhzLsKgMTg6NDQgRmluZGluZyBhIHN1cHBvcnRpdmUgaG9tZSBiaXJ0aCBtaWR3aWZlVGhlbiBJIGhhcHBlbmVkIHRvIGp1c3QgZmluZCBhIHdvbWFuIHdobyB3YXMgbGlrZSwg4oCcSeKAmXZlIG5ldmVyIGRvbmUgdGhpcyBiZWZvcmUuIFlvdSBhcmUgbXkgZmlyc3QgVkJBQyBhZnRlciB0d28s4oCdIGJ1dCBzaGUgd2FzIGEgbWlkd2lmZSB3aG8gd2FzIHZlcnkga25vd2xlZGdlYWJsZS4gU2hlIGhhZCBkb25lIGxvdHMgb2YgaG9tZSBiaXJ0aHMuIFNoZSBoYWQgZG9uZSBWQkFDcywgYnV0IG5vdCBhZnRlciB0d28uwqBTaGUgd2FzIGxpa2UsIOKAnElmIHdlIGRvbuKAmXQgc3RhcnQgYWNjZXB0aW5nIHRoZXNlIHBhdGllbnRzLCBob3cgYXJlIHdlIGV2ZXIgZ29pbmcgdG8gY2hhbmdlIHRoZSBzdGF0dXMgcXVvPyBIb3cgYXJlIHdlIGV2ZXIgZ29pbmcgdG8gbWFrZSBhIGNoYW5nZT/igJ3CoE1lYWdhbjogQm9vbS5NYWN5OiBSaWdodC7CoE1lYWdhbjogSXTigJlzIHNvIHRydWUgdGhvdWdoLsKgTWFjeTogSSB3YXMgbGlrZSwg4oCcT2theS4gU3RhdGlzdGljIG1lLCBwbGVhc2UuIEkgd291bGQgbG92ZSB0byBiZSBhIHN0YXRpc3RpYyBmb3IgdGhlIHBvc2l0aXZlLuKAnSBUaGUgb25seSB0aGluZyB3YXMgSSB3YXMgbGlrZSwg4oCcSSBjYW7igJl0IGJlIG9uZSBmb3IgYSBob3NwaXRhbCBiaXJ0aCwgYnV0IGl04oCZcyBmaW5lLuKAncKgTWVhZ2FuOiBUaGF04oCZcyBva2F5LiBUaGF04oCZcyBva2F5LsKgTWFjeTogU28gSSBmb3VuZCBTYXJhaC4gSSBzdGFydGVkIG15IHZpc2l0cyB3aXRoIGhlci4gSSBoYWQgdG8gdHJhdmVsIGFuIGhvdXIgdG8gbXkgdmlzaXRzLiBJdCB3YXNu4oCZdCB0aGUgd29yc3QgdGhpbmcgZXZlci7CoE1lYWdhbjogVGhhdOKAmXMgYSBjb21taXRtZW50IHRob3VnaC4gVGhhdOKAmXMgYSBjb21taXRtZW50LsKgTWFjeTogVG93YXJkcyB0aGUgZW5kLCBzaGUgY2FtZSB0byBtZSBhIGxvdCBtb3JlIHdoaWNoIHdhcyBzbyBuaWNlLiBTbyBuaWNlLsKgTWVhZ2FuOiBUaGF04oCZcyByZWFsbHkgbmljZS7CoE1hY3k6IFRoZW4gd2UgZGlkIGEgY291cGxlIG9mIHBob25lIGNhbGxzLCBidXQgd2UgYWxzbyB0ZXh0ZWQgYWxsIG9mIHRoZSB0aW1lIGFuZCB3b3VsZCBGYWNlVGltZS4gSXQgd2FzIGp1c3Qgc28gcGVyc29uYWwuIEkgYWxzbyByZWNlaXZlZCBjby1jYXJlIHdpdGggYW5vdGhlciB0aGlyZCBsb2NhbCBwcm92aWRlci4gSSBkaWQgdGhhdCBiZWNhdXNlIG15IG1pZHdpZmUgd2FudGVkIHRvIGhhdmUgbWUgZ2V0IHVsdHJhc291bmRzIHRvIGNoZWNrIG15IHV0ZXJ1cy4gU2hlIHdhbnRlZCB0byBjaGVjayBmb3IgcHJldmlhIGFuZCB3ZSB3YW50ZWQgdG8gY2hlY2sgZm9y4oCTIHdoYXTigJlzIHRoZSBvdGhlciBvbmU/IEnigJltIGJsYW5raW5nLsKgTWVhZ2FuOiBBY2NyZXRhP8KgTWFjeTogWWVzLCBzbyBzaGUganVzdCB3YW50ZWQgdG8gYmUgYXdhcmUuwqBNZWFnYW46IFBsYWNlbnRhbCBpc3N1ZXMgYW5kIG1ha2Ugc3VyZSB0aGUgcGxhY2VudGEgaXMgb3V0IG9mIHRoZSB3YXkgYW5kIGFsbCBpcyBkb2luZyBva2F5LiBZb3XigJlyZSBhY3R1YWxseSBjbGVhciB0byBoYXZlIGEgVkJBQy7CoE1hY3k6IFllYWguwqBNZWFnYW46IFdoaWNoIGlzIHZlcnkgcmVzcG9uc2libGUgb2YgaGVyLsKgTWFjeTogSSByZWNlaXZlZCBteSBjby1jYXJlLiBJIHdvdWxkIGdvIGluIHRoZXJlLiBJIGRvbuKAmXQga25vdy4gSSBhbG1vc3QgaGFkIGEgY2hpcCBvbiBteSBzaG91bGRlciBiZWNhdXNlIEkgd2FzIGxpa2UsIOKAnEkgZG9u4oCZdCByZWFsbHkgbmVlZCB5b3UgZ3V5cyzigJ0ga2luZCBvZi4gSSBkaWRu4oCZdCBsZWF2ZSB0aG9zZSBhcHBvaW50bWVudHMgZmVlbGluZyBsaWtlIEkgd2FudGVkIHRvIGNyeSBsaWtlIEkgZGlkIHdpdGggbXkgc2Vjb25kIHByZWduYW5jeSBiZWNhdXNlIEkga25ldyB0aGF0IEkgaGFkIHNvbWV0aGluZyBiZXR0ZXIgcGxhbm5lZC4gU28gaXQgd2FzbuKAmXQgYXMgdXBzZXR0aW5nLCBidXQgdGhleSB3ZXJlIHByZXR0eSByb3VnaCBvbiBtZS7CoEkgaGFkIGV4cHJlc3NlZCBteSBpbnRlcmVzdCBpbiBhIFZCQUMgYWZ0ZXIgdHdvIGFuZCB5b3UgaGF2ZSB0byBzZWUgdGhlIHNlcmllcyBvZiBwcm92aWRlcnMgd2l0aGluIHRoZSBvZmZpY2UuIEkgaGFkIG9ubHkgb25lIHdobyB3YXMgYSBsaXR0bGUgYml0IHlvdW5nZXIgd2hpY2ggd2FzIGludGVyZXN0aW5nLCBidXQgaGUgd2FzIHRoZSBvbmx5IG9uZSB3aG8gd2FzIGxpa2UsIOKAnFllYWguIEkgcmVhbGx5IHN1cHBvcnQgdGhpcyBhbmQgdGhlIGJpcnRoIHlvdSB3YW50IHRvIGhhdmUuIEnigJltIGdvaW5nIHRvIGdpdmUgeW91IGEgcmVmZXJyYWwgdG8gVUMgU2FuIEZyYW5jaXNjbyBhbmQgd2hlbiB3ZSBnZXQgdG8gdGhlIGVuZCwgSSB3YW50IHlvdSB0byBzdGFydCBjYXJlIHRoZXJlIGFuZCBwbGFuIHRvIGhhdmUgeW91ciBiaXJ0aCB0aGVyZS7igJ3CoEhlIHdhcyB0aGUgb25seSBvbmUgd2hvIHdhcyBsaWtlLCDigJxJIHN1cHBvcnQgdGhlIGJpcnRoIHlvdSB3YW50IHRvIGhhdmUu4oCdIEV2ZXJ5b25lIGVsc2Ugd2FzIHByZXR0eSBhd2Z1bC4gVGhleSB0b2xkIG1lLCDigJxJZiB5b3UgVE9MQUMgYW5kIHlvdXIgdXRlcnVzIHJ1cHR1cmVzLCB5b3Ugd2lsbCBkaWUgYW5kIHlvdXIgYmFieSB3aWxsIGRpZS7igJ3CoEkgd2FzIGxpa2UsIEkgd2lsbCBuZXZlciBmb3JnZXQgZ2V0dGluZyBpbiBteSBjYXIgYW5kIHRleHRpbmcgbXkgbWlkd2lmZSBhbmQgYmVpbmcgbGlrZSwg4oCcQ2FuIHlvdSBiZWxpZXZlIHRoYXQgaGUganVzdCBzYWlkIHRoaXMgdG8gbWU/4oCdIEkgd2FzIGp1c3QgbGlrZSwg4oCcQXJlIHlvdSBHb2Q/IERvIHlvdSBrbm93P+KAnSBIb3cgY291bGQgeW91IHNheSB0aGF0IHRvIHNvbWVvbmU/IOKAnFlvdSB3aWxsIGRpZS7igJ0gQmVjYXVzZSB0aGF04oCZcyBub3QgdGhlIGNhc2UgYXQgYWxsLsKgVGhhdCB3YXMgaW50ZXJlc3RpbmcgYnV0IEkga25ldy4gTGlrZSBJIHNhaWQsIEkga25ldyBJIGhhZCBhIGJhY2t1cCBwbGFuIGluIHRoZSBiYWNrIG9mIG15IG1pbmQuIEl0IHdhcyBqdXN0IGV5ZS1vcGVuaW5nIGZvciBtZSBtb3JlIHRoYW4gYW55dGhpbmcuIEl0IHdhc27igJl0IHVwc2V0dGluZy7CoE1lYWdhbjogU29tZW9uZSB0aGF0IGRvZXNu4oCZdCBuZWNlc3NhcmlseSBrbm93IHRoZSBldmlkZW5jZSBvZiB0aGF0LCBpdCBjYW4gYmUgdGVycmlmeWluZy7CoE1hY3k6IFllYWguIFllcywgdG90YWxseS4gQW5kIHlvdSBrbm93IHdoYXQ/IEl04oCZcyBmcnVzdHJhdGluZyBiZWNhdXNlIGEgbG90IG9mIHBlb3BsZSBqdXN0IHRydXN0IHRoZWlyIHByb3ZpZGVycy4gSeKAmW0gYSB2ZXJ5IHNrZXB0aWNhbCBwZXJzb24uIEnigJltIHZlcnkgY29uc3BpcmF0b3JpYWwsIHNvIEnigJltIGFsd2F5cyByZXNlYXJjaGluZyB0aGluZ3MgYW5kIGxvb2tpbmcgaW50byB0aGluZ3MsIGJ1dCBwZW9wbGUgd2hvIGFyZSBub3QgcHJvbmUgdG8gdGhhdCBhcmUganVzdCBnb2luZyB0byB0cnVzdCB3aGF0IHRoZSBkb2N0b3Igc2F5cyBiZWNhdXNlIHRoZXkgd2VudCB0byBzY2hvb2wgYW5kIHRoZXkgYXJlIHNtYXJ0ZXIgdGhhbiB0aGVtLiBJdOKAmXMgc28gdW5mb3J0dW5hdGUgdGhhdCBpdOKAmXMgY2F1c2luZyBhIGhpZ2ggQy1zZWN0aW9uIHJhdGUgZm9yIG5vIHJlYXNvbi7CoDIzOjI0IFZCQTJDIHByZXAgZHVyaW5nIHByZWduYW5jeU1hY3k6IFRoYXQgd2FzIGEgYnVtbWVyIGJ1dCBhbnl3YXksIHRocm91Z2hvdXQgbXkgcHJlZ25hbmN5LCBJIGRpZCBhbGwgb2YgdGhlIHRoaW5ncy4gSSBkaWQgbXkgVkJBQyBMaW5rIGNvdXJzZS4gSSBsb3ZlZCBpdC4gSXQgd2FzIGdyZWF0IHRvIGhhdmUgdGhhdC4gSSBkaWQgYSBMYW1hemUgY2xhc3Mgd2hpY2ggd2FzIHJlYWxseSBmdW4uIEl0IHdhcyBmdW5ueSBiZWNhdXNlIHdlIHdlcmUgdGhlIG9ubHkgcGFyZW50cyBpbiB0aGVyZSB3aXRoIG90aGVyIGtpZHMuIE9uZSBvdGhlciBsYWR5IHdhcyBhIFZCQUMsIGJ1dCB0aGUgcmVzdCB3ZXJlIGFsbCBmaXJzdC10aW1lIHBhcmVudHMuIFRoZXkgd2VyZSBsaWtlLCDigJxXaGF0IGFyZSB5b3UgZG9pbmcgaGVyZT/igJ0gSeKAmW0gbGlrZSwg4oCcVGhpcyBpcyBuZXcgZm9yIG1lLuKAnSBBZ2Fpbiwgc2hvdXRvdXQgdG8gTW9kZXN0byBCaXJ0aCBhbmQgQmV5b25kLiBUaGV5IGFyZSBmYW50YXN0aWMuIFRoZXkgaGF2ZSBhIGdyZWF0IHNldCBvZiBkb3VsYXMuIEnigJltIG5vdyBvbiBhIGZyaWVuZGx5IGJhc2lzIHdpdGggdGhlbS4gVGhleSB3ZXJlIGdyZWF0IHRvIGhhdmUgYW5kIHRoZXkgd2VyZSByZWFsbHkgc3VwcG9ydGl2ZSBvZiBteSB3aG9sZSBqb3VybmV5LsKgTGV04oCZcyBzZWUgd2hhdCBlbHNlLiBJIGRpZCBhIEh5cG5vYmlydGhpbmcgY2xhc3MuIEkgcmVhZCBJbmEgTWF54oCZcyBHdWlkZSB0byBDaGlsZGJpcnRoLiBJIG1lYW4sIEkgd2Fsa2VkIGFuZCBJIHN0YXllZCBpbiBzaGFwZS4gSSBrZXB0IGRvaW5nIENyb3NzRml0LiBJIGRpZCBDcm9zc0ZpdCBmb3IgYWxsIHRocmVlIG9mIG15IHByZWduYW5jaWVzIHNvIEkga2VwdCBvbi4gSSBhdGUgaGVhbHRoeS4gSSBkcmFuayBsb3RzIG9mIHdhdGVyLiBJIGRpZCBhbGwgb2YgdGhlIHRoaW5ncy4gQnV0IEkga25ldyB0aGF0IHdoZW4gaXQgY2FtZSBkb3duIHRvIGl0LCBteSBtaW5kIHdhcyBnb2luZyB0byBlaXRoZXIgbWFrZSBvciBicmVhayBtZS5GYXN0IGZvcndhcmQgdG8gNDEgd2Vla3MgYW5kIEkgd2FzIGdldHRpbmcgdmVyeSwgdmVyeSBhbnhpb3VzLsKgTWVhZ2FuOiBXZXJlIHlvdSBnZXR0aW5nIGFueGlvdXMgYmVjYXVzZSB5b3Ugd2VyZSBnZXR0aW5nIHJlYWR5IHRvIGhhdmUgYSBiYWJ5IHR5cGUgdGhpbmcgb3Igd2VyZSBwZW9wbGUgZ2l2aW5nIHlvdSBzb21lIGdyaWVmIHRoYXQgeW91IHdlcmUgb3ZlciA0MCB3ZWVrcz8gTWFjeTogQnkgdGhlIHRpbWUgSSB3YXMgNDAtNDEgd2Vla3MsIHRoZSBncmllZiBhbmQgdGhlIGRvdWJ0IGFuZCB0aGUgbmF5c2F5ZXJzIHRoYXQgSSBnb3Qgd2VyZSBraW5kIG9mIGdvbmUuIE1vc3Qgb2YgdGhlIHBlb3BsZSBpbiBteSBsaWZlIHdlcmUgc3VwcG9ydGl2ZS4gSSBhbHdheXMgZ290IHRoYXQgcXVlc3Rpb24gb2YsIOKAnFdoYXQgaWYgdGhpcyBoYXBwZW5zP+KAnSBJIGxpdmUgNSBtaW51dGVzIGZyb20gdGhlIGhvc3BpdGFsLCBzbyBJIHdhcyBub3QgdG9vIHdvcnJpZWQgYWJvdXQgaXQuIEkgd2FzIG1vcmUgYW54aW91cyBvZiwgSSB3YXMgcmVhZHkgdG8gbWVldCB0aGlzIGJhYnkuIEkgd2FzIHRoZSBiaWdnZXN0IEnigJlkIGV2ZXIgYmVlbi4gVGhpcmQgYmFieSwgb25seSAxNyBtb250aHMgYXBhcnQuIE15IGJlbGx5IHdhcyBodWdlLiBJdCB3YXMgaG90LiBJIHdhcyBzd2VsbGluZy4gSSB3YXMgcmVhZHkgdG8gYmUgZG9uZSwgYnV0IEkgYWxzbyBoYWQgbmV2ZXIgbGFib3JlZCBiZWZvcmUuwqBJIGhhZCBubyBjbHVlIHdoYXQgbXkgYm9keSB3YXMgZ29pbmcgdG8gZG8uIFdhcyBJIGp1c3QgZ29pbmcgdG8gZ28gaW50byBzcG9udGFuZW91cyBsYWJvciBhdCA0MCB3ZWVrcz8gQXQgMzk/IEkgaGFkIG5vIGlkZWEuIFNvIGV2ZXJ5IGRheSB0aGF0IHBhc3NlcywgSeKAmW0gc3VyZSB5b3UgcmVtZW1iZXIgdGhhdCB0b28sIGV2ZXJ5IGRheSB3YXMgYSB3aG9sZSB3ZWVrIHdoZXJlIHlvdSB3YWtlIHVwIGluIHRoZSBtb3JuaW5nIGFuZCBJIHdvdWxkIGp1c3QgY3J5LCDigJxJIGNhbuKAmXQgYmVsaWV2ZSBJ4oCZbSBzdGlsbCBwcmVnbmFudC7igJ3CoE1lYWdhbjogSSByZW1lbWJlciBnb2luZyB0byBiZWQgYW5kIEkgd2FzIGxpa2UsIOKAnFRvbmlnaHQgY291bGQgYmUgdGhlIG5pZ2h0LOKAnSBhbmQgdGhlbiBJ4oCZZCB3YWtlIHVwIGFuZCBJIHdhcyBsaWtlLCDigJxJdCB3YXNu4oCZdCB0aGUgbmlnaHQs4oCdIHRoZW4gdGhhdCBuaWdodCwgSeKAmWQgYmUgbGlrZSwg4oCcTWF5YmUgdG9uaWdodCzigJ0gYW5kIGl0IGp1c3Qga2VwdCBoYXBwZW5pbmcuwqBNYWN5OiBTbyBhbm5veWluZy4gSSBoYWQgc28gbXVjaCBwcm9kcm9tYWwgbGFib3IuIEkgaGFkIGNvbnRyYWN0aW9ucy4gSSBjb3VsZCB0aW1lIHRoZW0gYW5kIEkgd2FzIGxpa2UsIOKAnE9oLCB0aGV5IGFyZSAyMCBtaW51dGVzIGFwYXJ0LiBUaGV5IGFyZSBmb3Igc3VyZSBnb2luZyB0byBnZXQgY2xvc2VyLOKAnSB0aGVuIEnigJlkIGdvIHRvIHNsZWVwLCB3YWtlIHVwLCBhbmQgYmUgbGlrZSwg4oCcT2theS4gSGVyZSB3ZSBnbyBhZ2Fpbi7igJ3CoExldOKAmXMgc2VlLiBTbyBvbiBhIE1vbmRheSwgSSBkaWQgYWN1cHVuY3R1cmUuIFRoZW4gb24gYSBXZWRuZXNkYXkgbW9ybmluZywgSSB3YXMgNDEgd2Vla3MgYW5kIEkgd2VudCBhbmQgZ290IGEgbWFzc2FnZS4gSSBnb3Qgc29tZSBhY3VwcmVzc3VyZS4gWW91IG5ldmVyIGtub3cgaWYgdGhlc2UgYXJlIHRoZSB0aGluZ3MgdGhhdCByZWFsbHkgZ2V0IHRoaW5ncyBnb2luZywgYnV0IHNvbWV0aW1lcyB0aGV5IGRvLiBJIGdvdCBhIG1hc3NhZ2UgYW5kIHNoZSBnYXZlIG1lIHNvbWUgbW94aWJ1c3Rpb24gc28gSSBkaWQgdGhhdC4gWW91IGxpZ2h0IGl0IGFuZCBkbyBpdCBhcm91bmTigJMgbXkgbW9tIHdhcyBsaWtlLCDigJxUaGlzIGlzIHNvIGhva2V5LuKAnSBJ4oCZbSBsaWtlLCDigJxJZiBpdCB3b3Jrcywgd2hvIGNhcmVzP+KAnSBJIHdhcyB0cnlpbmcgZXZlcnl0aGluZy7CoEJ1dCBJIGRpZG7igJl0IHdhbnQgdG8gYmUgaW5kdWNlZCBhbmQgSSBoYWRu4oCZdCBoYWQgbXkgbWVtYnJhbmVzIHN3ZXB0IHlldC4gVGhhdCB3YXMgZ29pbmcgdG8gYmUgdGhlIGZpcnN0IGludGVydmVudGlvbiB0aGF0IG15IG1pZHdpZmUgYW5kIEkgYWdyZWVkIG9uIGJlY2F1c2Ugc2hlIHdhcyBsaWtlLCDigJxMZWdhbGx5IGluIENhbGlmb3JuaWEsIHlvdSBjYW7igJl0IGdvIHBhc3QgNDIgd2Vla3MgYW5kIGhhdmUgYSBob21lIGJpcnRoLuKAnSBJIHdhcyBsaWtlLCDigJxPa2F5LiBJ4oCZdmUgZ290IG9uZSB3ZWVrLiBPbmUgd2VlayBhbmQgdGhpcyBiYWJ5IHdpbGwgYmUgaGVyZS7igJ3CoDI3OjQ2IExhYm9yIGJlZ2luc01hY3k6IFRoYXQgV2VkbmVzZGF5IG1vcm5pbmcsIEkgd2VudCBhbmQgZ290IG15IG1hc3NhZ2UgYW5kIGJ5IDI6MDAgaW4gdGhlIGFmdGVybm9vbiwgSSB3YXMgbGlrZSwg4oCcT2theS4gVGhpbmdzIGFyZSBzdGFydGluZyB0byBwaWNrIHVwLuKAnSBJIHN0YXJ0ZWQgaGF2aW5nIHByZXR0eSBpbnRlbnNlIGNvbnRyYWN0aW9ucy4gSSB3YXMgaGF2aW5nIHRv4oCTIEkgY291bGQgc3RpbGwgdGFsay4gSSB3YXMgc3RpbGwgdGFraW5nIGNhcmUgb2YgbXkgdHdvIGxpdHRsZSBnaXJscywgYnV0IEkgd2FzIHN0YXJ0aW5nIHRvIGZlZWwgcmVhbGx5IHVuY29tZm9ydGFibGUuIE15IG1vbSB3ZW50IGhvbWUsIHRoZW4gc2hlIGNhbWUgYmFjay4gTXkgaHVzYmFuZCBnZXRzIG9mZiB3b3JrIGF0IDM6MzAgYW5kIGl0IHdhcyAyOjMwLiBJIHdhcyBmZWVkaW5nIG15IHlvdW5nZXN0IG9uZSBhIHNuYWNrIGFuZCBoZSB3YXMgbGlrZSwg4oCcRG8geW91IHdhbnQgbWUgdG8gY29tZSBob21lIGVhcmx5P+KAnSBJIHdhcyBsaWtlLCDigJxObywgSSBjYW4gdG90YWxseSBtYWtlIGl0IHVudGlsIHlvdSBnZXQgaG9tZS7igJ3CoEkgaGFkIGEgY29udHJhY3Rpb24gd2hlcmUgSSBsZWFuZWQgb3ZlciBteSBraXRjaGVuIGNvdW50ZXIsIGFuZCB0aGVuIEkgd2FzIGxpa2UsIOKAnE9rYXkuIE1heWJlIGp1c3QgY29tZSBob21lIG5vdy7igJ0gSGUgY2FtZSBob21lLiBJIGp1c3QgZGlkbuKAmXQgZmVlbCBpdC4gSSB3YXMgc3RhcnRpbmcgdG8gZmVlbCBpcnJpdGF0ZWQgYnkgbXkga2lkcyBhbmQgSSB3YXMgbGlrZSwg4oCcSSBqdXN0IHdhbnQgdG8gZ28gaW4gbXkgcm9vbSBhbmQgd2F0Y2ggYSBzaG93IG9uIG15IGxhcHRvcC4gSSBqdXN0IHdhbnQgdG8gYmUgYWxvbmUu4oCdIEkgZGlkbuKAmXQgbmVjZXNzYXJpbHkgd2FudCB0aGVtIHRvIGxlYXZlIHlldCwgYnV0IEkgd2FudGVkIHRvIGJlIGFsb25lIGFuZCBJIHdhbnRlZCB0byBrbm93IHRoYXQgdGhleSB3ZXJlIHRha2VuIGNhcmUgb2YuwqBIZSBjYW1lIGhvbWUgYW5kIGhlIHdhcyB0YWtpbmcgY2FyZSBvZiB0aGVtLiBIZSB3YXMgbGlrZSwg4oCcRG8geW91IHRoaW5rIHRoaXMgaXMgaXQ/IExldOKAmXMgY2FsbCBteSBtb20u4oCdIEkgd2FzIGxpa2UsIOKAnFllYWguIEkgdGhpbmsgdGhpcyBpcyBoYXBwZW5pbmcgYW5kIEkgdGhpbmsgaXTigJlzIGdvaW5nIHRvIGJlIHNvb24u4oCdIEkganVzdCBkaWRu4oCZdCBrbm93IGhvdyBsb25nIEkgd2FzIGdvaW5nIHRvIGxhYm9yLiBJdCB3YXMgYSBteXN0ZXJ5LsKgTXkgbW90aGVyLWluLWxhdyBjYW1lIGFuZCBwaWNrZWQgdXAgbXkgbGl0dGxlIHR3byBkYXVnaHRlcnMuIFRoYXQgd2FzIGtpbmQgb2Ygc2FkIHdhdGNoaW5nIHRoZW0gbGVhdmUga25vd2luZyB0aGUgbmV4dCB0aW1lIEkgc2F3IHRoZW0sIHdlIHdlcmUgZ29pbmcgdG8gYmUgYSBkaWZmZXJlbnQgZmFtaWx54oCTIGEgYmV0dGVyIGZhbWlseSwgYnV0IGEgZGlmZmVyZW50IGZhbWlseS4gWWVhaC4gSSBqdXN0IGxhYm9yZWQgYXQgaG9tZS4gSXQgd2FzIHNvIG5pY2Ugbm90IGhhdmluZyB0byBnbyBhbnl3aGVyZS4gSSB0b29rIGEgc2hvd2VyLiBJIGhhZCBzb21lIHNuYWNrcy4gSSB3YXNu4oCZdCBzdXBlciBodW5ncnksIGJ1dCBJIGRlZmluaXRlbHkgc3RhcnRlZCBkcmlua2luZyBteSBlbGVjdHJvbHl0ZXMgYW5kIHN0YXJ0ZWQgcHJlcGFyaW5nIHRvIGJlIGh5ZHJhdGVkLsKgTWVhZ2FuOiBTbWFydC7CoE1hY3k6IEkgd2FzIGxpa2UsIOKAnEnigJltIHByZXBhcmluZyB0byBydW4gYSBtYXJhdGhvbiBzbyBJIG5lZWQgdG8gZ2VhciB1cC7igJ0gSSBkaWRu4oCZdCBuYXAuIEnigJl2ZSBuZXZlciBiZWVuIGEgZ3JlYXQgbmFwcGVyLCBidXQgSSBsYWlkIGFyb3VuZCBhbmQgd2F0Y2hlZCBzb21lIHNob3dzLCB0aGVuIEkgZGlkbuKAmXQgdGV4dCBteSBtaWR3aWZlIHJpZ2h0IGF3YXkgYmVjYXVzZSBJIGhhZCBiZWVuIGJ1Z2dpbmcgaGVyIHNvIG11Y2ggd2l0aCBhbGwgb2YgbXkgcHJvZHJvbWFsIGxhYm9yIHRoYXQgSSB3YXMgbGlrZSwg4oCcSeKAmW0gbm90IGdvaW5nIHRvIHRleHQgaGVyIHVudGlsIGl04oCZcyByZWFsbHkgaGFwcGVuaW5nLuKAnSBCdXQgYnkgNjowMCBvciA3OjAwIFBNLCBpIHRleHRlZCBoZXIgYW5kIHdhcyBsaWtlLCDigJxKdXN0IHNvIHlvdSBrbm93LCBteSBjb250cmFjdGlvbnMgYXJlIGFib3V0IDEwIG1pbnV0ZXMgYXBhcnQu4oCdwqBBcyB0aGV5IGdvdCBjbG9zZXIsIHNoZSB3YXMgbGlrZSwg4oCcT2theS4gSeKAmW0gZ29pbmcgdG8gY29tZSBub3cu4oCdwqBPbmNlIHRoZSBzdW4gc3RhcnRlZCBzZXR0aW5nLCBpdCB3YXMgZ2V0dGluZyBhIGxpdHRsZSBiaXQgbW9yZSBpbnRlbnNlLiBXZSBzZXQgdXAgbXkgYmlydGggc3BhY2UgYXQgaG9tZS4gSSBzZXQgdXAgbXkgcG9vbC4gV2VsbCwgSSBkaWRu4oCZdC4gTXkgaHVzYmFuZCBzZXQgdXAgdGhlIHBvb2wgYW5kIHdlIGxhaWQgb3V0IGFsbCBvZiB0aGUgc2hlZXRzIG9uIHRoZSBjb3VjaCBhbmQgaHVuZyBteSBiaXJ0aCBhZmZpcm1hdGlvbnMuIEFjdHVhbGx5LCB0aGV5IGhhZCBiZWVuIGhhbmdpbmcuIE15IGJpcnRoIGFmZmlybWF0aW9ucyBoYWQgYmVlbiBoYW5naW5nIGZvciBhIGNvdXBsZSBvZiB3ZWVrcyBzbyBJIHN0YXJ0ZWQgaGF2aW5nIHRoZW0gbWVtb3JpemVkLCBidXQgd2UgdHVybmVkIG9uIHRoZSB0d2lua2xlIGxpZ2h0cyBhbmQgSSBzdGFydGVkIGxpc3RlbmluZyB0byB0aGUgQ2hyaXN0aWFuIEh5cG5vQmlydGhpbmcgYXBwIHdoaWNoIHdhcyBmYW50YXN0aWMuwqBJIGp1c3QgaGFkIHN1Y2ggYSBwZWFjZWZ1bCBsYWJvci4gSSBkb27igJl0IGtub3cgaG93IGVsc2UgdG8gZGVzY3JpYmUgaXQuIE15IG1vbSBjYW1lIGluIGFuZCB0aGVuIG15IHNpc3Rlci1pbi1sYXcgY2FtZSBvdmVyIHRoZW4gbXkgb3RoZXIgc2lzdGVyLWluLWxhdyBjYW1lIG92ZXIuIFRoZXkganVzdCB0YWxrZWQgYXJvdW5kIG1lLiBJIGNvdWxkIGhlYXIgdGhlbSwgYnV0IEkgd2FzIGp1c3QgaW4gbXkgc3BhY2UuIEkgbGFib3JlZCBhbmQgbXkgd2F0ZXIgbmV2ZXIgYnJva2UgZm9yIGEgdmVyeSBsb25nIHRpbWUuIEkgZ290IGluIHRoZSBwb29sIGF0IG9uZSBwb2ludCBhbmQgdGhlbiBJIGdvdCBiYWNrIG91dCBiZWNhdXNlIG15IGh1c2JhbmQgd2FzIGxpa2UsIOKAnEkgdGhpbmsgdGhhdCBiZWluZyBpbiB0aGUgcG9vbCBpcyBzbG93aW5nIGRvd24geW91ciBjb250cmFjdGlvbnMgYSBsaXR0bGUgYml0LiBJIHdhbnQgeW91IHRvIGdldCBvdXQgYW5kIHdhbGsu4oCdIEkgZ290IG91dCBhbmQgc3RhcnRlZCB3YWxraW5nIGRvd24gdGhlIGhhbGwgdGhlbiBJIGdvdCByZWFsbHkgc2ljayB3aXRoIGEgY29udHJhY3Rpb24uIEkgaGFwcGVuZWQgdG8gYWxyZWFkeSBiZSBsYWJvcmluZyBiYWNrd2FyZHMgb24gdGhlIHRvaWxldCBhbmQgSSB3YXMgbGlrZSwg4oCcT2ggbXkgZ29zaC4gSeKAmW0gZ29pbmcgdG8gdGhyb3cgdXAu4oCdIEkganVtcGVkIGJhY2sgb2ZmIHRoZSB0b2lsZXQgc28gSSBjb3VsZCB0aHJvdyB1cCBpbiBpdCB0aGVuIG15IG1pZHdpZmUgd2FzIGxpa2UsIOKAnE9rYXkuIFlvdeKAmXJlIGluIHRyYW5zaXRpb24gbm93LiBZb3XigJl2ZSBnb3QgdG8gYmUu4oCdIEkgaGFkbuKAmXQgaGFkIGFueSBjaGVja3MgYXQgYWxsIHRoaXMgd2hvbGUgdGltZSBlaXRoZXIgdG9vIHNvIEkgaGFkIG5vIGNsdWUgd2hhdCBJIHdhcyBldmVuIGRpbGF0ZWQgYXQuIEkgd2FzIGp1c3QgY29tcGxldGVseSB0cnlpbmcgdG8gdHJ1c3QgbXkgYm9keSBhbmQganVzdCBrbm93IHRoYXQgd2hlbiBpdCB3YXMgdGltZSwgaXQgd291bGQgYmUgdGltZS4gSXQgcmVhbGx5IHdhcy4gTXkgYm9keSBqdXN0IGRpZCB3aGF0IGl0IGtuZXcgdG8gZG8uwqAzMjo0MiBCcmVha2luZyBoZXIgb3duIHdhdGVyIGFuZCBwdXNoaW5nIGZvciAxNyBtaW51dGVzTWFjeTogTGlrZSBJIHNhaWQgZWFybGllciwgSSBmZWx0IGhlciBtb3ZlIGludG8gcG9zaXRpb24uIEkgZ290IGJhY2sgaW4gdGhlIHdhdGVyIGFuZCBJIGZlbHQgc28gcmVsYXhlZCBpbiB0aGUgd2F0ZXIuIEkgd2FzIGRyaWZ0aW5nIG9mZiBpbiBiZXR3ZWVuIGNvbnRyYWN0aW9ucy7CoE1lYWdhbjogT2gsIHRoYXTigJlzIGF3ZXNvbWUuwqBNYWN5OiBJdCB3YXMgc28gY2FsbSBhbmQgSSBqdXN0IGtlcHQgdGVsbGluZyBteXNlbGYsIOKAnEJyZWF0aGUgaGVyIGRvd24gd2l0aCBldmVyeSBjb250cmFjdGlvbizigJ0gYW5kIGp1c3QgYWxsIG9mIHRoZSB0aGluZ3MgSSBoYWQgYmVlbiBwcmFjdGljaW5nLCBJIHdhcyBmaW5hbGx5IGFibGUgdG8gcHV0IGludG8gdXNlLsKgVGhhdCB3YXMgcmVhbGx5IGNvb2wsIHRoZW4gSSBoYWQgYSBjb3VwbGUgb2YgdXJnZXMgd2hlcmUgSSB3YXMgbGlrZSwg4oCcSSBmZWVsIGxpa2UgSSBjYW4gc3RhcnQgcHVzaGluZyBzb29uLuKAnSBJIHdhcyBsaWtlLCDigJxEbyB5b3Ugd2FudCB0byBjaGVjayBtZSBub3c/4oCdIEFzIHNvb24gYXMgc2hlIHN0dWNrIGhlciBmaW5nZXIsIEkgd2FzIGxpa2UsIOKAnE9oLCBuby4gTm8uIEdldCB5b3VyIGZpbmdlciBvdXQuIEl04oCZcyB0aW1lLiBTaGXigJlzIGNvbWluZy7igJ3CoFNoZSB3YXMgbGlrZSwg4oCcWWVhaC4gU2hl4oCZcyByZWFkeS4gU2hl4oCZcyByaWdodCB0aGVyZSwgYnV0IHlvdXIgd2F0ZXJzIGhhdmVu4oCZdCBicm9rZW4geWV0LuKAnSBJIHdhcyBsaWtlLCDigJxDYW4gSSBicmVhayB0aGVtIG15c2VsZj/igJ0gU2hlIHdhcyBsaWtlLCDigJxZZWFoLOKAnSBzbyBJIHJlYWNoZWQgaW4uIEkgZ2F2ZSBpdCBhIHBpbmNoLXR3aXN0IGFuZCBpbiB0aGUgd2F0ZXIsIEkgYnJva2UgaXQuwqBNZWFnYW46IE9oIG15IGdvc2gsIHRoYXTigJlzIHNvIGNvb2wuwqBNYWN5OiBJIGZlbHQgdGhlIHBhZGRpbmcgYXJvdW5kIGhlciBoZWFkLCB0aGVuIEkganVzdCBmZWx0IGhlciBoZWFkLiBJIGZlbHQgaGVyIGhhaXIuIEkgc3RhcnRlZCBwdXNoaW5nIHdoZW4gaXQgd2FzIHRpbWUgdG8gcHVzaCBhbmQgSSBwdXNoZWQgZm9yIDE3IG1pbnV0ZXMuIEl0IHdhcyBwZXJmZWN0LiBMaWtlIEkgc2FpZCwgSSBmZWx0IGhlciBtb3ZlIGFuZCBnZXQgaW50byBwb3NpdGlvbi4gU2hlIGNhbWUgb3V0IGFuZCBzaGUgd2FzIDkgcG91bmRzLCAxMiBvdW5jZXMgc28gc2hlIHdhcyAzIHBvdW5kc+KAk8KgTWVhZ2FuOiBJIHdhcyBnb2luZyB0byBzYXkgNmxiLDE1b3osIHJpZ2h0LCB3YXMgeW91ciBzZWNvbmQgYW5kIGNsb3NlIHRvIHlvdXIgZmlyc3Q/TWFjeTogMyBwb3VuZHMgaGVhdmllciB0aGFuIG15IG90aGVyIHR3by4gU2hlIGNhbWUgb3V0LiBTaGUgZGlkIHBlcmZlY3RseS4gSGVyIGhlYXJ0IHJhdGUgd2FzIHBlcmZlY3QgdGhlIHdob2xlIHRpbWUuIFNoZSBjYW1lIG91dCBtYWQsIHNjcmVhbWluZyBtYWQuIFNoZSB3YXMgc28gY296eSBpbiB0aGVyZS4gU2hlIGRpZCBub3Qgd2FudCB0byBjb21lIG91dC4gU2hlIGNhbWUgb3V0IGJ1dCBoZWFyaW5nIGhlciBjcnkgd2l0aGluIDIwIHNlY29uZHMgd2FzIHNvIHJlYXNzdXJpbmcuIFNoZSB3YXMgc2FmZS4gSSBkaWRu4oCZdCBuZWVkIGFueWJvZHkuIEkganVzdCBuZWVkZWQgdG8gdHJ1c3QgbXkgYm9keSBhbmQgdG8gdHJ1c3QgdGhlIExvcmQuIE15IG1pZHdpZmUgd2FzIGxpa2UsIOKAnFRoYXQgd2FzIG9uZSBvZiB0aGUgbW9zdCBwZXJmZWN0IGJpcnRocyBJIGhhdmUgZXZlciBhdHRlbmRlZC7igJ0gU2hlIHdhcyBiZWFtaW5nIHdpdGggam95IGFuZCBzaGUgd2FzIHNvIGV4Y2l0ZWQgZm9yIG1lLiBTaGUgd2FzIGp1c3Qgc28gaGFwcHkgYmVjYXVzZSBzaGUgd2FzIGxpa2UsIOKAnEnigJl2ZSBuZXZlciBkb25lIHRoaXMgYWZ0ZXIgdHdvLuKAnSBTaGUgd2FzIGxpa2UsIOKAnFlvdSBjaGFuZ2VkIGV2ZXJ5dGhpbmcgSSB0aG91Z2h0IEkga25ldyBhYm91dCBob21lIGJpcnRoLCBhYm91dCBhZnRlciB0d28gQy1zZWN0aW9ucy7igJ0gU2hlIGV2ZW4gbm93IGhhcyBhbm90aGVyIGNsaWVudCB3aGljaCBpcyBncmVhdCB3aG8gaXMgYSBWQkEyQy4gSSBjYW5ub3Qgd2FpdCBmb3IgdGhpcyBwb2RjYXN0IHRvIGNvbWUgb3V0IHNvIEkgY2FuIHNoYXJlIGl0IHdpdGggbXkgbWlkd2lmZSBhbmQgc2hlIGNhbiBzaGFyZSBpdCB3aXRoIGhlciBuZXcgY2xpZW50LiBIb3BlZnVsbHksIHRoZXkgaGF2ZSBhIHJlYWxseSBncmVhdCBiaXJ0aCB0b28uwqBBbGwgaW4gYWxsLCBpdCB3YXMganVzdCBldmVyeXRoaW5nIEkgZHJlYW1lZCBvZi4gSSB3YXMgc28gdGhhbmtmdWwgYW5kIEkganVzdCByZW1lbWJlciBsYXlpbmcgdGhlcmUgd2l0aCBoZXIgb24gbXkgY2hlc3QuIEkgd2FzIHdhdGNoaW5nIHRoZSB2aWRlbyBsYXN0IG5pZ2h0IHRyeWluZyB0byBnZXQgaW4gdGhlIG1pbmRzZXQgYW5kIHJlbWluZCBteXNlbGYgYW5kIGdldCB0aGVyZS4gT24gdGhlIHZpZGVvLCBJIGNhbiBoZWFyIG15c2VsZiBnbywg4oCcSeKAmW0gc28gZnJlYWtpbmcgcHJvdWQgb2YgbXlzZWxmLuKAncKgTWVhZ2FuOiBZb3Ugc2hvdWxkIGJlIU1hY3k6IEkgd2FzIGJlYW1pbmcgd2l0aCBqb3kuIEkgd2FzIGxpa2UsIOKAnFRoYXQgd2FzIHNvIGhhcmQgYnV0IHNvIHdvcnRoIGl0LuKAnSBTbyBpdCB3YXMgZ3JlYXQuIEl0IHdhcyBhIGdyZWF0IGV4cGVyaWVuY2UuIEkgY291bGQgbm90IGJlIG1vcmUgaGFwcHkgd2l0aCBoZXIgYmlydGguIFNoZeKAmXMgYSBncmVhdCBiYWJ5LiBTaGXigJlzIHNvIGhhcHB5LiBTaGUgd2FzIGEgbGl0dGxlIGhhcmQgYXQgZmlyc3QgZm9yIDEwIHdlZWtzIHdoaWNoIHdhcyBkaWZmZXJlbnQgZm9yIG1lLCBidXQgYWZ0ZXIgdGhhdCAxMC13ZWVrIGh1bXAsIHNoZSB3YXMgYSByZWFsbHkgZ29vZCBiYWJ5LiBIZXIgbmFtZSBpcyBMdWNpbGxlLsKgTWVhZ2FuOiBDdXRlLsKgTWFjeTogV2UgY2FsbCBoZXIgTHVjeSB3aGljaCBtZWFucyDigJxsaWdodOKAnSBhbmQgc2hlIGlzIHRoZSBsaWdodCBvZiBvdXIgbGl2ZXMuIFNoZSBpcyB0aGUgYmVzdCBhbmQgSSBjYW7igJl0IGV2ZW4gYmVsaWV2ZSB3ZSBoYWQgYSBmYW1pbHkgd2l0aG91dCBoZXIgZm9yIGEgbWludXRlIHRoZXJlLiBCdXQgdGhhdOKAmXMgbXkgc3RvcnkuwqAzNjo0NyBBQ09H4oCZcyBzdGF0ZW1lbnQgb24gVkJBMkNNZWFnYW46IE9oIG15IGdvc2guIEl0IGlzIHNvIGJlYXV0aWZ1bC4gSXQgaXMgc28gcGVhY2VmdWwuIEl0IHNvdW5kcyBsaWtlIG9uZSBvZiB0aG9zZSBiaXJ0aHMgd2hlcmUgeW91IHJlYWxseSBkby4gWW91IGNsb3NlIHlvdXIgZXllcyBhbmQgeW91IGp1c3QgZW52aXNpb24gYmlydGggYW5kIGhvdyBwZWFjZWZ1bCBhbmQgYmVhdXRpZnVsIGFuZCBjYWxtIGl0IHJlYWxseSBjYW4gYmUuIFRvIG1lLCB5b3UganVzdCBkZXNjcmliZWQgdGhlIGJpcnRoIHRoYXQgeW91IHBoeXNpY2FsbHkgZGlkIHdpdGggb25lIHRoYXQgSSB3b3VsZCBpbWFnaW5lLsKgTWFjeTogWWVzLiBJdOKAmXMgaG93IGl0IGZlbHQuIE15IHNpc3RlcnMtaW4tbGF3IGFuZCBteSBvdGhlciBnaXJsZnJpZW5kIHdobyB3YXMgdGhlcmUgdGFraW5nIHBpY3R1cmVzIGp1c3Qga2VwdCBzYXlpbmcsIOKAnFlvdSBkaWQgc28gZ29vZC7igJ0gSSB3YXMganVzdCBsaWtlLCDigJxJIGRvbuKAmXQga25vdyB3aGF0IHRoYXQgbWVhbnMu4oCdIEJ1dCBldmVyeW9uZSB3YXMgcHJvdWQgb2YgaG93IGl0IGFsbCB3ZW50LiBJIHRoaW5rIHRoYXTigJlzIHNvIHN1cGVyIHJldm9sdXRpb25hcnkuIEkgaG9wZSBteSBzdG9yeSB0b3VjaGVzIG90aGVyIHBlb3BsZeKAmXMgbGl2ZXMuwqBNZWFnYW46IEl0IHRvdGFsbHkgd2lsbC4gSeKAmW0gc28gaGFwcHkgdGhhdCB5b3UgZm91bmQgeW91ciBtaWR3aWZlIGFuZCB0aGF0IHlvdXIgbWlkd2lmZSB3YXMgd2lsbGluZyB0byB0YWtlIHlvdSBvbiBiZWNhdXNlIGEgbG90IG9mIHRoZSB0aW1lLCBwcm92aWRlcnMgY2FuIGJlIG5lcnZvdXMgaWYgdGhleSBoYXZlIG5ldmVyIGRvbmUgaXQgYmVmb3JlLsKgTWFjeTogV2hpY2ggSSBnZXQuwqBNZWFnYW46IE9oIHllYWguIEZvciBzdXJlLCBmb3Igc3VyZS4gSeKAmW0ganVzdCBzbyBnbGFkIHRoYXQgc2hlIHdhcyB3aWxsaW5nLiBUaGF04oCZcyBvbmUgb2YgdGhlIHRoaW5ncyB0aGF0IGdldHMgbWUgc29tZXRpbWVzIHdpdGggc28gbWFueSBwZW9wbGUgd2hvIGp1c3QgYXJlIG5vdCwgd2UgaGF2ZSB0byByZXNwZWN0IHRoZW0gYW5kIHdoYXQgdGhleSBhcmUgY29tZm9ydGFibGUgd2l0aC4gQnV0IHJlYWxseSwgdGhlIGV2aWRlbmNlIGRvZXMgc2hvdyB0aGF0IFZCQUMgYWZ0ZXIgdHdvIENlc2FyZWFucyBpcyByZWFzb25hYmxlLiBUaGUgb3ZlcmFsbCByaXNrIGFuZCByYXRlIG9mIHJ1cHR1cmUgaXMgYXBwcm94aW1hdGVseSAxLjQlIHNvIGl04oCZcyBzdGlsbCB2ZXJ5IGxvdy4gSXTigJlzIHN0aWxsIHZlcnksIHZlcnkgbG93LsKgSSBtZWFuLCBBQ09HIHRoZW1zZWx2ZXMsIHRoZSBBbWVyaWNhbiBDb2xsZWdlIG9mIE9ic3RldHJpY2lhbnMgYW5kIEd5bmVjb2xvZ2lzdHMsIHRoZXkgc3VnZ2VzdCBpdC4gVGhleSBzYXkgaXTigJlzIGEgY29tcGxldGVseSByZWFzb25hYmxlIG9wdGlvbiBzbyBmb3Igc28gbWFueSBwZW9wbGUgdG8gYmUgY3V0IG9mZiBhZnRlciBvbmUgaXMgaGVhcnRicmVha2luZyBiZWNhdXNlIHRoZXJlIGFyZSBzbyBtYW55IHBlb3BsZSB3aG8gY291bGQgaGF2ZSBhIHZhZ2luYWwgYmlydGggYWxsIG92ZXIgdGhlIHdvcmxkIGJ1dCBhcmVu4oCZdCBnaXZlbiB0aGUgb3B0aW9uLiBXZSBoYXZlIGEgaGlnaCBDZXNhcmVhbiByYXRlLiBXZSBoYXZlIHNvIG1hbnkuwqBUaGVyZSBhcmUgc28gbWFueSBwZW9wbGUuIEp1c3QgYWN0dWFsbHkgd2VpcmRseSBlbm91Z2ggYXQgdGhlIGd5bSwgYSBtYW4gd2hvIGlzIHRoZSBkYXJuZGVzdCBjdXRlc3QgdGhpbmcgZXZlciwgaGlzIG5hbWUgaXMgUm9iaW4gYW5kIGhlIHdpbGwgYWx3YXlzIHNheSBoaSB0byBtZSBhbmQgY2hlY2sgaW4gb24gbWUgYW5kIGhvdyBJ4oCZbSBkb2luZy4gSGUga25vd3MgdGhhdCBJIGN5Y2xlIGFuZCBvbmUgb2YgdGhlIHRoaW5ncyBoZSBhc2tlZCB0aGUgb3RoZXIgZGF5IHdhcywg4oCcSG934oCZcyB0aGF0IGRvdWxhIHRoaW5nIGNvbWluZz/igJ0gSSBzYWlkLCDigJxJdOKAmXMgcmVhbGx5IGdyZWF0LuKAnSBIZSBzYWlkLCDigJxJIG5ldmVyIGFza2VkIHlvdS4gV2hhdCBtYWRlIHlvdSB3YW50IHRvIGJlY29tZSBhIGRvdWxhP+KAnSBJIGp1c3QgdG9sZCBoaW0gbXkgc3RvcnkgYW5kIGhlIHNhaWQsIOKAnE9oLCBzbyB5b3UgaGFkIHR3byBDLXNlY3Rpb25zP+KAnSBIaXMgZXllcyB3ZXJlIHdpZGUuIEhlIHNhaWQsIOKAnEJ1dCB5b3Ugc2FpZCB5b3UgaGF2ZSB0aHJlZSBraWRzLuKAnSBJIHNhaWQsIOKAnFllYWgu4oCdIEhlIGdvZXMsIOKAnEJ1dCB5b3Ugb25seSBoYWQgdHdvIEMtc2VjdGlvbnM/4oCdIEkgc2FpZCwg4oCcWWVhaC7igJ0gSSBzYWlkLCDigJxXaXRoIG15IGZpcnN0IHR3byBnaXJscy7igJ0gSGUgd2FzIGxpa2UsIOKAnFdhaXQu4oCdIEhlIGxpdGVyYWxseSB3YXMgc3R1bXBlZCB0aGVyZSBmb3IgYSBtaW51dGUuwqBNYWN5OiBZZWFoLCBwZW9wbGUgZG9u4oCZdCBrbm93LsKgTWVhZ2FuOiBIZSBzYWlkLCDigJxZb3UgaGFkIGEgbm9ybWFsIGJpcnRoIGFmdGVyIHR3byBDLXNlY3Rpb25zP+KAnSBJIHNhaWQsIOKAnFllcy7igJ0gSSBzYWlkLCDigJxSb2JpbiwgSSBoYWQgYSB2YWdpbmFsIGJpcnRoIGFmdGVyIHR3byBDZXNhcmVhbnMu4oCdIEhlIGxvb2tlZCBhdCBtZSBiZWNhdXNlIEkgc2FpZCB0aGUgd29yZCB2YWdpbmFsLiBJIHNhaWQsIOKAnFRoYXTigJlzIHdoYXQgaXQgaXMu4oCdIEhlIHNhaWQsIOKAnEkgZGlkbuKAmXQgZXZlbiBrbm93IHRoYXQgd2FzIGEgdGhpbmcu4oCdIFBlb3BsZSBqdXN0IGRvbuKAmXQuIFRoZXkganVzdCBkb27igJl0IGtub3cgdGhhdCBhbmQgdGhlbiB0aGVyZSBhcmUgc3RpbGwgc28gbWFueSBwcm92aWRlcnMgYWxsIG92ZXIgdGhlIHdvcmxkIHdobyBhcmVu4oCZdCBzdXBwb3J0aW5nIGl0LsKgSW4gdGhlIEFDT0cgUHJhY3RpY2UgQnVsbGV0aW4sIGl0IHNheXMgdGhhdCBWQkEyQywgdmFnaW5hbCBiaXJ0aCBhZnRlciB0d28gQ2VzYXJlYW4sIGlzIHJlYXNvbmFibGUgdG8gY29uc2lkZXIgZm9yIHdvbWVuIHdpdGggdHdvIHByZXZpb3VzIGxvdy10cmFuc3ZlcnNlIENlc2FyZWFuIGRlbGl2ZXJpZXMgdG8gYmUgY2FuZGlkYXRlcyBmb3IgVE9MQUMuIFdlIG1lbnRpb25lZCB0aGUgd29yZCBUT0xBQyBlYXJsaWVyLCBhIHRyaWFsIG9mIGxhYm9yIGFmdGVyIENlc2FyZWFuLiBBIGxvdCBvZiBwcm92aWRlcnMgdXNlIHRoYXQuIEl0IGlzIGEgbWVkaWNhbCB0dXJuLiBXZSBjYWxsIGl0IFZCQUMuIFRoZXkgY2FsbCBpdCBUT0xBQy4gSXTigJlzIG5vdCBhIFZCQUMgdG8gdGhlbSB1bnRpbCB0aGUgYmFieSBoYXMgcGFzc2VkIHRocm91Z2ggdGhlIHZhZ2luYS7CoEl0IHNheXMgdGhhdCB0aGV5IGFyZSBjYW5kaWRhdGVzIGZvciBUT0xBQyBhbmQg4oCcdG8gY291bnNlbCB0aGVtIGJhc2VkIG9uIHRoZSBjb21iaW5hdGlvbiBvZiBvdGhlciBmYWN0b3JzIHRoYXQgYWZmZWN0IHRoZWlyIHByb2JhYmlsaXR5IG9mIGFjaGlldmluZyBhIFZCQUMu4oCdwqBNZWFnYW46IE5vdywganVzdCBhIGNvdXBsZSBvZiB0aGluZ3MgdG8gc2hhcmUgYmVmb3JlIHdlIGRyb3Agb2ZmIG9uIHRoaXMgZXBpc29kZSwgaWYgeW91IGhhZCBhIENlc2FyZWFuIGJlZm9yZSBvciB0d28gQ2VzYXJlYW5zLCBpdCBpcyBub3QgbmVjZXNzYXJpbHkgYSByZWFzb24gZm9yIHlvdSB0byBoYXZlIGEgdGhpcmQuIElmIHlvdSBoYXZlIGdlc3RhdGlvbmFsIGRpYWJldGVzLCB0aGF0IGRvZXNu4oCZdCBtZWFuIHRoYXQgeW91IGNhbuKAmXQgVkJBQyBlaXRoZXIuIEnigJltIHRyeWluZyB0byB0YWxrIHVwIHRoZXNlIG90aGVyIGZhY3RvcnMsIHJpZ2h0PyBJZiB3ZSBoYXZlIHByZWVjbGFtcHNpYSwgdGhhdCBkb2VzbuKAmXQgYWx3YXlzIG5lY2Vzc2FyaWx5IG1lYW4gdGhhdCB3ZSBoYXZlIHRvIHNjaGVkdWxlIGEgQ2VzYXJlYW4uIFdl4oCZdmUgc2hhcmVkIHN0b3JpZXMgaW4gdGhlIHBhc3QuIFdl4oCZdmUgZXZlbiBoYWQgdGhpbmdzIGxpa2UgYmFiaWVzIHdpdGggbWVkaWNhbCBjb25kaXRpb25zIHdoZXJlIHN0aWxsIGV2ZW4gdGhlaXIgcHJvdmlkZXIgc2FpZCwg4oCcSnVzdCBiZWNhdXNlIHlvdXIgYmFieSBoYXMgdGhpcyBkb2VzbuKAmXQgbWVhbiB5b3UgY2Fu4oCZdCBoYXZlIGEgVkJBQy7igJ0gVGhhdCBkb2VzbuKAmXQgYWx3YXlzIG5lY2Vzc2FyaWx5IG1lYW4geW91IGNhbuKAmXQgZWl0aGVyLsKgSWYgeW91IGhhdmUgYSBiaWcgYmFieSwgaGVyZSB3ZSBhcmUuIEEgbmluZS1wb3VuZCBiYWJ5LCByaWdodD8gQSBuaWNlLCBzcXVpc2h5IGxpdHRsZSBiYWJ5LiBCaWcgYmFieSBkb2VzbuKAmXQgbWVhbiB5b3UgY2Fu4oCZdCBlaXRoZXIuIEEgZGlhZ25vc2lzIG9mIGEgc21hbGwgcGVsdmlzIHNob3VsZG7igJl0IGJlIGNvbnNpZGVyZWTigJMgdGhlc2UgZmFjdG9ycyByZWFsbHkgYXJlIG1vcmUgZXh0cmVtZSBJIGZlZWwgbGlrZSBzbyBpZiB5b3VyIHByb3ZpZGVyIGlzIGdpdmluZyB5b3Ugc29tZSBvZiB0aGVzZSwg4oCcT2gsIHdlbGwgeW91IGNvdWxkIGhhdmUgYSBWQkFDIGFmdGVyIHR3byBDZXNhcmVhbnMgYnV0IGJlY2F1c2UgeW91ciBiYWJ5IGRpZG7igJl0IGNvbWUgZG93biB0aGUgbGFzdCB0d28gdGltZXMsIGl04oCZcyBqdXN0IHByb2JhYmx5IG5vdCBnb2luZyB0byBoYXBwZW4u4oCdwqBZb3UgY2Fu4oCZdCBzZWUgaXQuIE1hY3kgcm9sbHMgaGVyIGV5ZXMgd2l0aCBtZS7CoE1hY3k6IFRoZSBiYWJ5IGlzIGdvaW5nIHRvIGNvbWUgb3V0LiBJdCBoYXMgdG8gY29tZSBvdXQuwqBNZWFnYW46IEJhYnkgaXMgZ29pbmcgdG8gY29tZSBvdXQuIEJlbGlldmUgaW4geW91cnNlbGYuIERvIHRoZSByZXNlYXJjaC4gV2UgZG8gaGF2ZSBhIFZCQUMgYWZ0ZXIgdHdvIENlc2FyZWFuIGJsb2cuIFdl4oCZbGwgbWFrZSBzdXJlIHRvIGxpbmsgaXQgaGVyZSBhbmQga2luZCBvZiBzcGluIGJhY2sgdG8gd2hhdCB5b3Ugc2FpZCBhYm91dCBob3cgeW91IHdlcmUgbGlrZSwg4oCcTGV0IG1lIGJlIGEgc3RhdGlzdGljLiBMZXQgbWUgYSBzdGF0aXN0aWMgdG8geW91ciBtaWR3aWZlLuKAnSBWQkEzQ+KAkyB3ZSBkb27igJl0IGhhdmUgYSBsb3Qgb2Ygc3RhdHMgb24gVkJBM0MgYW5kIEkgdGhpbmsgYSBsb3Qgb2YgaXQgaXMgYmVjYXVzZSB3ZSBhcmUgbm90IGRvaW5nIHRoZW0uIFdlIGFyZSBub3QgYWxsb3dpbmcgdGhlbSB5ZXQgd2UgaGF2ZSBzbyBtYW55IFZCQTNDIG1vbXMgaW4gb3VyIGNvbW11bml0eSB3aG8gc2hhcmUgb3Igb24gb3VyIHBvZGNhc3Qgd2hvIHNob3cgdGhhdCBpdCBzdGlsbCBpcyBwb3NzaWJsZS7CoEkgZmVlbCBsaWtlIHRoZXJlIG5lZWRzIHRvIGJlIG1vcmUgcmlzayBhc3Nlc3NtZW50IHRoZXJlIGFuZCBzdHVkaWVzIG5lZWQgdG8gYmUgZG9uZSB0aGVyZS4gU28ga25vdyB0aGF0IGV2ZW4gaWYgeW914oCZdmUgaGFkIHRocmVlIENlc2FyZWFucywgdGhhdCBzdGlsbCBkb2VzbuKAmXQgbWVhbiB0aGF0IHlvdSBhcmUgZWxpbWluYXRlZCBmcm9tIHRoZSBjaGFuY2UgdG8gZ28gZm9yIHdoYXQgeW91IHdhbnQsIGZpZ2h0IGZvciB3aGF0IHlvdSB3YW50LCBhbmQgaGF2ZSB0aGF0IGV4cGVyaWVuY2Ugbm90IG9ubHkgdGhhdCB5b3Ugd2FudCBidXQgdGhhdCB5b3UgZGVzZXJ2ZS7CoE1hY3k6IEZvciBzdXJlLsKgTWVhZ2FuOiBZZXMuIFRoYW5rIHlvdSBzbyBtdWNoIGZvciBzaGFyaW5nIHlvdXIgc3RvcnkgYW5kIEkgY2Fubm90IHdhaXQgZm9yIHRoaXMgdG8gYmUgcHVibGlzaGVkIGZvciB5b3UgdG8gc2VuZCB0aGlzIHRvIHlvdXIgbWlkd2lmZSBzbyBzaGUgY2FuIHNlbmQgaXQgb24gdG8gdGhlIG5leHQgV29tYW4gb2YgU3RyZW5ndGguwqBNYWN5OiBUaGFuayB5b3Ugc28gbXVjaCBmb3IgaGF2aW5nIG1lLiBJIGhhdmUgbG92ZWQgYmVpbmcgaGVyZSBhbmQgdGFsa2luZyB3aXRoIHlvdS4gSSBob3BlIHRoZXJlIGFyZSBzbyBtYW55IGxpdmVzIHRvdWNoZWQgYW5kIGNoYW5nZWQgYnkgc2hhcmluZyBteSBzdG9yeS5DbG9zaW5nV291bGQgeW91IGxpa2UgdG8gYmUgYSBndWVzdCBvbiB0aGUgcG9kY2FzdD8gVGVsbCB1cyBhYm91dCB5b3VyIGV4cGVyaWVuY2UgYXQgdGhldmJhY2xpbmsuY29tL3NoYXJlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBhbGwgdGhpbmdzIFZCQUMgaW5jbHVkaW5nIG9ubGluZSBhbmQgaW4tcGVyc29uIFZCQUMgY2xhc3NlcywgVGhlIFZCQUMgTGluayBibG9nLCBhbmQgTWVhZ2Fu4oCZcyBiaW8sIGhlYWQgb3ZlciB0byB0aGV2YmFjbGluay5jb20uIENvbmdyYXR1bGF0aW9ucyBvbiBzdGFydGluZyB5b3VyIGpvdXJuZXkgb2YgbGVhcm5pbmcgYW5kIGRpc2NvdmVyeSB3aXRoIFRoZSBWQkFDIExpbmsuU3VwcG9ydCB0aGlzIHBvZGNhc3QgYXQg4oCUIGh0dHBzOi8vcmVkY2lyY2xlLmNvbS90aGUtdmJhYy1saW5rL2RvbmF0aW9uc0FkdmVydGlzaW5nIElucXVpcmllczogaHR0cHM6Ly9yZWRjaXJjbGUuY29tL2JyYW5kcyIsImR1cmF0aW9uIjp7InRvdGFsTWlsbGlzZWNvbmRzIjoyNzM2MTE3fSwiaHRtbERlc2NyaXB0aW9uIjoiPHA+TWFjeeKAmXMgZmlyc3QgYmlydGggd2FzIGEgc2NoZWR1bGVkIEMtc2VjdGlvbiBkdWUgdG8gYnJlZWNoIHByZXNlbnRhdGlvbiB0aGF0IHJlcXVpcmVkIGZvbGxvdy11cCBleHBsb3JhdG9yeSBzdXJnZXJ5IGR1ZSB0byBhbiB1bmtub3duIGNhdXNlIG9mIGludGVybmFsIGJsZWVkaW5nLiBVbmZvcnR1bmF0ZWx5LCBoZXIgc3VyZ2VvbiBoYWQgYWNjaWRlbnRhbGx5IG5pY2tlZCBhbiBhYiBtdXNjbGUuIE1hY3nigJlzIHJlY292ZXJ5IHdhcyB2ZXJ5IGRpZmZpY3VsdC48L3A+PHA+PGJyIC8+PC9wPjxwPldpdGggaGVyIHNlY29uZCwgZG9jdG9ycyB3ZXJlIG5lcnZvdXMgYWJvdXQgaGVyIGNoYW5jZXMgb2YgVkJBQyBhbmQgd291bGQgb25seSBsZXQgaGVyIHRyeSBpZiBzaGUgc2hvd2VkIHVwIGluIGFjdGl2ZSBsYWJvciBiZWZvcmUgMzkgd2Vla3MuIE90aGVyd2lzZSwgc2hlIHdvdWxkIGdvIGluIGZvciBhIHNjaGVkdWxlZCBDLXNlY3Rpb24uIE1hY3kgYWdyZWVkIGFuZCBoZXIgYmlydGggZW5kZWQgaW4gYW5vdGhlciBDZXNhcmVhbi4gSGVyIGJpcnRoIHdhcyBiZWF1dGlmdWwgYW5kIGhlciByZWNvdmVyeSB3YXMgc21vb3RoLCBidXQgaXQgc3RpbGwgd2FzbuKAmXQgdGhlIGVtcG93ZXJpbmcgZXhwZXJpZW5jZSBzaGUgaG9wZWQgZm9yLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5IGhpdCB0aGUgZ3JvdW5kIHJ1bm5pbmcgZHVyaW5nIGhlciB0aGlyZCBwcmVnbmFuY3kuIFdoZW4gZG9jdG9ycyB3ZXJlIG5vdCBzdXBwb3J0aXZlIG9mIGEgVkJBMkMsIHNoZSBrbmV3IGhvbWUgYmlydGggd2FzIGhlciBiZXN0IG9wdGlvbi4gU2hlIGZvdW5kIGEgbWlkd2lmZSB3aG8gd2FzIHdpbGxpbmcgdG8gdGFrZSBNYWN5IG9uIGFzIGhlciBmaXJzdCBWQkEyQyBjbGllbnQhIFdlIGtub3cgeW91IHdpbGwgYWJzb2x1dGVseSBsb3ZlIGxpc3RlbmluZyB0byB0aGlzIGJpcnRoIHN0b3J5LsKgPC9wPjxwPjxiciAvPjwvcD48cD5MaWtlIE1lYWdhbiBzYWlkLCDigJxJdCBpcyBzbyBiZWF1dGlmdWwuIEl0IGlzIHNvIHBlYWNlZnVsLiBJdCBzb3VuZHMgbGlrZSBvbmUgb2YgdGhvc2UgYmlydGhzIHdoZXJlIHlvdSBjbG9zZSB5b3VyIGV5ZXMgYW5kIHlvdSBlbnZpc2lvbiBiaXJ0aCBhbmQgaG93IHBlYWNlZnVsLCBiZWF1dGlmdWwsIGFuZCBjYWxtIGl0IHJlYWxseSBjYW4gYmUu4oCdPC9wPjxwPjxiciAvPjwvcD48cD48YSBocmVmPVwiaHR0cHM6Ly93d3cudGhldmJhY2xpbmsuY29tL3ZiYTJjL1wiIHJlbD1cIm5vZm9sbG93XCI+VGhlIFZCQUMgTGluayBCbG9nOiBWQkEyQzwvYT48L3A+PHA+PGEgaHJlZj1cImh0dHBzOi8vam91cm5hbHMubHd3LmNvbS9ncmVlbmpvdXJuYWwvZnVsbHRleHQvMjAxNy8xMTAwMC9wcmFjdGljZV9idWxsZXRpbl9ub19fMTg0X192YWdpbmFsX2JpcnRoX2FmdGVyLjQ4LmFzcHhcIiByZWw9XCJub2ZvbGxvd1wiPsKgUHJhY3RpY2UgQnVsbGV0aW4gLSBWQkFDPC9hPjwvcD48cD48YSBocmVmPVwiaHR0cHM6Ly93d3cuaW5mb3JtZWRwcmVnbmFuY3kudHYvP2dhZF9zb3VyY2UmIzYxOzEmYW1wO2djbGlkJiM2MTtDandLQ0FqdzU3ZXhCaEFzRWl3QWFJeGFadlhiSUhQTjF1R3RqSXZQdzBCV0VzYlZUYU5JTExmZHB0QnF3emtyel9zM2V1SWU2V2ktOFJvQ0pEZ1FBdkRfQndFXCIgcmVsPVwibm9mb2xsb3dcIj5JbmZvcm1lZCBQcmVnbmFuY3kgLSBjb2RlOiB2YmFjbGluazQyNDwvYT48L3A+PHA+TmVlZGVkIFdlYnNpdGU8L3A+PHA+PGEgaHJlZj1cImh0dHBzOi8vd3d3LnRoZXZiYWNsaW5rLmNvbS92YmFjLWNsYXNzL1wiIHJlbD1cIm5vZm9sbG93XCI+SG93IHRvIFZCQUM6IFRoZSBVbHRpbWF0ZSBQcmVwIENvdXJzZSBmb3IgUGFyZW50czwvYT48L3A+PHA+RnVsbCBUcmFuc2NyaXB0IHVuZGVyIEVwaXNvZGUgRGV0YWlsc8KgPC9wPjxwPjxiciAvPjwvcD48cD4wMzo0NCBGaXJzdCBDLXNlY3Rpb24gd2l0aCBpbnRlcm5hbCBibGVlZGluZyBhbmQgYSBmb2xsb3ctdXAgZXhwbG9yYXRvcnkgc3VyZ2VyeTwvcD48cD4wOTowNCBTZWNvbmQgcHJlZ25hbmN5PC9wPjxwPjExOjM3IFNjaGVkdWxlZCBDLXNlY3Rpb24gYW5kIGdldHRpbmcgcHJlZ25hbnQgYWdhaW4gc2hvcnRseSBhZnRlcjwvcD48cD4xODo0NCBGaW5kaW5nIGEgc3VwcG9ydGl2ZSBob21lIGJpcnRoIG1pZHdpZmU8L3A+PHA+MjM6MjQgVkJBMkMgcHJlcCBkdXJpbmcgcHJlZ25hbmN5PC9wPjxwPjI3OjQ2IExhYm9yIGJlZ2luczwvcD48cD4zMjo0MiBCcmVha2luZyBoZXIgb3duIHdhdGVyIGFuZCBwdXNoaW5nIGZvciAxNyBtaW51dGVzPC9wPjxwPjM2OjQ3IEFDT0figJlzIHN0YXRlbWVudCBvbiBWQkEyQzwvcD48cD48YnIgLz48L3A+PHA+TWVhZ2FuOiBIZWxsbywgaGVsbG8gV29tZW4gb2YgU3RyZW5ndGguIFdlIGFyZSBzbyBleGNpdGVkIHRvIGJlIHNoYXJpbmcgYW4gSEJBMkMgc3RvcnkgYW5kIGlmIHlvdSBkb27igJl0IGtub3cgeWV0IHdoYXQgSEJBQyBtZWFucywgdGhhdOKAmXMgaG9tZSBiaXJ0aCBhZnRlciBDZXNhcmVhbiBhbmQgdGhlbiBIQkEyQyBpcyBob21lIGJpcnRoIGFmdGVyIHR3byBDZXNhcmVhbnMuIEkgZmVlbCBsaWtlIHRoYXTigJlzIGtpbmQgb2YgZnVubnkuIEl04oCZcyBuZXZlciByZWFsbHkgYSB0ZXJtIEkgdXNlZCBiZWNhdXNlIEkgd2FzbuKAmXQgYXQgdGhlIGhvc3BpdGFsIGFuZCBJIHdhc27igJl0IGF0IGhvbWUsIGJ1dCBJIGFsc28ga2luZCBvZiBmZWVsIGxpa2UgSSBzb3J0IG9mIGhhZCBhbiBIQkFDLiBJdCB3YXMgYXQgYSBiaXJ0aCBjZW50ZXIuIE1heWJlIHRoYXTigJlzIGEgdGVybSwgYmlydGggY2VudGVyIGJpcnRoIGFmdGVyIHR3byBDZXNhcmVhbnMuIEkgZG9u4oCZdCBrbm93LsKgPC9wPjxwPjxiciAvPjwvcD48cD5CdXQgb2J2aW91c2x5LCBWQkFDIGFmdGVyIHR3byBDZXNhcmVhbnMgYXJlIG5lYXIgYW5kIGRlYXIgdG8gbXkgb3duIGhlYXJ0IGFuZCB0b2RheSB3ZSBoYXZlIG91ciBmcmllbmQgTWFjeSBmcm9tIENhbGlmb3JuaWEgc2hhcmluZyBoZXIgSEJBQyBzdG9yeSBhbmQganVzdCBiZWZvcmUgd2Ugc3RhcnRlZCByZWNvcmRpbmcsIHdlIHdlcmUgdGFsa2luZyBhYm91dCBob3cgb25lIG9mIGhlciBtZXNzYWdlcyB0aGF0IHNoZSB3YW50cyB0byBnaXZlIGlzIHRoYXQgeW91IGNhbiBkbyB0aGlzLiBSaWdodCwgTWFjeT8gWW914oCZcmUganVzdCBsaWtlLCB5b3UgY2FuLiBQZW9wbGUgY2FuIGRvIHRoaXMuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1hY3k6IEZvciBzdXJlLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IFllcy4gWWVzLiBJIGFtIGV4Y2l0ZWQgdG8gaGVhciB5b3VyIHN0b3J5IGFuZCB0aGVuIEkgd2FudGVkIHRvIGFsc28ganVzdCB0YWxrIGEgbGl0dGxlIGJpdCBhdCB0aGUgZW5kIGFib3V0IHNvbWUgZXZpZGVuY2Ugb24gVkJBQyBhZnRlciB0d28gQy1zZWN0aW9ucy4gU28gaWYgeW914oCZcmUgd29uZGVyaW5nIG1vcmUgYWJvdXQgVkJBMkMsIG1ha2Ugc3VyZSB5b3Ugc3RpY2sgdG8gdGhlIHZlcnksIHZlcnkgZW5kIGV2ZW4gYWZ0ZXIgdGhlIHN0b3J5IGJlY2F1c2Ugd2XigJlsbCB0YWxrIGEgbGl0dGxlIGJpdCBhYm91dCB0aGF0LsKgPC9wPjxwPjxiciAvPjwvcD48cD4wMToyNDwvcD48cD48YnIgLz48L3A+PHA+TWVhZ2FuOiBXZSBkbyBoYXZlIGEgUmV2aWV3IG9mIHRoZSBXZWVrIGFuZCB0aGlzIGlzIGZyb20gSmVubmEuIEl0IGlzIGFjdHVhbGx5IG9uIG91ciBIb3cgdG8gVkJBQzogVWx0aW1hdGUgVkJBQyBQcmVwIENvdXJzZS4gU2hlIHNheXMsIOKAnEkganVzdCBzdGFydGVkIGJ1dCBoYXZlIGFscmVhZHkgbGVhcm5lZCBzbyBtdWNoLiBBZnRlciB0d28gQy1zZWN0aW9ucyBhbmQgb25lIHdoZXJlIG15IGRvY3RvciBtYWRlIG1lIHRoaW5rIGl0IHdhcyB2ZXJ5IHJpc2t5LCBJIHdhcyB0ZXJyaWZpZWQgdG8gdHJ5IGFnYWluLiBXaXRoIHRoaXMgY291cnNlLCBub3Qgb25seSBoYXZlIEkgbGVhcm5lZCB0aGUgdHJ1dGggYWJvdXQgVkJBQywgYnV0IEkgYW0gZXhjaXRlZCB0byBhdHRlbXB0IG1pbmUgaW4gQXVndXN0LuKAnSBUaGF04oCZcyBjb21pbmcgdXAuIEkgYW0gc28gZXhjaXRlZCBmb3IgSmVubmEuIFRoYW5rIHlvdSBzbyBtdWNoIGZvciB0aGUgcmV2aWV3IGFuZCB0aGUgc3VwcG9ydCwgb2YgY291cnNlLCBvZiB0YWtpbmcgdGhlIGNvdXJzZS4gSSBhbSBzbyBleGNpdGVkIHRoYXQgeW91IGFyZSBnZXR0aW5nIGVkdWNhdGVkIGFuZCBkZWZpbml0ZWx5IGtlZXAgdXMgcG9zdGVkLsKgPC9wPjxwPjxiciAvPjwvcD48aDE+MDM6NDQgRmlyc3QgQy1zZWN0aW9uIHdpdGggaW50ZXJuYWwgYmxlZWRpbmcgYW5kIGEgZm9sbG93LXVwIGV4cGxvcmF0b3J5IHN1cmdlcnk8L2gxPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IE9rYXksIGN1dGUgTWFjeS4gV2VsY29tZSB0byB0aGUgc2hvdy7CoDwvcD48cD48YnIgLz48L3A+PHA+TWFjeTogVGhhbmsgeW91IGZvciBoYXZpbmcgbWUuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1lYWdhbjogQWJzb2x1dGVseS4gSeKAmWQgbG92ZSB0byB0dXJuIHRoZSB0aW1lIG92ZXIgdG8geW91IGFuZCBzaGFyZSB3aGF0ZXZlciBtZXNzYWdlIHlvdSBmZWVsIGlzIGltcG9ydGFudCBmb3Igb3VyIGJlYXV0aWZ1bCBXb21lbiBvZiBTdHJlbmd0aCBsaXN0ZW5lcnMuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1hY3k6IE9rYXksIHdlbGwgbGlrZSB3aXRoIGFsbCBWQkFDcywgbXkgc3RvcnkgYmVnaW5zIG9mIGNvdXJzZSB3aXRoIG15IGZpcnN0IHByZWduYW5jeS4gRHVyaW5nIG15IGZpcnN0IHByZWduYW5jeSwgSSB3YXMgcHJldHR5IGhlYWx0aHkuIEkgZGlkbuKAmXQgbG92ZSBiZWluZyBwcmVnbmFudCwgYnV0IEkgd2FzIGV4Y2l0ZWQgdGhhdCB3ZSB3ZXJlIHN0YXJ0aW5nIG91ciBmYW1pbHkgYW5kIEkgZ290IHRv4oCTIEkgY2Fu4oCZdCByZW1lbWJlcuKAkyAzNCB3ZWVrcyBtYXliZSwgMzVpc2gsIGFuZCBiYWJ5IHdhcyBzdGlsbCBicmVlY2guwqA8L3A+PHA+PGJyIC8+PC9wPjxwPlRoZXkgb2ZmZXJlZCBtZSB0aGUgRUNWIHByb2NlZHVyZSwgYnV0IHRoZXkgdG9sZCBtZSBJIHdvdWxkIGhhdmUgdG8gZG8gaXQgYXJvdW5kIDM3LTM4IHdlZWtzIGFuZCBJIHdhcyB3b3JyaWVkIGFib3V0IGl0IGJlaW5nIHNvIGVhcmx5IGJlZm9yZSBteSBkdWUgZGF0ZSB0aGF0IHNoZSB3b3VsZCB0dXJuIGFnYWluLiBJIHdhcyBzY2FyZWQuIFRoZXkgZ290IG1lIHNjYXJlZC4gVGhleSBkb27igJl0IHJlYWxseSBwcmVzZW50IHRoZSBFQ1ZzIGFzIHNvbWV0aGluZyB0aGF0IHNob3VsZCB3b3JrLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IEkga25vdy4gSSBrbm93LsKgPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5OiBNeSBtaWR3aWZlIHdpdGggbXkgdGhpcmQgcHJlZ25hbmN5IHdhcyBsaWtlLCDigJxJIHdpc2ggeW91IHdvdWxkIGhhdmUgZG9uZSBpdCzigJ0gYnV0IHRoZXkgdGFsa2VkIG1lIG91dCBvZiBpdCBzbyBJIGRlY2lkZWQgbm90IHRvIGRvIGl0LiBDb21lIDQwIHdlZWtzLCBzaGUgd2FzIHN0aWxsIG5vdCBmbGlwcGVkLCBidXQgSSB3YXNu4oCZdCBpbiBsYWJvciBzbyBhbm90aGVyIHRoaW5nIGlzIEkgd2lzaCBJIHdvdWxkIGhhdmUganVzdCB3YWl0ZWQgdG8gc2VlIGJlY2F1c2UgbWF5YmUgc2hlIHdvdWxkIGhhdmUgZmxpcHBlZCBpbiBsYWJvci7CoDwvcD48cD48YnIgLz48L3A+PHA+TWVhZ2FuOiBTb21ldGltZXMgdGhleSBkby4gSSBhY3R1YWxseSByZWNlbnRseSBoYWQgYSBjbGllbnQgbGFzdCB5ZWFyIGluIDIwMjMgdGhhdCBkaWQgaGF2ZSB0aGF0LiBTaGUgd2FzIHNjaGVkdWxlZCBmb3IgaGVyIHZlcnNpb24gYW5kIHRoZW4gc2hlIHdlbnQgaW50byBzcG9udGFuZW91cyBsYWJvciBzbyBzaGUgYWN0dWFsbHkgd2VudCBpbiBwcmV0dHkgZWFybHkgYmVjYXVzZSBzaGUgd2FzIGxpa2UsIOKAnE9oIG15IGdvc2guIE15IGJhYnnigJlzIGJyZWVjaC4gSSB3YXMgc2NoZWR1bGVkIHRoZSBuZXh0IGRheSBmb3IgYSB2ZXJzaW9uLOKAnSBhbmQgdGhleSB3ZXJlIGxpa2UsIOKAnEJhYnnigJlzIGhlYWQgZG93bi7igJ0gU28gaXQgZGVmaW5pdGVseSBoYXBwZW5zLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5OiBXaXRoIG15IHRoaXJkIG9uZSwgc2hlIHdhcyBzdW5ueS1zaWRlIHVwLiBTaGUgd2FzIHBvc3RlcmlvciwgYnV0IEkgY291bGQgZmVlbCBoZXIgdHVybmluZyBhbmQgZ2V0dGluZyBpbnRvIHBvc2l0aW9uLiBCdXQgYW55d2F5LCBJ4oCZbGwgZ2V0IHRoZXJlLiBJ4oCZbGwgZ2V0IHRoZXJlLsKgPC9wPjxwPjxiciAvPjwvcD48cD5JIGhhZCBteSBDLXNlY3Rpb24gc2NoZWR1bGVkLiBNeSBkYXVnaHRlciwgQWxheW5hIHdhcyBib3JuIDEwIGRheXMgYmVmb3JlIENocmlzdG1hcyBpbiAyMDE4LiBTaGUgd2FzIHBlcmZlY3QuIFNoZSB3YXMgNiBwb3VuZHMsIDEzIG91bmNlcy4gSSB3YXMgbm90IGdyZWF0LsKgPC9wPjxwPjxiciAvPjwvcD48cD5BZnRlciBteSBzdXJnZXJ5LCBJIGNhbWUgb3V0LiBJIHdhcyBpbiB0aGUgUEFDVSBhbmQgbXkgYmxvb2QgcHJlc3N1cmUgd2FzIGRyb3BwaW5nIGNyYXp5IGxvdyBhbmQgbXkgaGVhcnQgcmF0ZSB3YXMgc3Bpa2luZyBzdXBlciBoaWdoLiBJIHdhcyBnaG9zdC13aGl0ZSBhbmQgdGhleSB3ZXJlIGxpa2UsIOKAnFdlIGRvbuKAmXQga25vdyB3aGF04oCZcyBnb2luZyBvbi7igJ3CoDwvcD48cD48YnIgLz48L3A+PHA+TG9uZywgbG9uZywgbG9uZyBzdG9yeSBzaG9ydCwgSSB3YXMgaGF2aW5nIGNyYXp5IGludGVybmFsIGJsZWVkaW5nLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IEkgd2FzIGdvaW5nIHRvIHNheSwgd2VyZSB5b3UgaGVtb3JyaGFnaW5nPyBCZWNhdXNlIHRoYXQgc291bmRzIGxpa2UgaGVtb3JyaGFnaW5nLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5OiBJIHdhcyBoZW1vcnJoYWdpbmcuIEkgd2FzIGJsZWVkaW5nIGludGVybmFsbHksIGJ1dCBpdCB3YXMgZnJvbSBoYXZpbmcgc3VyZ2VyeS4gSXQgd2FzIG5vdCBhbnl0aGluZyB0byBkbyB3aXRoIGJhYnkgb3IgYmlydGguIEl0IHdhcyBqdXN0IHN1cmdlcnkuIFNvIHdoYXQgd2UgZGlzY292ZXJlZCBpcyB0aGV5IGhhZCBhY2NpZGVudGFsbHkgbmlja2VkIGFuIGFiIG11c2NsZSBhbmQgaXQgd2FzIGJsZWVkaW5nLsKgPC9wPjxwPjxiciAvPjwvcD48cD4yNCBob3VycyBhZnRlciBteSBkYXVnaHRlciB3YXMgYm9ybiwgSSBoYWQgdG8gZ28gYmFjayBpbiBmb3IgYW4gZXhwbG9yYXRvcnkgc3VyZ2VyeSBhbmQgSSB3YXMgcHV0IHVuZGVyIGFuZXN0aGVzaWEgY29tcGxldGVseSBhZ2Fpbi4gVGhleSBoYWQgdG8gY3V0IGJhY2sgb3BlbiBteSBsYXllcnMgYW5kIHN0YXJ0IG92ZXIuIFRoYW5rZnVsbHksIHRoZXkgZGlkbuKAmXQgaGF2ZSB0byBjdXQgaW50byBteSB1dGVydXMgYWdhaW4sIGJ1dCB0aGV5IGRpZCBvcGVuIG1lIGJhY2sgdXAgYW5kIHN0b3AgdGhlIGJsZWVkaW5nLCBjYXV0ZXJpemUgaXQgYW5kIEkgbWVhbiwgbXkgcmVjb3Zlcnkgd2FzIGp1c3QgaG9ycmlibGUuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1lYWdhbjogTm90IGdyZWF0LCB5ZWFoLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5OiBJIG1lYW4sIHRoYW5rZnVsbHkgSSBvbmx5IGhhZCBvbmUgYmFieSBzbyBpdCB3YXMganVzdCBoZXIgYW5kIG15IGh1c2JhbmQgaXMgYW1hemluZy4gSSBjb3VsZCBub3QgYXNrIGZvciBhIGJldHRlciBwYXJ0bmVyLCBidXQgaXQgd2FzIGp1c3QgaGFyZC4gSXQgd2FzIGhhcmQgdG8gYWNjZXB0IHRoYXQsIHRvIGdyaWV2ZSB0aGUgYmlydGggSSBoYWQgZHJlYW1lZCBvZiBteSB3aG9sZSBsaWZlLCBidXQgaXQgbmV2ZXIgb2NjdXJyZWQgdG8gbWUgdGhhdCBJIGNvdWxkbuKAmXQgaGF2ZSBhIFZCQUMuIE15IG1vbSBoYWQgbWUgdmlhIEMtc2VjdGlvbiBhbmQgbXkgdGhyZWUgc3Vic2VxdWVudCBzaWJsaW5ncyB3ZXJlIGFsbCBWQkFDLiBTbyB3aGVuIHNvbWVvbmUgc2FpZCB0byBtZSBhdCAxMiB3ZWVrcywgSSByZWNvdmVyZWQuIEkgd2FzIGJhY2sgYXQgdGhlIGd5bSBhbmQgc29tZW9uZSBmcm9tIHRoZSBneW0gd2FzIGxpa2UsIOKAnE9oLCBzbyB5b3UgaGF2ZSB0byBoYXZlIGFsbCB5b3VyIGJhYmllcyBhcyBDLXNlY3Rpb25zIG5vdy7igJ0gPC9wPjxwPjxiciAvPjwvcD48cD5JIHdhcyBsaWtlLCDigJxXYWl0LCB0aGF04oCZcyBhIHRoaW5nIHN0aWxsPyBXZeKAmXJlIHN0aWxsIGRvaW5nIHRoYXQ/4oCdIEkgd2FzIGxpa2UsIOKAnE5vLiBJ4oCZbSBnb2luZyB0byBoYXZlIGEgVkJBQy7igJ0gSSBuZXZlciBldmVuIHRob3VnaHQgYWJvdXQgaXQuIEkgaW1tZWRpYXRlbHkgd2FzIGxpa2UsIOKAnE9oLCBzbyB0aGlzIGlzIGdvaW5nIHRvIGJlIGEgdGhpbmcu4oCdIFRoYXTigJlzIHdoZW4gSSBmb3VuZCB5b3UgZ3V5cyBhbmQgSSBzdGFydGVkIGxpc3RlbmluZyBiZWZvcmUgSSB3YXMgZXZlbiBwcmVnbmFudCB3aXRoIG15IHNlY29uZCBvbmUsIGJ1dCB3aGVuIEkgZGlkIGdldCBwcmVnbmFudCB0aHJlZSB5ZWFycyBsYXRlciB3aXRoIGJhYnkgbnVtYmVyIHR3bywgSSBwcm9iYWJseSBiaW5nZS1saXN0ZW5lZCB0byBldmVyeSBzaW5nbGUgZXBpc29kZS4gSSB3YXMgbGlrZSwg4oCcSeKAmW0gZG9pbmcgdGhpcy7igJ3CoDwvcD48cD48YnIgLz48L3A+PGgxPjA5OjA0IFNlY29uZCBwcmVnbmFuY3k8L2gxPjxwPjxiciAvPjwvcD48cD5NYWN5OiBJIHN3aXRjaGVkIHByb3ZpZGVycyBqdXN0IGJlY2F1c2UgSSBkaWRu4oCZdCBoYXZlIGEgZ3JlYXQgZXhwZXJpZW5jZSBzbyBJIHdhcyBsaWtlLCBteSBwb3N0cGFydHVtIGNhcmUsIEkgZGlkbuKAmXQgY2FyZSBmb3IgbXkgcGVkaWF0cmljaWFuIHNvIEkganVzdCBzd2l0Y2hlZCBldmVyeXRoaW5nLiBCdXQgYmVjYXVzZSBJIHdhcyB3aXRoIGEgbmV3IHByb3ZpZGVyLCBJIGhhZCBhIHJlYWxseSBkaWZmaWN1bHQgdGltZSBsb2NhdGluZyBteSBzdXJnaWNhbCBub3Rlcy4gTXkgbmV3IHByb3ZpZGVycyB3YW50ZWQgdG8ga25vdyBpZiBteSBmaXJzdCBDLXNlY3Rpb24gd2FzIGRvbmUgd2l0aCBhIHNpbmdsZSBvciBkb3VibGUtbGF5ZXIgY2xvc3VyZS7CoDwvcD48cD48YnIgLz48L3A+PHA+TWVhZ2FuOiBPaCwgaW50ZXJlc3RpbmcuIE9rYXkuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1hY3k6IEJlY2F1c2Ugb2YgY291cnNlLCBpZiBpdOKAmXMgc2luZ2xlLCBpdOKAmXMgZ29pbmcgdG8gaW5jcmVhc2UgbXkgcmlzayBmb3IgYSBydXB0dXJlLiBJIGF0IHRoaXMgcG9pbnQgd2FzIGFscmVhZHkgbGlrZSwgdGhlIHJpc2sgb2YgcnVwdHVyZSBpcyBzbyBsb3cuIEkgYW0gbm90IHdvcnJpZWQgYWJvdXQgaXQuIEJyZWVjaCBiYWJ5IGlzIGEgZ3JlYXQgY2FuZGlkYXRlIGZvciBWQkFDLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IEFuZCB0aGUgZXZpZGVuY2Ugb24gdGhhdCBpcyByZWFsbHkgbm90IHNvbGlkIG9uIHdoaWNoIG9uZSByZWFsbHkgaXMgYmVzdC4gVGhlcmUgYXJlIHNvbWUgdGhhdCBzaG93IGRvdWJsZSBtYXkgYmUgYmV0dGVyLCBidXQgdGhhdCBkb2VzbuKAmXQgbmVjZXNzYXJpbHkgbWVhbiB0aGF0IHlvdXIgcnVwdHVyZSByYXRlIHNreXJvY2tldHMgYmVjYXVzZSB5b3UgaGF2ZSBhIHNpbmdsZSBsYXllci4gU28gdGhleSBhcmUgZm9jdXNpbmcgb24gc29tZXRoaW5nIHRoYXQgZGlkbuKAmXQgaGF2ZSBhIHRvbiBvZiBldmlkZW5jZS7CoDwvcD48cD48YnIgLz48L3A+PHA+TWFjeTogUmlnaHQuIEkgd2FzIGxpa2UsIOKAnFRoZXJlIGlzIGp1c3Qgbm90IGVub3VnaCByZXNlYXJjaCB0byBqdXN0aWZ5IGFsbCBvZiB0aGVzZSBDLXNlY3Rpb25zLuKAnSBCdXQgYmVjYXVzZSB0aGV5IGRpZG7igJl0IHVuZGVyc3RhbmQgd2hhdCBoYWQgZ29uZSB3cm9uZyBhbmQgd2h5IEkgaGFkIHRvIGhhdmUgYSBzZWNvbmQgc3VyZ2VyeSBldmVuIHRob3VnaCBJIHRvbGQgdGhlbSBhIG1pbGxpb24gdGltZXMgaXQgd2FzbuKAmXQgYW55dGhpbmcgdG8gZG8gd2l0aCBteSB1dGVydXMuIEl0IHdhc27igJl0IGEgbWUgcHJvYmxlbS4gSXQgd2FzIGEgZG9jdG9yJiMzOTtzIHByb2JsZW0uIFRoZXkgd2VyZSBqdXN0IGxpa2UsIOKAnFdlIGp1c3QgZG9u4oCZdCBmZWVsIGNvbWZvcnRhYmxlIHdpdGggVE9MQUMu4oCdIEFuZCB5b3Uga25vdywgaXTigJlzIGFsd2F5cyBUT0xBQy4gSXTigJlzIG5ldmVyIGp1c3QgYSBWQkFDLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IEkga25vdy7CoDwvcD48cD48YnIgLz48L3A+PHA+TWFjeTogQnV0IHRoZXkgZGlkbuKAmXQgd2FudCB0byBkbyBhbnl0aGluZy4gVGhleSBkaWRu4oCZdCB3YW50IHRvIG9mZmVyIHVsdHJhc291bmRzLiBUaGV5IGp1c3Qgd2VyZSBub3Qgd2lsbGluZyB0byB0YWtlIGEgY2hhbmNlIGV2ZW4gdGhvdWdoIGl0IHdhcyBhIHJlYWxseSBnb29kIGNoYW5jZS7CoDwvcD48cD48YnIgLz48L3A+PHA+U28gYmFzaWNhbGx5LCB0aGV5IHdlcmUgbGlrZSwg4oCcVGhlIG9ubHkgd2F5IHlvdSBhcmUgaGF2aW5nIHRoaXMgc2Vjb25kIGJhYnkgVkJBQyBpcyBpZiB5b3UgY29tZSB0byB0aGUgaG9zcGl0YWwgYW5kIHlvdSBhcmUgaW4gbGFib3IgYW5kIGl04oCZcyB0aW1lIHRvIHB1c2gu4oCdwqA8L3A+PHA+PGJyIC8+PC9wPjxwPkkgbWVhbiwgdGhhdOKAmXMga2luZCBvZiBzY2FyeSB0byBzb21lb25lIHdobyBkb2VzbuKAmXQga25vdy4gSSBtZWFuLCBub3cgdGhhdCBJ4oCZdmUgZG9uZSBpdCBJ4oCZbSBsaWtlLCDigJxUaGF04oCZcyB3aGF0IEkgc2hvdWxkIGhhdmUgZG9uZSzigJ0gYW5kIHRoYXTigJlzIHdoYXQgSSB0ZWxsIG15IGZyaWVuZHMuIFlvdSBkb27igJl0IGdvIHRvIHRoZSBkb2N0b3IgdW50aWwgeW91ciBjb250cmFjdGlvbnMgYXJlIHR3byBtaW51dGVzIGFwYXJ0IGJlY2F1c2UgdGhleSB0cnkgdG8gc2NhcmUgd29tZW4gb3V0IG9mIHRoZWlyIFZCQUMuwqA8L3A+PHA+PGJyIC8+PC9wPjxoMT4xMTozNyBTY2hlZHVsZWQgQy1zZWN0aW9uIGFuZCBnZXR0aW5nIHByZWduYW50IGFnYWluIHNob3J0bHkgYWZ0ZXI8L2gxPjxwPjxiciAvPjwvcD48cD5NYWN5OiBTbyBJIGp1c3QgZGlkbuKAmXQgcmVhbGx5IHN0YW5kIHVwIGZvciBteXNlbGYuIEkganVzdCBhZ3JlZWQgbGlrZSwg4oCcT2theSwgSSBndWVzcy7igJ0gSSB0b2xkIG15c2VsZiwg4oCcSWYgSSBnbyBpbnRvIGxhYm9yIGJlZm9yZSBteSBzY2hlZHVsZWQgQy1zZWN0aW9uIGF0IDM5IHdlZWtzLCB0aGVuIHRoYXTigJlzIHRoZSB3YXkgR29kIHdhbnRzIGl0IGFuZCBJIHdpbGwgaGF2ZSBteSBWQkFDLuKAnSBPYnZpb3VzbHksIHRoYXQgbmV2ZXIgaGFwcGVuZWQgYW5kIDM5IHdlZWtzIGlzIHByZXR0eSBlYXJseSBub3cga25vd2luZyBlc3BlY2lhbGx5IHdoZW4gZHVlIGRhdGVzIGFyZSBqdXN0IGd1ZXNzIGRhdGVzLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IFZlcnkgaW1wb3J0YW50IG5vdGUgdGhhdCB5b3UganVzdCBnYXZlIHRoZXJlLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5OiBZZWFoLiBJIGhhZCBteSBiYWJ5IGF0IDM5IHdlZWtzLiBTaGUgd2FzIHBlcmZlY3QuIEkgbWVhbiwgbXkgcmVjb3Zlcnkgd2Fz4oCTIHNoZSB3YXMgYW5vdGhlciA2IHBvdW5kcywgMTUgb3VuY2VzIHNvIHRoZXkgd2VyZSBhbG1vc3QgdGhlIHNhbWUgc2l6ZS4gVGhhdCB3YXMgUmVhZ2FuLiBSZWNvdmVyeSB3YXMgYSBsb3QgYmV0dGVyIGJ1dCBzdGlsbCwgSSBoYWQgYSAzLXllYXItb2xkIGF0IGhvbWUuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPkdvaW5nIGZyb20gb25lIHRvIHR3byB3YXMgcHJldHR5IGdvb2QgZm9yIG1lLiBJIGhhdmUgYSBiaWcgZmFtaWx5LiBUaGF0IHdhcyBncmVhdC4gQnV0IGl0IHdhcyBzdGlsbCBub3QgdGhlIGVtcG93ZXJpbmcgYmlydGggdGhhdCBJIHdhbnRlZC4gSSBkaWQgZmVlbOKAkyBJIGRvbuKAmXQgd2FudCB0byBzYXkgSSBkaWRu4oCZdCBmZWVsIGVtcG93ZXJlZCBiZWNhdXNlIEMtc2VjdGlvbiBpcyBiYWRhc3MuIEl04oCZcyBoYXJkLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IFllYWguIE1obW0sIHllYWguwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1hY3k6IEl04oCZcyBub3QgdGhlIGVhc3kgd2F5IG91dCBldmVyLiBUaGVyZSBpcyBubyBlYXN5IHdheSBvdXQgb2YgYmlydGguIEkgZG8gd2FudCB0byBwcmVmYWNlIHRoYXQgYW5kIHNheSBpZiB0aGF04oCZcyB3aGF0IGVuZHMgdXAgaGFwcGVuaW5nIGFuZCB5b3Ugb25seSBoYXZlIHR3byBraWRzIGFuZCB5b3Ugb25seSBoYXZlIHR3byBDLXNlY3Rpb25zLCB0aGF04oCZcyBva2F5IHRvby4gSSBrbmV3IHdlIHdlcmVu4oCZdCBkb25lIGhhdmluZyBraWRzLiBJIHdhbnRlZCB0aGUgYmlydGggSSB3YW50ZWQuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPkkgZGlkIG5vdCBwbGFuIHRvIGdldCBwcmVnbmFudCB3aXRoIHN1Y2ggYSBzaG9ydCB0dXJuYXJvdW5kIHRpbWUuIEkgd2FzIGFsbW9zdCA4IG1vbnRocyBwb3N0cGFydHVtIHdoZW4gd2UgZm91bmQgb3V0IHdlIHdlcmUgcHJlZ25hbnQgYWdhaW4uIFdlIHdlcmUgYSBsaXR0bGUgc3VycHJpc2VkLiBJIG1lYW4sIHdlIGFyZSBncm93biBhZHVsdHMuIEl0IHNob3VsZG7igJl0IGJlIHRoYXQgc3VycHJpc2luZy7CoDwvcD48cD48YnIgLz48L3A+PHA+TWVhZ2FuOiBCdXQgc3RpbGwsIGl0IGNhbiBiZSBhIGxpdHRsZSBhbGFybWluZyB3aGVuIHlvdSB3ZXJlbuKAmXQgbWVudGFsbHkgcHJlcGFyaW5nIGZvciB0aGF0LsKgPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5OiBJIGhhZCBqdXN0IGZpbmlzaGVkIGJyZWFzdGZlZWRpbmcuIEkgd2FzIGp1c3Qgc3RhcnRpbmcgdG8gdHJhY2sgYW5kIGFsbCBvZiB0aGVzZSB0aGluZ3Mgc28gSSB3YXMgbGlrZSwg4oCcT2ggbm8u4oCdIEJ1dCB0aGF0IHdhcyBraW5kIG9mIHdoZW4gbXkgd29yayByZWFsbHkgc3RhcnRlZCBmb3IgbWUgYmVjYXVzZSBJIHdhcyBsaWtlLCDigJxPa2F5LiBXZSBhcmUgZG9pbmcgdGhpcyBhZ2FpbiBhbmQgSeKAmW0gZ29pbmcgdG8gZG8gdGhpcyB0aGUgd2F5IEkgd2FudC4gVGhpcyBpcyBnb2luZyB0byBiZSBob3cgSSB3YW50IGl0IHRvIGdvLiBUaGlzIGlzIG15IHN0b3J5IGFuZCB0aGlzIGlzIGdvaW5nIHRvIGJlIGFuIGVzc2VudGlhbCBjb21wb25lbnQgb2Ygd2hvIEkgYW0gYXMgYSB3b21hbiBhbmQgYXMgYSBtb3RoZXIgZ29pbmcgZm9yd2FyZCBmb3IgdGhlIHJlc3Qgb2YgbXkgbGlmZS4gSSBuZWVkIHRoaXMgdG8gZ28gdGhlIHdheSBJIHdhbnQgaXQgdG8gZ28u4oCdIEkgd2FudGVkIGl0IHRvIGdvIHRoZSB3YXkgR29kIHdhbnRlZCBpdCB0byBnbyBvZiBjb3Vyc2UsIGJ1dCBJIHdhcyBsaWtlLCDigJxJ4oCZbSBnb2luZyB0byB0YWtlIG1vcmUgY29udHJvbC7igJ0gPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IENhbiBJIGFkZCBzb21ldGhpbmcgdG8gdGhhdD8gU29ycnkgdG8gaW50ZXJydXB0LCBidXQgdGhlcmUgYXJlIHNvIG1hbnkgdGltZXMgdGhhdCBJIGhlYXIgcGVvcGxlLCBJIHJlYWQgb24gc29jaWFsIG1lZGlhIHRoYXQgcGVvcGxlIGFyZSBnZXR0aW5nIGFmdGVyIG1vbXMgYW5kIHBhcmVudHMgd2hvIGFyZSBsaWtlLCDigJxJIHdhbnQgdGhpcyBiaXJ0aC4gVGhpcyBpcyB3aGF0IEkgd2FudC4gVGhpcyBpcyB3aGF0IEkgZmVlbCBJIG5lZWQs4oCdIG9yIHdoYXQgeW91IGFyZSBzYXlpbmcuIOKAnEkgd2FudCBpdCB0byBnbyBhIGNlcnRhaW4gd2F5LuKAnSBUaGV5IGFyZSBsaWtlLCDigJxXaHkgZG8geW91IGhhdmUgdG8gZm9jdXMgb24gd2hhdCB5b3Ugd2FudD8gSXTigJlzIG5vdCB3aGF0IHlvdSB3YW50LiBJdOKAmXMgd2hhdOKAmXMgYmVzdCBmb3IgdGhlIGJhYnku4oCdIFRoZXkgYXJlIHJhaWxpbmcgb24gdGhlc2UgcGVvcGxlLsKgPC9wPjxwPjxiciAvPjwvcD48cD5JIHdhbnQgdG8gc3RvcCBhbmQgc2F5IHRoYXQgd2hhdCB5b3Ugc2FpZCBpcyBva2F5LiBJIGZlZWwgbGlrZSBtYXliZSBhIGxpdHRsZSBwYXNzaW9uYXRlIGFib3V0IHRoYXQgdG9vIGJlY2F1c2Ugc28gbWFueSBwZW9wbGUgd2VyZSBuYXlzYXllcnMgdG8gbWUuIOKAnEl0IGRvZXMgbm90IG1hdHRlciB3aGF0IHlvdSB3YW50LiBJdOKAmXMgd2hhdOKAmXMgYmVzdCBmb3IgdGhlIGJhYnku4oCdIEl04oCZcyBsaWtlLCB3ZWxsIGd1ZXNzIHdoYXQ/IFRoYXTigJlzIGFsc28gbWF5YmUgd2hhdOKAmXMgYmVzdCBmb3IgbXkgYmFieS7CoDwvcD48cD48YnIgLz48L3A+PHA+TWFjeTogUmlnaHQuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1lYWdhbjogSXTigJlzIG9rYXkgdG8gc2F5LCBXb21lbiBvZiBTdHJlbmd0aCwg4oCcSSB3YW50IHRoaXMgYmlydGguIFRoaXMgaXMgd2hhdCBJIHdhbnQu4oCdIEFuZCB5b3UgZGVzZXJ2ZSB0aGF0LiBZb3UgZGVzZXJ2ZSB0byBnbyBhZnRlciB3aGF0IHlvdSB3YW50LsKgPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5OiBJdCBpcyBoYXJkIGFuZCBiZWluZyBhIG1vbSBpcyBoYXJkLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IFllcy7CoDwvcD48cD48YnIgLz48L3A+PHA+TWFjeTogWW91IGNhbiBzdGFydCBvdXQgaW4gYSB3YXkgdGhhdCB5b3UgZmVlbCBlbXBvd2VyZWQuIEl0IGlzIGxpZmUtY2hhbmdpbmcuIEl0IHJlYWxseSBpcy7CoDwvcD48cD48YnIgLz48L3A+PHA+TWVhZ2FuOiBJdCBpcy4gU28gc29ycnkgZm9yIGludGVycnVwdGluZywgYnV0IEkganVzdCB3YW50ZWQgdG8gZ2l2ZSBhIGxpdHRsZSB0aWRiaXQgdGhhdCBpdOKAmXMgb2theSBmb3IgcGVvcGxlIHRvIHdhbnQgd2hhdCB0aGV5IHdhbnQuIEkgd2FudGVkIGEgd2hpdGUgdmVoaWNsZS4gSSB3YXMgZ29pbmcgdG8gZmluZCBhIHdoaXRlIHZlaGljbGUuIEl04oCZcyBva2F5IHRvIGdldCB3aGF0IHlvdSB3YW50IGFuZCB0byBwdXQgZm9ydGggZW5lcmd5IGFuZCB0byBzYXkgdGhhdCBvdXQgbG91ZCwg4oCcSSB3YW50IHRoaXMgVkJBQy4gSeKAmW0gZ29pbmcgdG8gZ2V0IHRoaXMuIEkgd2FudCBpdC7igJ3CoDwvcD48cD48YnIgLz48L3A+PHA+TWFjeTogWW91IHNwZW5kIGFsbW9zdCAxMCBtb250aHMgdGhpbmtpbmcgYWJvdXQgdGhpcyBhbmQgcHJheWluZyBhYm91dCBpdCB3aGVyZWFzIHlvdSB0YWxrIHRv4oCTIEkgbWVhbiwgaXQgd2FzbuKAmXQgYXMgaW1wb3J0YW50IHRvIGFueW9uZSBlbHNlIGluIG15IGxpZmUgZXhjZXB0IGZvciBtZS4gVGhhdCB3YXMgb2theS4gRXNwZWNpYWxseSB0aGUgZG9jdG9ycyBhbmQgdGhlIHByb3ZpZGVycywgSeKAmW0ganVzdCBhbm90aGVyIHBlcnNvbiB0byB0aGVtIGFuZCB5ZXMsIHRoZXJlIGFyZSBzb21lIHJlYWxseSBncmVhdCBwcm92aWRlcnMgb3V0IHRoZXJlIGFuZCB0aGV5IGRvIGNhcmUsIGJ1dCB0aGV5IGFyZSBhdCB0aGVpciBqb2IuIFRoZXkgYXJlIGRvaW5nIHRoZWlyIGpvYi4gV2VsbCwgbXkgam9iIGlzIHRvIGJlIGEgbW90aGVyLiBUaGF04oCZcyBteSBqb2IsIHNvIGRvaW5nIHdoYXQgc2VydmVzIG1lIHdlbGwgd2FzIGJpcnRoaW5nIG15IGJhYnkgdGhlIHdheeKAk8KgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IEhhdmluZyBhIFZCQUMuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1hY3k6IEhhdmluZyBhIFZCQUMuIFNvIEkgcmVhbGx5IGhpdCB0aGUgZ3JvdW5kIHJ1bm5pbmcuIFRoZXJlIHdlcmUgYSBmZXcgZ2lybHMgaW4gbXkgdG93biB3aG8gaGFkIHJlY2VudGx5IGhhZCBob21lYmlydGhzLiBUaGV5IHdlcmVu4oCZdCBWQkFDcywgYnV0IHRoZXkgd2VyZSBWQkFDcyBzbyBJIHJlYWNoZWQgb3V0IHRvIHRoZW3igJMgc2hvdXRvdXQgdG8gbXkgZ2lybHMgTWVnYW4gYW5kIEVtaWx5LiBUaGV5IHdlcmUgc28gaGVscGZ1bCBiZWNhdXNlIHRoZXkgd2VyZSByZWFsIHBlb3BsZS4gSSByZWFjaGVkIG91dCB0byB5b3UgZ3V5cyBhbmQgSSBqdXN0IHdhbnRlZCB0byBrbm93LCDigJxIZXksIHdoYXQgaXMgdGhlIHJlc2VhcmNoIG9uIHJlYWxseSBjbG9zZSBwcmVnbmFuY2llcz/igJ0gYmVjYXVzZSBJIHdhc27igJl0IGdvaW5nIHRvIGhpdCB0aGUgMTggbW9udGhzLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IFRoZSAxOCBtb250aHMuIFlvdXIgYmFiaWVzIHdlcmUgZ29pbmcgdG8gYmUgMTcgbW9udGhzIGFwYXJ0LCByaWdodD/CoDwvcD48cD48YnIgLz48L3A+PHA+TWFjeTogMTcgbW9udGhzLiBTbyB0aGF0IHdhcyBldmVuIGFubm95aW5nIHRvbyBiZWNhdXNlIEkgd2FzIGxpa2UsIOKAnEnigJltIHJpZ2h0IHRoZXJlLiBDb21lIG9uLuKAnSBZb3UgZ3V5cyB3ZXJlIGxpa2UsIOKAnEdvIGpvaW4gdGhlIEZhY2Vib29rIENvbW11bml0eSBncm91cC7igJ0gSSB3YXMgc28gZ2xhZCB0aGF0IEkgZGlkIGJlY2F1c2UgSSB3YXMganVzdCBmaW5kaW5nIHN0b3J5IGFmdGVyIHN0b3J5IGFmdGVyIHBvc3QgYWZ0ZXIgcG9zdC4gTm90IG9ubHkgd2VyZSBzbyBtYW55IHdvbWVuIGhhdmluZyBWQkFDcyBhZnRlciB0d28mIzQzOyBDLXNlY3Rpb25zLCBidXQgdGhleSB3ZXJlIGNsb3NlIHRvZ2V0aGVyLiBTb21lIHdlcmUgbGlrZSwg4oCcTWluZSB3ZXJlIDEyIG1vbnRocyBhcGFydC7igJ0gSeKAmW0gbGlrZSwg4oCcT2gsIEnigJltIGdvb2QgdG8gZ28gdGhlbi7igJ0gPC9wPjxwPjxiciAvPjwvcD48cD5JdCB3YXMgc28gbmljZSBoYXZpbmcgdGhhdCBjb21tdW5pdHkuIEkgd2FzIGV2ZW4gYWJsZSB0byBqb2luIGEgY29tbXVuaXR5IHdpdGhpbiB0aGUgY29tbXVuaXR5IG9mIGV2ZXJ5b25lIHdobyB3YXMgZHVlIGF0IHRoZSBzYW1lIHRpbWUgYXMgbWUgc28gd2hlbiB3ZSBnb3QgY2xvc2UsIHdlIGhhZCBhIGdyb3VwIG1lc3NhZ2UgYW5kIGV2ZXJ5b25lIHdhcyBsaWtlLCDigJxJcyBpdCBoYXBwZW5pbmcgdG9kYXk/IElzIGl0IGhhcHBlbmluZyB0b2RheT/igJ0gSXQgd2FzIHNvIG5pY2Ugbm90IHRvIGJlIGFsb25lIGluIHRoYXQuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPkkgYWxzbyBoYWQgdG8gZmluZCBhIG1pZHdpZmUgYmVjYXVzZSBJIGtuZXcgbXkgcHJvdmlkZXJzIHdlcmUgbm90IGdvaW5nIHRvIGJlIHN1cHBvcnRpdmUgb2YgVkJBQyBhZnRlciB0d28uIEkgYWN0dWFsbHkgaGFkIGEgaGFyZCB0aW1lIGZpbmRpbmcgYSBtaWR3aWZlIHdoaWNoIHdhcyBhbHNvIGFubm95aW5nIGJlY2F1c2UgSSB3YXMgbWV0IHdpdGggc29tZSBtZWR3aXZlcyB3aG8gd2VyZSBqdXN0IHJlYWxseSBnb2luZyB0byBzdGljayB0byB0aGF0IDE4IG1vbnRocy7CoDwvcD48cD48YnIgLz48L3A+PHA+PGJyIC8+PC9wPjxwPjxiciAvPjwvcD48aDE+MTg6NDQgRmluZGluZyBhIHN1cHBvcnRpdmUgaG9tZSBiaXJ0aCBtaWR3aWZlPC9oMT48cD48YnIgLz48L3A+PHA+VGhlbiBJIGhhcHBlbmVkIHRvIGp1c3QgZmluZCBhIHdvbWFuIHdobyB3YXMgbGlrZSwg4oCcSeKAmXZlIG5ldmVyIGRvbmUgdGhpcyBiZWZvcmUuIFlvdSBhcmUgbXkgZmlyc3QgVkJBQyBhZnRlciB0d28s4oCdIGJ1dCBzaGUgd2FzIGEgbWlkd2lmZSB3aG8gd2FzIHZlcnkga25vd2xlZGdlYWJsZS4gU2hlIGhhZCBkb25lIGxvdHMgb2YgaG9tZSBiaXJ0aHMuIFNoZSBoYWQgZG9uZSBWQkFDcywgYnV0IG5vdCBhZnRlciB0d28uwqA8L3A+PHA+PGJyIC8+PC9wPjxwPlNoZSB3YXMgbGlrZSwg4oCcSWYgd2UgZG9u4oCZdCBzdGFydCBhY2NlcHRpbmcgdGhlc2UgcGF0aWVudHMsIGhvdyBhcmUgd2UgZXZlciBnb2luZyB0byBjaGFuZ2UgdGhlIHN0YXR1cyBxdW8/IEhvdyBhcmUgd2UgZXZlciBnb2luZyB0byBtYWtlIGEgY2hhbmdlP+KAncKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IEJvb20uPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5OiBSaWdodC7CoDwvcD48cD48YnIgLz48L3A+PHA+TWVhZ2FuOiBJdOKAmXMgc28gdHJ1ZSB0aG91Z2guwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1hY3k6IEkgd2FzIGxpa2UsIOKAnE9rYXkuIFN0YXRpc3RpYyBtZSwgcGxlYXNlLiBJIHdvdWxkIGxvdmUgdG8gYmUgYSBzdGF0aXN0aWMgZm9yIHRoZSBwb3NpdGl2ZS7igJ0gVGhlIG9ubHkgdGhpbmcgd2FzIEkgd2FzIGxpa2UsIOKAnEkgY2Fu4oCZdCBiZSBvbmUgZm9yIGEgaG9zcGl0YWwgYmlydGgsIGJ1dCBpdOKAmXMgZmluZS7igJ3CoDwvcD48cD48YnIgLz48L3A+PHA+TWVhZ2FuOiBUaGF04oCZcyBva2F5LiBUaGF04oCZcyBva2F5LsKgPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5OiBTbyBJIGZvdW5kIFNhcmFoLiBJIHN0YXJ0ZWQgbXkgdmlzaXRzIHdpdGggaGVyLiBJIGhhZCB0byB0cmF2ZWwgYW4gaG91ciB0byBteSB2aXNpdHMuIEl0IHdhc27igJl0IHRoZSB3b3JzdCB0aGluZyBldmVyLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IFRoYXTigJlzIGEgY29tbWl0bWVudCB0aG91Z2guIFRoYXTigJlzIGEgY29tbWl0bWVudC7CoDwvcD48cD48YnIgLz48L3A+PHA+TWFjeTogVG93YXJkcyB0aGUgZW5kLCBzaGUgY2FtZSB0byBtZSBhIGxvdCBtb3JlIHdoaWNoIHdhcyBzbyBuaWNlLiBTbyBuaWNlLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IFRoYXTigJlzIHJlYWxseSBuaWNlLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5OiBUaGVuIHdlIGRpZCBhIGNvdXBsZSBvZiBwaG9uZSBjYWxscywgYnV0IHdlIGFsc28gdGV4dGVkIGFsbCBvZiB0aGUgdGltZSBhbmQgd291bGQgRmFjZVRpbWUuIEl0IHdhcyBqdXN0IHNvIHBlcnNvbmFsLiBJIGFsc28gcmVjZWl2ZWQgY28tY2FyZSB3aXRoIGFub3RoZXIgdGhpcmQgbG9jYWwgcHJvdmlkZXIuIEkgZGlkIHRoYXQgYmVjYXVzZSBteSBtaWR3aWZlIHdhbnRlZCB0byBoYXZlIG1lIGdldCB1bHRyYXNvdW5kcyB0byBjaGVjayBteSB1dGVydXMuIFNoZSB3YW50ZWQgdG8gY2hlY2sgZm9yIHByZXZpYSBhbmQgd2Ugd2FudGVkIHRvIGNoZWNrIGZvcuKAkyB3aGF04oCZcyB0aGUgb3RoZXIgb25lPyBJ4oCZbSBibGFua2luZy7CoDwvcD48cD48YnIgLz48L3A+PHA+TWVhZ2FuOiBBY2NyZXRhP8KgPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5OiBZZXMsIHNvIHNoZSBqdXN0IHdhbnRlZCB0byBiZSBhd2FyZS7CoDwvcD48cD48YnIgLz48L3A+PHA+TWVhZ2FuOiBQbGFjZW50YWwgaXNzdWVzIGFuZCBtYWtlIHN1cmUgdGhlIHBsYWNlbnRhIGlzIG91dCBvZiB0aGUgd2F5IGFuZCBhbGwgaXMgZG9pbmcgb2theS4gWW914oCZcmUgYWN0dWFsbHkgY2xlYXIgdG8gaGF2ZSBhIFZCQUMuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1hY3k6IFllYWguwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1lYWdhbjogV2hpY2ggaXMgdmVyeSByZXNwb25zaWJsZSBvZiBoZXIuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1hY3k6IEkgcmVjZWl2ZWQgbXkgY28tY2FyZS4gSSB3b3VsZCBnbyBpbiB0aGVyZS4gSSBkb27igJl0IGtub3cuIEkgYWxtb3N0IGhhZCBhIGNoaXAgb24gbXkgc2hvdWxkZXIgYmVjYXVzZSBJIHdhcyBsaWtlLCDigJxJIGRvbuKAmXQgcmVhbGx5IG5lZWQgeW91IGd1eXMs4oCdIGtpbmQgb2YuIEkgZGlkbuKAmXQgbGVhdmUgdGhvc2UgYXBwb2ludG1lbnRzIGZlZWxpbmcgbGlrZSBJIHdhbnRlZCB0byBjcnkgbGlrZSBJIGRpZCB3aXRoIG15IHNlY29uZCBwcmVnbmFuY3kgYmVjYXVzZSBJIGtuZXcgdGhhdCBJIGhhZCBzb21ldGhpbmcgYmV0dGVyIHBsYW5uZWQuIFNvIGl0IHdhc27igJl0IGFzIHVwc2V0dGluZywgYnV0IHRoZXkgd2VyZSBwcmV0dHkgcm91Z2ggb24gbWUuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPkkgaGFkIGV4cHJlc3NlZCBteSBpbnRlcmVzdCBpbiBhIFZCQUMgYWZ0ZXIgdHdvIGFuZCB5b3UgaGF2ZSB0byBzZWUgdGhlIHNlcmllcyBvZiBwcm92aWRlcnMgd2l0aGluIHRoZSBvZmZpY2UuIEkgaGFkIG9ubHkgb25lIHdobyB3YXMgYSBsaXR0bGUgYml0IHlvdW5nZXIgd2hpY2ggd2FzIGludGVyZXN0aW5nLCBidXQgaGUgd2FzIHRoZSBvbmx5IG9uZSB3aG8gd2FzIGxpa2UsIOKAnFllYWguIEkgcmVhbGx5IHN1cHBvcnQgdGhpcyBhbmQgdGhlIGJpcnRoIHlvdSB3YW50IHRvIGhhdmUuIEnigJltIGdvaW5nIHRvIGdpdmUgeW91IGEgcmVmZXJyYWwgdG8gVUMgU2FuIEZyYW5jaXNjbyBhbmQgd2hlbiB3ZSBnZXQgdG8gdGhlIGVuZCwgSSB3YW50IHlvdSB0byBzdGFydCBjYXJlIHRoZXJlIGFuZCBwbGFuIHRvIGhhdmUgeW91ciBiaXJ0aCB0aGVyZS7igJ3CoDwvcD48cD48YnIgLz48L3A+PHA+SGUgd2FzIHRoZSBvbmx5IG9uZSB3aG8gd2FzIGxpa2UsIOKAnEkgc3VwcG9ydCB0aGUgYmlydGggeW91IHdhbnQgdG8gaGF2ZS7igJ0gRXZlcnlvbmUgZWxzZSB3YXMgcHJldHR5IGF3ZnVsLiBUaGV5IHRvbGQgbWUsIOKAnElmIHlvdSBUT0xBQyBhbmQgeW91ciB1dGVydXMgcnVwdHVyZXMsIHlvdSB3aWxsIGRpZSBhbmQgeW91ciBiYWJ5IHdpbGwgZGllLuKAncKgPC9wPjxwPjxiciAvPjwvcD48cD5JIHdhcyBsaWtlLCBJIHdpbGwgbmV2ZXIgZm9yZ2V0IGdldHRpbmcgaW4gbXkgY2FyIGFuZCB0ZXh0aW5nIG15IG1pZHdpZmUgYW5kIGJlaW5nIGxpa2UsIOKAnENhbiB5b3UgYmVsaWV2ZSB0aGF0IGhlIGp1c3Qgc2FpZCB0aGlzIHRvIG1lP+KAnSBJIHdhcyBqdXN0IGxpa2UsIOKAnEFyZSB5b3UgR29kPyBEbyB5b3Uga25vdz/igJ0gSG93IGNvdWxkIHlvdSBzYXkgdGhhdCB0byBzb21lb25lPyDigJxZb3Ugd2lsbCBkaWUu4oCdIEJlY2F1c2UgdGhhdOKAmXMgbm90IHRoZSBjYXNlIGF0IGFsbC7CoDwvcD48cD48YnIgLz48L3A+PHA+VGhhdCB3YXMgaW50ZXJlc3RpbmcgYnV0IEkga25ldy4gTGlrZSBJIHNhaWQsIEkga25ldyBJIGhhZCBhIGJhY2t1cCBwbGFuIGluIHRoZSBiYWNrIG9mIG15IG1pbmQuIEl0IHdhcyBqdXN0IGV5ZS1vcGVuaW5nIGZvciBtZSBtb3JlIHRoYW4gYW55dGhpbmcuIEl0IHdhc27igJl0IHVwc2V0dGluZy7CoDwvcD48cD48YnIgLz48L3A+PHA+TWVhZ2FuOiBTb21lb25lIHRoYXQgZG9lc27igJl0IG5lY2Vzc2FyaWx5IGtub3cgdGhlIGV2aWRlbmNlIG9mIHRoYXQsIGl0IGNhbiBiZSB0ZXJyaWZ5aW5nLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5OiBZZWFoLiBZZXMsIHRvdGFsbHkuIEFuZCB5b3Uga25vdyB3aGF0PyBJdOKAmXMgZnJ1c3RyYXRpbmcgYmVjYXVzZSBhIGxvdCBvZiBwZW9wbGUganVzdCB0cnVzdCB0aGVpciBwcm92aWRlcnMuIEnigJltIGEgdmVyeSBza2VwdGljYWwgcGVyc29uLiBJ4oCZbSB2ZXJ5IGNvbnNwaXJhdG9yaWFsLCBzbyBJ4oCZbSBhbHdheXMgcmVzZWFyY2hpbmcgdGhpbmdzIGFuZCBsb29raW5nIGludG8gdGhpbmdzLCBidXQgcGVvcGxlIHdobyBhcmUgbm90IHByb25lIHRvIHRoYXQgYXJlIGp1c3QgZ29pbmcgdG8gdHJ1c3Qgd2hhdCB0aGUgZG9jdG9yIHNheXMgYmVjYXVzZSB0aGV5IHdlbnQgdG8gc2Nob29sIGFuZCB0aGV5IGFyZSBzbWFydGVyIHRoYW4gdGhlbS4gSXTigJlzIHNvIHVuZm9ydHVuYXRlIHRoYXQgaXTigJlzIGNhdXNpbmcgYSBoaWdoIEMtc2VjdGlvbiByYXRlIGZvciBubyByZWFzb24uwqA8L3A+PHA+PGJyIC8+PC9wPjxoMT4yMzoyNCBWQkEyQyBwcmVwIGR1cmluZyBwcmVnbmFuY3k8L2gxPjxwPjxiciAvPjwvcD48cD5NYWN5OiBUaGF0IHdhcyBhIGJ1bW1lciBidXQgYW55d2F5LCB0aHJvdWdob3V0IG15IHByZWduYW5jeSwgSSBkaWQgYWxsIG9mIHRoZSB0aGluZ3MuIEkgZGlkIG15IFZCQUMgTGluayBjb3Vyc2UuIEkgbG92ZWQgaXQuIEl0IHdhcyBncmVhdCB0byBoYXZlIHRoYXQuIEkgZGlkIGEgTGFtYXplIGNsYXNzIHdoaWNoIHdhcyByZWFsbHkgZnVuLiBJdCB3YXMgZnVubnkgYmVjYXVzZSB3ZSB3ZXJlIHRoZSBvbmx5IHBhcmVudHMgaW4gdGhlcmUgd2l0aCBvdGhlciBraWRzLiBPbmUgb3RoZXIgbGFkeSB3YXMgYSBWQkFDLCBidXQgdGhlIHJlc3Qgd2VyZSBhbGwgZmlyc3QtdGltZSBwYXJlbnRzLiBUaGV5IHdlcmUgbGlrZSwg4oCcV2hhdCBhcmUgeW91IGRvaW5nIGhlcmU/4oCdIEnigJltIGxpa2UsIOKAnFRoaXMgaXMgbmV3IGZvciBtZS7igJ0gQWdhaW4sIHNob3V0b3V0IHRvIE1vZGVzdG8gQmlydGggYW5kIEJleW9uZC4gVGhleSBhcmUgZmFudGFzdGljLiBUaGV5IGhhdmUgYSBncmVhdCBzZXQgb2YgZG91bGFzLiBJ4oCZbSBub3cgb24gYSBmcmllbmRseSBiYXNpcyB3aXRoIHRoZW0uIFRoZXkgd2VyZSBncmVhdCB0byBoYXZlIGFuZCB0aGV5IHdlcmUgcmVhbGx5IHN1cHBvcnRpdmUgb2YgbXkgd2hvbGUgam91cm5leS7CoDwvcD48cD48YnIgLz48L3A+PHA+TGV04oCZcyBzZWUgd2hhdCBlbHNlLiBJIGRpZCBhIEh5cG5vYmlydGhpbmcgY2xhc3MuIEkgcmVhZCBJbmEgTWF54oCZcyBHdWlkZSB0byBDaGlsZGJpcnRoLiBJIG1lYW4sIEkgd2Fsa2VkIGFuZCBJIHN0YXllZCBpbiBzaGFwZS4gSSBrZXB0IGRvaW5nIENyb3NzRml0LiBJIGRpZCBDcm9zc0ZpdCBmb3IgYWxsIHRocmVlIG9mIG15IHByZWduYW5jaWVzIHNvIEkga2VwdCBvbi4gSSBhdGUgaGVhbHRoeS4gSSBkcmFuayBsb3RzIG9mIHdhdGVyLiBJIGRpZCBhbGwgb2YgdGhlIHRoaW5ncy4gQnV0IEkga25ldyB0aGF0IHdoZW4gaXQgY2FtZSBkb3duIHRvIGl0LCBteSBtaW5kIHdhcyBnb2luZyB0byBlaXRoZXIgbWFrZSBvciBicmVhayBtZS48L3A+PHA+PGJyIC8+PC9wPjxwPkZhc3QgZm9yd2FyZCB0byA0MSB3ZWVrcyBhbmQgSSB3YXMgZ2V0dGluZyB2ZXJ5LCB2ZXJ5IGFueGlvdXMuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1lYWdhbjogV2VyZSB5b3UgZ2V0dGluZyBhbnhpb3VzIGJlY2F1c2UgeW91IHdlcmUgZ2V0dGluZyByZWFkeSB0byBoYXZlIGEgYmFieSB0eXBlIHRoaW5nIG9yIHdlcmUgcGVvcGxlIGdpdmluZyB5b3Ugc29tZSBncmllZiB0aGF0IHlvdSB3ZXJlIG92ZXIgNDAgd2Vla3M/IDwvcD48cD48YnIgLz48L3A+PHA+TWFjeTogQnkgdGhlIHRpbWUgSSB3YXMgNDAtNDEgd2Vla3MsIHRoZSBncmllZiBhbmQgdGhlIGRvdWJ0IGFuZCB0aGUgbmF5c2F5ZXJzIHRoYXQgSSBnb3Qgd2VyZSBraW5kIG9mIGdvbmUuIE1vc3Qgb2YgdGhlIHBlb3BsZSBpbiBteSBsaWZlIHdlcmUgc3VwcG9ydGl2ZS4gSSBhbHdheXMgZ290IHRoYXQgcXVlc3Rpb24gb2YsIOKAnFdoYXQgaWYgdGhpcyBoYXBwZW5zP+KAnSBJIGxpdmUgNSBtaW51dGVzIGZyb20gdGhlIGhvc3BpdGFsLCBzbyBJIHdhcyBub3QgdG9vIHdvcnJpZWQgYWJvdXQgaXQuIEkgd2FzIG1vcmUgYW54aW91cyBvZiwgSSB3YXMgcmVhZHkgdG8gbWVldCB0aGlzIGJhYnkuIEkgd2FzIHRoZSBiaWdnZXN0IEnigJlkIGV2ZXIgYmVlbi4gVGhpcmQgYmFieSwgb25seSAxNyBtb250aHMgYXBhcnQuIE15IGJlbGx5IHdhcyBodWdlLiBJdCB3YXMgaG90LiBJIHdhcyBzd2VsbGluZy4gSSB3YXMgcmVhZHkgdG8gYmUgZG9uZSwgYnV0IEkgYWxzbyBoYWQgbmV2ZXIgbGFib3JlZCBiZWZvcmUuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPkkgaGFkIG5vIGNsdWUgd2hhdCBteSBib2R5IHdhcyBnb2luZyB0byBkby4gV2FzIEkganVzdCBnb2luZyB0byBnbyBpbnRvIHNwb250YW5lb3VzIGxhYm9yIGF0IDQwIHdlZWtzPyBBdCAzOT8gSSBoYWQgbm8gaWRlYS4gU28gZXZlcnkgZGF5IHRoYXQgcGFzc2VzLCBJ4oCZbSBzdXJlIHlvdSByZW1lbWJlciB0aGF0IHRvbywgZXZlcnkgZGF5IHdhcyBhIHdob2xlIHdlZWsgd2hlcmUgeW91IHdha2UgdXAgaW4gdGhlIG1vcm5pbmcgYW5kIEkgd291bGQganVzdCBjcnksIOKAnEkgY2Fu4oCZdCBiZWxpZXZlIEnigJltIHN0aWxsIHByZWduYW50LuKAncKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IEkgcmVtZW1iZXIgZ29pbmcgdG8gYmVkIGFuZCBJIHdhcyBsaWtlLCDigJxUb25pZ2h0IGNvdWxkIGJlIHRoZSBuaWdodCzigJ0gYW5kIHRoZW4gSeKAmWQgd2FrZSB1cCBhbmQgSSB3YXMgbGlrZSwg4oCcSXQgd2FzbuKAmXQgdGhlIG5pZ2h0LOKAnSB0aGVuIHRoYXQgbmlnaHQsIEnigJlkIGJlIGxpa2UsIOKAnE1heWJlIHRvbmlnaHQs4oCdIGFuZCBpdCBqdXN0IGtlcHQgaGFwcGVuaW5nLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5OiBTbyBhbm5veWluZy4gSSBoYWQgc28gbXVjaCBwcm9kcm9tYWwgbGFib3IuIEkgaGFkIGNvbnRyYWN0aW9ucy4gSSBjb3VsZCB0aW1lIHRoZW0gYW5kIEkgd2FzIGxpa2UsIOKAnE9oLCB0aGV5IGFyZSAyMCBtaW51dGVzIGFwYXJ0LiBUaGV5IGFyZSBmb3Igc3VyZSBnb2luZyB0byBnZXQgY2xvc2VyLOKAnSB0aGVuIEnigJlkIGdvIHRvIHNsZWVwLCB3YWtlIHVwLCBhbmQgYmUgbGlrZSwg4oCcT2theS4gSGVyZSB3ZSBnbyBhZ2Fpbi7igJ3CoDwvcD48cD48YnIgLz48L3A+PHA+TGV04oCZcyBzZWUuIFNvIG9uIGEgTW9uZGF5LCBJIGRpZCBhY3VwdW5jdHVyZS4gVGhlbiBvbiBhIFdlZG5lc2RheSBtb3JuaW5nLCBJIHdhcyA0MSB3ZWVrcyBhbmQgSSB3ZW50IGFuZCBnb3QgYSBtYXNzYWdlLiBJIGdvdCBzb21lIGFjdXByZXNzdXJlLiBZb3UgbmV2ZXIga25vdyBpZiB0aGVzZSBhcmUgdGhlIHRoaW5ncyB0aGF0IHJlYWxseSBnZXQgdGhpbmdzIGdvaW5nLCBidXQgc29tZXRpbWVzIHRoZXkgZG8uIEkgZ290IGEgbWFzc2FnZSBhbmQgc2hlIGdhdmUgbWUgc29tZSBtb3hpYnVzdGlvbiBzbyBJIGRpZCB0aGF0LiBZb3UgbGlnaHQgaXQgYW5kIGRvIGl0IGFyb3VuZOKAkyBteSBtb20gd2FzIGxpa2UsIOKAnFRoaXMgaXMgc28gaG9rZXku4oCdIEnigJltIGxpa2UsIOKAnElmIGl0IHdvcmtzLCB3aG8gY2FyZXM/4oCdIEkgd2FzIHRyeWluZyBldmVyeXRoaW5nLsKgPC9wPjxwPjxiciAvPjwvcD48cD5CdXQgSSBkaWRu4oCZdCB3YW50IHRvIGJlIGluZHVjZWQgYW5kIEkgaGFkbuKAmXQgaGFkIG15IG1lbWJyYW5lcyBzd2VwdCB5ZXQuIFRoYXQgd2FzIGdvaW5nIHRvIGJlIHRoZSBmaXJzdCBpbnRlcnZlbnRpb24gdGhhdCBteSBtaWR3aWZlIGFuZCBJIGFncmVlZCBvbiBiZWNhdXNlIHNoZSB3YXMgbGlrZSwg4oCcTGVnYWxseSBpbiBDYWxpZm9ybmlhLCB5b3UgY2Fu4oCZdCBnbyBwYXN0IDQyIHdlZWtzIGFuZCBoYXZlIGEgaG9tZSBiaXJ0aC7igJ0gSSB3YXMgbGlrZSwg4oCcT2theS4gSeKAmXZlIGdvdCBvbmUgd2Vlay4gT25lIHdlZWsgYW5kIHRoaXMgYmFieSB3aWxsIGJlIGhlcmUu4oCdwqA8L3A+PHA+PGJyIC8+PC9wPjxoMT4yNzo0NiBMYWJvciBiZWdpbnM8L2gxPjxwPjxiciAvPjwvcD48cD5NYWN5OiBUaGF0IFdlZG5lc2RheSBtb3JuaW5nLCBJIHdlbnQgYW5kIGdvdCBteSBtYXNzYWdlIGFuZCBieSAyOjAwIGluIHRoZSBhZnRlcm5vb24sIEkgd2FzIGxpa2UsIOKAnE9rYXkuIFRoaW5ncyBhcmUgc3RhcnRpbmcgdG8gcGljayB1cC7igJ0gSSBzdGFydGVkIGhhdmluZyBwcmV0dHkgaW50ZW5zZSBjb250cmFjdGlvbnMuIEkgd2FzIGhhdmluZyB0b+KAkyBJIGNvdWxkIHN0aWxsIHRhbGsuIEkgd2FzIHN0aWxsIHRha2luZyBjYXJlIG9mIG15IHR3byBsaXR0bGUgZ2lybHMsIGJ1dCBJIHdhcyBzdGFydGluZyB0byBmZWVsIHJlYWxseSB1bmNvbWZvcnRhYmxlLiBNeSBtb20gd2VudCBob21lLCB0aGVuIHNoZSBjYW1lIGJhY2suIE15IGh1c2JhbmQgZ2V0cyBvZmYgd29yayBhdCAzOjMwIGFuZCBpdCB3YXMgMjozMC4gSSB3YXMgZmVlZGluZyBteSB5b3VuZ2VzdCBvbmUgYSBzbmFjayBhbmQgaGUgd2FzIGxpa2UsIOKAnERvIHlvdSB3YW50IG1lIHRvIGNvbWUgaG9tZSBlYXJseT/igJ0gSSB3YXMgbGlrZSwg4oCcTm8sIEkgY2FuIHRvdGFsbHkgbWFrZSBpdCB1bnRpbCB5b3UgZ2V0IGhvbWUu4oCdwqA8L3A+PHA+PGJyIC8+PC9wPjxwPkkgaGFkIGEgY29udHJhY3Rpb24gd2hlcmUgSSBsZWFuZWQgb3ZlciBteSBraXRjaGVuIGNvdW50ZXIsIGFuZCB0aGVuIEkgd2FzIGxpa2UsIOKAnE9rYXkuIE1heWJlIGp1c3QgY29tZSBob21lIG5vdy7igJ0gSGUgY2FtZSBob21lLiBJIGp1c3QgZGlkbuKAmXQgZmVlbCBpdC4gSSB3YXMgc3RhcnRpbmcgdG8gZmVlbCBpcnJpdGF0ZWQgYnkgbXkga2lkcyBhbmQgSSB3YXMgbGlrZSwg4oCcSSBqdXN0IHdhbnQgdG8gZ28gaW4gbXkgcm9vbSBhbmQgd2F0Y2ggYSBzaG93IG9uIG15IGxhcHRvcC4gSSBqdXN0IHdhbnQgdG8gYmUgYWxvbmUu4oCdIEkgZGlkbuKAmXQgbmVjZXNzYXJpbHkgd2FudCB0aGVtIHRvIGxlYXZlIHlldCwgYnV0IEkgd2FudGVkIHRvIGJlIGFsb25lIGFuZCBJIHdhbnRlZCB0byBrbm93IHRoYXQgdGhleSB3ZXJlIHRha2VuIGNhcmUgb2YuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPkhlIGNhbWUgaG9tZSBhbmQgaGUgd2FzIHRha2luZyBjYXJlIG9mIHRoZW0uIEhlIHdhcyBsaWtlLCDigJxEbyB5b3UgdGhpbmsgdGhpcyBpcyBpdD8gTGV04oCZcyBjYWxsIG15IG1vbS7igJ0gSSB3YXMgbGlrZSwg4oCcWWVhaC4gSSB0aGluayB0aGlzIGlzIGhhcHBlbmluZyBhbmQgSSB0aGluayBpdOKAmXMgZ29pbmcgdG8gYmUgc29vbi7igJ0gSSBqdXN0IGRpZG7igJl0IGtub3cgaG93IGxvbmcgSSB3YXMgZ29pbmcgdG8gbGFib3IuIEl0IHdhcyBhIG15c3RlcnkuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk15IG1vdGhlci1pbi1sYXcgY2FtZSBhbmQgcGlja2VkIHVwIG15IGxpdHRsZSB0d28gZGF1Z2h0ZXJzLiBUaGF0IHdhcyBraW5kIG9mIHNhZCB3YXRjaGluZyB0aGVtIGxlYXZlIGtub3dpbmcgdGhlIG5leHQgdGltZSBJIHNhdyB0aGVtLCB3ZSB3ZXJlIGdvaW5nIHRvIGJlIGEgZGlmZmVyZW50IGZhbWlseeKAkyBhIGJldHRlciBmYW1pbHksIGJ1dCBhIGRpZmZlcmVudCBmYW1pbHkuIDwvcD48cD48YnIgLz48L3A+PHA+WWVhaC4gSSBqdXN0IGxhYm9yZWQgYXQgaG9tZS4gSXQgd2FzIHNvIG5pY2Ugbm90IGhhdmluZyB0byBnbyBhbnl3aGVyZS4gSSB0b29rIGEgc2hvd2VyLiBJIGhhZCBzb21lIHNuYWNrcy4gSSB3YXNu4oCZdCBzdXBlciBodW5ncnksIGJ1dCBJIGRlZmluaXRlbHkgc3RhcnRlZCBkcmlua2luZyBteSBlbGVjdHJvbHl0ZXMgYW5kIHN0YXJ0ZWQgcHJlcGFyaW5nIHRvIGJlIGh5ZHJhdGVkLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IFNtYXJ0LsKgPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5OiBJIHdhcyBsaWtlLCDigJxJ4oCZbSBwcmVwYXJpbmcgdG8gcnVuIGEgbWFyYXRob24gc28gSSBuZWVkIHRvIGdlYXIgdXAu4oCdIEkgZGlkbuKAmXQgbmFwLiBJ4oCZdmUgbmV2ZXIgYmVlbiBhIGdyZWF0IG5hcHBlciwgYnV0IEkgbGFpZCBhcm91bmQgYW5kIHdhdGNoZWQgc29tZSBzaG93cywgdGhlbiBJIGRpZG7igJl0IHRleHQgbXkgbWlkd2lmZSByaWdodCBhd2F5IGJlY2F1c2UgSSBoYWQgYmVlbiBidWdnaW5nIGhlciBzbyBtdWNoIHdpdGggYWxsIG9mIG15IHByb2Ryb21hbCBsYWJvciB0aGF0IEkgd2FzIGxpa2UsIOKAnEnigJltIG5vdCBnb2luZyB0byB0ZXh0IGhlciB1bnRpbCBpdOKAmXMgcmVhbGx5IGhhcHBlbmluZy7igJ0gQnV0IGJ5IDY6MDAgb3IgNzowMCBQTSwgaSB0ZXh0ZWQgaGVyIGFuZCB3YXMgbGlrZSwg4oCcSnVzdCBzbyB5b3Uga25vdywgbXkgY29udHJhY3Rpb25zIGFyZSBhYm91dCAxMCBtaW51dGVzIGFwYXJ0LuKAncKgPC9wPjxwPjxiciAvPjwvcD48cD5BcyB0aGV5IGdvdCBjbG9zZXIsIHNoZSB3YXMgbGlrZSwg4oCcT2theS4gSeKAmW0gZ29pbmcgdG8gY29tZSBub3cu4oCdwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk9uY2UgdGhlIHN1biBzdGFydGVkIHNldHRpbmcsIGl0IHdhcyBnZXR0aW5nIGEgbGl0dGxlIGJpdCBtb3JlIGludGVuc2UuIFdlIHNldCB1cCBteSBiaXJ0aCBzcGFjZSBhdCBob21lLiBJIHNldCB1cCBteSBwb29sLiBXZWxsLCBJIGRpZG7igJl0LiBNeSBodXNiYW5kIHNldCB1cCB0aGUgcG9vbCBhbmQgd2UgbGFpZCBvdXQgYWxsIG9mIHRoZSBzaGVldHMgb24gdGhlIGNvdWNoIGFuZCBodW5nIG15IGJpcnRoIGFmZmlybWF0aW9ucy4gQWN0dWFsbHksIHRoZXkgaGFkIGJlZW4gaGFuZ2luZy4gTXkgYmlydGggYWZmaXJtYXRpb25zIGhhZCBiZWVuIGhhbmdpbmcgZm9yIGEgY291cGxlIG9mIHdlZWtzIHNvIEkgc3RhcnRlZCBoYXZpbmcgdGhlbSBtZW1vcml6ZWQsIGJ1dCB3ZSB0dXJuZWQgb24gdGhlIHR3aW5rbGUgbGlnaHRzIGFuZCBJIHN0YXJ0ZWQgbGlzdGVuaW5nIHRvIHRoZSBDaHJpc3RpYW4gSHlwbm9CaXJ0aGluZyBhcHAgd2hpY2ggd2FzIGZhbnRhc3RpYy7CoDwvcD48cD48YnIgLz48L3A+PHA+SSBqdXN0IGhhZCBzdWNoIGEgcGVhY2VmdWwgbGFib3IuIEkgZG9u4oCZdCBrbm93IGhvdyBlbHNlIHRvIGRlc2NyaWJlIGl0LiBNeSBtb20gY2FtZSBpbiBhbmQgdGhlbiBteSBzaXN0ZXItaW4tbGF3IGNhbWUgb3ZlciB0aGVuIG15IG90aGVyIHNpc3Rlci1pbi1sYXcgY2FtZSBvdmVyLiBUaGV5IGp1c3QgdGFsa2VkIGFyb3VuZCBtZS4gSSBjb3VsZCBoZWFyIHRoZW0sIGJ1dCBJIHdhcyBqdXN0IGluIG15IHNwYWNlLiBJIGxhYm9yZWQgYW5kIG15IHdhdGVyIG5ldmVyIGJyb2tlIGZvciBhIHZlcnkgbG9uZyB0aW1lLiBJIGdvdCBpbiB0aGUgcG9vbCBhdCBvbmUgcG9pbnQgYW5kIHRoZW4gSSBnb3QgYmFjayBvdXQgYmVjYXVzZSBteSBodXNiYW5kIHdhcyBsaWtlLCDigJxJIHRoaW5rIHRoYXQgYmVpbmcgaW4gdGhlIHBvb2wgaXMgc2xvd2luZyBkb3duIHlvdXIgY29udHJhY3Rpb25zIGEgbGl0dGxlIGJpdC4gSSB3YW50IHlvdSB0byBnZXQgb3V0IGFuZCB3YWxrLuKAnSA8L3A+PHA+PGJyIC8+PC9wPjxwPkkgZ290IG91dCBhbmQgc3RhcnRlZCB3YWxraW5nIGRvd24gdGhlIGhhbGwgdGhlbiBJIGdvdCByZWFsbHkgc2ljayB3aXRoIGEgY29udHJhY3Rpb24uIEkgaGFwcGVuZWQgdG8gYWxyZWFkeSBiZSBsYWJvcmluZyBiYWNrd2FyZHMgb24gdGhlIHRvaWxldCBhbmQgSSB3YXMgbGlrZSwg4oCcT2ggbXkgZ29zaC4gSeKAmW0gZ29pbmcgdG8gdGhyb3cgdXAu4oCdIEkganVtcGVkIGJhY2sgb2ZmIHRoZSB0b2lsZXQgc28gSSBjb3VsZCB0aHJvdyB1cCBpbiBpdCB0aGVuIG15IG1pZHdpZmUgd2FzIGxpa2UsIOKAnE9rYXkuIFlvdeKAmXJlIGluIHRyYW5zaXRpb24gbm93LiBZb3XigJl2ZSBnb3QgdG8gYmUu4oCdIDwvcD48cD48YnIgLz48L3A+PHA+SSBoYWRu4oCZdCBoYWQgYW55IGNoZWNrcyBhdCBhbGwgdGhpcyB3aG9sZSB0aW1lIGVpdGhlciB0b28gc28gSSBoYWQgbm8gY2x1ZSB3aGF0IEkgd2FzIGV2ZW4gZGlsYXRlZCBhdC4gSSB3YXMganVzdCBjb21wbGV0ZWx5IHRyeWluZyB0byB0cnVzdCBteSBib2R5IGFuZCBqdXN0IGtub3cgdGhhdCB3aGVuIGl0IHdhcyB0aW1lLCBpdCB3b3VsZCBiZSB0aW1lLiBJdCByZWFsbHkgd2FzLiBNeSBib2R5IGp1c3QgZGlkIHdoYXQgaXQga25ldyB0byBkby7CoDwvcD48cD48YnIgLz48L3A+PGgxPjMyOjQyIEJyZWFraW5nIGhlciBvd24gd2F0ZXIgYW5kIHB1c2hpbmcgZm9yIDE3IG1pbnV0ZXM8L2gxPjxwPjxiciAvPjwvcD48cD5NYWN5OiBMaWtlIEkgc2FpZCBlYXJsaWVyLCBJIGZlbHQgaGVyIG1vdmUgaW50byBwb3NpdGlvbi4gSSBnb3QgYmFjayBpbiB0aGUgd2F0ZXIgYW5kIEkgZmVsdCBzbyByZWxheGVkIGluIHRoZSB3YXRlci4gSSB3YXMgZHJpZnRpbmcgb2ZmIGluIGJldHdlZW4gY29udHJhY3Rpb25zLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IE9oLCB0aGF04oCZcyBhd2Vzb21lLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5OiBJdCB3YXMgc28gY2FsbSBhbmQgSSBqdXN0IGtlcHQgdGVsbGluZyBteXNlbGYsIOKAnEJyZWF0aGUgaGVyIGRvd24gd2l0aCBldmVyeSBjb250cmFjdGlvbizigJ0gYW5kIGp1c3QgYWxsIG9mIHRoZSB0aGluZ3MgSSBoYWQgYmVlbiBwcmFjdGljaW5nLCBJIHdhcyBmaW5hbGx5IGFibGUgdG8gcHV0IGludG8gdXNlLsKgPC9wPjxwPjxiciAvPjwvcD48cD5UaGF0IHdhcyByZWFsbHkgY29vbCwgdGhlbiBJIGhhZCBhIGNvdXBsZSBvZiB1cmdlcyB3aGVyZSBJIHdhcyBsaWtlLCDigJxJIGZlZWwgbGlrZSBJIGNhbiBzdGFydCBwdXNoaW5nIHNvb24u4oCdIEkgd2FzIGxpa2UsIOKAnERvIHlvdSB3YW50IHRvIGNoZWNrIG1lIG5vdz/igJ0gQXMgc29vbiBhcyBzaGUgc3R1Y2sgaGVyIGZpbmdlciwgSSB3YXMgbGlrZSwg4oCcT2gsIG5vLiBOby4gR2V0IHlvdXIgZmluZ2VyIG91dC4gSXTigJlzIHRpbWUuIFNoZeKAmXMgY29taW5nLuKAncKgPC9wPjxwPjxiciAvPjwvcD48cD5TaGUgd2FzIGxpa2UsIOKAnFllYWguIFNoZeKAmXMgcmVhZHkuIFNoZeKAmXMgcmlnaHQgdGhlcmUsIGJ1dCB5b3VyIHdhdGVycyBoYXZlbuKAmXQgYnJva2VuIHlldC7igJ0gSSB3YXMgbGlrZSwg4oCcQ2FuIEkgYnJlYWsgdGhlbSBteXNlbGY/4oCdIFNoZSB3YXMgbGlrZSwg4oCcWWVhaCzigJ0gc28gSSByZWFjaGVkIGluLiBJIGdhdmUgaXQgYSBwaW5jaC10d2lzdCBhbmQgaW4gdGhlIHdhdGVyLCBJIGJyb2tlIGl0LsKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IE9oIG15IGdvc2gsIHRoYXTigJlzIHNvIGNvb2wuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1hY3k6IEkgZmVsdCB0aGUgcGFkZGluZyBhcm91bmQgaGVyIGhlYWQsIHRoZW4gSSBqdXN0IGZlbHQgaGVyIGhlYWQuIEkgZmVsdCBoZXIgaGFpci4gSSBzdGFydGVkIHB1c2hpbmcgd2hlbiBpdCB3YXMgdGltZSB0byBwdXNoIGFuZCBJIHB1c2hlZCBmb3IgMTcgbWludXRlcy4gSXQgd2FzIHBlcmZlY3QuIExpa2UgSSBzYWlkLCBJIGZlbHQgaGVyIG1vdmUgYW5kIGdldCBpbnRvIHBvc2l0aW9uLiBTaGUgY2FtZSBvdXQgYW5kIHNoZSB3YXMgOSBwb3VuZHMsIDEyIG91bmNlcyBzbyBzaGUgd2FzIDMgcG91bmRz4oCTwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1lYWdhbjogSSB3YXMgZ29pbmcgdG8gc2F5IDZsYiwxNW96LCByaWdodCwgd2FzIHlvdXIgc2Vjb25kIGFuZCBjbG9zZSB0byB5b3VyIGZpcnN0PzwvcD48cD48YnIgLz48L3A+PHA+TWFjeTogMyBwb3VuZHMgaGVhdmllciB0aGFuIG15IG90aGVyIHR3by4gU2hlIGNhbWUgb3V0LiBTaGUgZGlkIHBlcmZlY3RseS4gSGVyIGhlYXJ0IHJhdGUgd2FzIHBlcmZlY3QgdGhlIHdob2xlIHRpbWUuIFNoZSBjYW1lIG91dCBtYWQsIHNjcmVhbWluZyBtYWQuIFNoZSB3YXMgc28gY296eSBpbiB0aGVyZS4gU2hlIGRpZCBub3Qgd2FudCB0byBjb21lIG91dC4gU2hlIGNhbWUgb3V0IGJ1dCBoZWFyaW5nIGhlciBjcnkgd2l0aGluIDIwIHNlY29uZHMgd2FzIHNvIHJlYXNzdXJpbmcuIFNoZSB3YXMgc2FmZS4gSSBkaWRu4oCZdCBuZWVkIGFueWJvZHkuIEkganVzdCBuZWVkZWQgdG8gdHJ1c3QgbXkgYm9keSBhbmQgdG8gdHJ1c3QgdGhlIExvcmQuIE15IG1pZHdpZmUgd2FzIGxpa2UsIOKAnFRoYXQgd2FzIG9uZSBvZiB0aGUgbW9zdCBwZXJmZWN0IGJpcnRocyBJIGhhdmUgZXZlciBhdHRlbmRlZC7igJ0gU2hlIHdhcyBiZWFtaW5nIHdpdGggam95IGFuZCBzaGUgd2FzIHNvIGV4Y2l0ZWQgZm9yIG1lLiBTaGUgd2FzIGp1c3Qgc28gaGFwcHkgYmVjYXVzZSBzaGUgd2FzIGxpa2UsIOKAnEnigJl2ZSBuZXZlciBkb25lIHRoaXMgYWZ0ZXIgdHdvLuKAnSBTaGUgd2FzIGxpa2UsIOKAnFlvdSBjaGFuZ2VkIGV2ZXJ5dGhpbmcgSSB0aG91Z2h0IEkga25ldyBhYm91dCBob21lIGJpcnRoLCBhYm91dCBhZnRlciB0d28gQy1zZWN0aW9ucy7igJ0gU2hlIGV2ZW4gbm93IGhhcyBhbm90aGVyIGNsaWVudCB3aGljaCBpcyBncmVhdCB3aG8gaXMgYSBWQkEyQy4gSSBjYW5ub3Qgd2FpdCBmb3IgdGhpcyBwb2RjYXN0IHRvIGNvbWUgb3V0IHNvIEkgY2FuIHNoYXJlIGl0IHdpdGggbXkgbWlkd2lmZSBhbmQgc2hlIGNhbiBzaGFyZSBpdCB3aXRoIGhlciBuZXcgY2xpZW50LiBIb3BlZnVsbHksIHRoZXkgaGF2ZSBhIHJlYWxseSBncmVhdCBiaXJ0aCB0b28uwqA8L3A+PHA+PGJyIC8+PC9wPjxwPkFsbCBpbiBhbGwsIGl0IHdhcyBqdXN0IGV2ZXJ5dGhpbmcgSSBkcmVhbWVkIG9mLiBJIHdhcyBzbyB0aGFua2Z1bCBhbmQgSSBqdXN0IHJlbWVtYmVyIGxheWluZyB0aGVyZSB3aXRoIGhlciBvbiBteSBjaGVzdC4gSSB3YXMgd2F0Y2hpbmcgdGhlIHZpZGVvIGxhc3QgbmlnaHQgdHJ5aW5nIHRvIGdldCBpbiB0aGUgbWluZHNldCBhbmQgcmVtaW5kIG15c2VsZiBhbmQgZ2V0IHRoZXJlLiBPbiB0aGUgdmlkZW8sIEkgY2FuIGhlYXIgbXlzZWxmIGdvLCDigJxJ4oCZbSBzbyBmcmVha2luZyBwcm91ZCBvZiBteXNlbGYu4oCdwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1lYWdhbjogWW91IHNob3VsZCBiZSE8L3A+PHA+PGJyIC8+PC9wPjxwPk1hY3k6IEkgd2FzIGJlYW1pbmcgd2l0aCBqb3kuIEkgd2FzIGxpa2UsIOKAnFRoYXQgd2FzIHNvIGhhcmQgYnV0IHNvIHdvcnRoIGl0LuKAnSBTbyBpdCB3YXMgZ3JlYXQuIEl0IHdhcyBhIGdyZWF0IGV4cGVyaWVuY2UuIEkgY291bGQgbm90IGJlIG1vcmUgaGFwcHkgd2l0aCBoZXIgYmlydGguIFNoZeKAmXMgYSBncmVhdCBiYWJ5LiBTaGXigJlzIHNvIGhhcHB5LiBTaGUgd2FzIGEgbGl0dGxlIGhhcmQgYXQgZmlyc3QgZm9yIDEwIHdlZWtzIHdoaWNoIHdhcyBkaWZmZXJlbnQgZm9yIG1lLCBidXQgYWZ0ZXIgdGhhdCAxMC13ZWVrIGh1bXAsIHNoZSB3YXMgYSByZWFsbHkgZ29vZCBiYWJ5LiBIZXIgbmFtZSBpcyBMdWNpbGxlLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IEN1dGUuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1hY3k6IFdlIGNhbGwgaGVyIEx1Y3kgd2hpY2ggbWVhbnMg4oCcbGlnaHTigJ0gYW5kIHNoZSBpcyB0aGUgbGlnaHQgb2Ygb3VyIGxpdmVzLiBTaGUgaXMgdGhlIGJlc3QgYW5kIEkgY2Fu4oCZdCBldmVuIGJlbGlldmUgd2UgaGFkIGEgZmFtaWx5IHdpdGhvdXQgaGVyIGZvciBhIG1pbnV0ZSB0aGVyZS4gQnV0IHRoYXTigJlzIG15IHN0b3J5LsKgPC9wPjxwPjxiciAvPjwvcD48aDE+MzY6NDcgQUNPR+KAmXMgc3RhdGVtZW50IG9uIFZCQTJDPC9oMT48cD48YnIgLz48L3A+PHA+TWVhZ2FuOiBPaCBteSBnb3NoLiBJdCBpcyBzbyBiZWF1dGlmdWwuIEl0IGlzIHNvIHBlYWNlZnVsLiBJdCBzb3VuZHMgbGlrZSBvbmUgb2YgdGhvc2UgYmlydGhzIHdoZXJlIHlvdSByZWFsbHkgZG8uIFlvdSBjbG9zZSB5b3VyIGV5ZXMgYW5kIHlvdSBqdXN0IGVudmlzaW9uIGJpcnRoIGFuZCBob3cgcGVhY2VmdWwgYW5kIGJlYXV0aWZ1bCBhbmQgY2FsbSBpdCByZWFsbHkgY2FuIGJlLiBUbyBtZSwgeW91IGp1c3QgZGVzY3JpYmVkIHRoZSBiaXJ0aCB0aGF0IHlvdSBwaHlzaWNhbGx5IGRpZCB3aXRoIG9uZSB0aGF0IEkgd291bGQgaW1hZ2luZS7CoDwvcD48cD48YnIgLz48L3A+PHA+TWFjeTogWWVzLiBJdOKAmXMgaG93IGl0IGZlbHQuIE15IHNpc3RlcnMtaW4tbGF3IGFuZCBteSBvdGhlciBnaXJsZnJpZW5kIHdobyB3YXMgdGhlcmUgdGFraW5nIHBpY3R1cmVzIGp1c3Qga2VwdCBzYXlpbmcsIOKAnFlvdSBkaWQgc28gZ29vZC7igJ0gSSB3YXMganVzdCBsaWtlLCDigJxJIGRvbuKAmXQga25vdyB3aGF0IHRoYXQgbWVhbnMu4oCdIEJ1dCBldmVyeW9uZSB3YXMgcHJvdWQgb2YgaG93IGl0IGFsbCB3ZW50LiBJIHRoaW5rIHRoYXTigJlzIHNvIHN1cGVyIHJldm9sdXRpb25hcnkuIEkgaG9wZSBteSBzdG9yeSB0b3VjaGVzIG90aGVyIHBlb3BsZeKAmXMgbGl2ZXMuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1lYWdhbjogSXQgdG90YWxseSB3aWxsLiBJ4oCZbSBzbyBoYXBweSB0aGF0IHlvdSBmb3VuZCB5b3VyIG1pZHdpZmUgYW5kIHRoYXQgeW91ciBtaWR3aWZlIHdhcyB3aWxsaW5nIHRvIHRha2UgeW91IG9uIGJlY2F1c2UgYSBsb3Qgb2YgdGhlIHRpbWUsIHByb3ZpZGVycyBjYW4gYmUgbmVydm91cyBpZiB0aGV5IGhhdmUgbmV2ZXIgZG9uZSBpdCBiZWZvcmUuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1hY3k6IFdoaWNoIEkgZ2V0LsKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IE9oIHllYWguIEZvciBzdXJlLCBmb3Igc3VyZS4gSeKAmW0ganVzdCBzbyBnbGFkIHRoYXQgc2hlIHdhcyB3aWxsaW5nLiBUaGF04oCZcyBvbmUgb2YgdGhlIHRoaW5ncyB0aGF0IGdldHMgbWUgc29tZXRpbWVzIHdpdGggc28gbWFueSBwZW9wbGUgd2hvIGp1c3QgYXJlIG5vdCwgd2UgaGF2ZSB0byByZXNwZWN0IHRoZW0gYW5kIHdoYXQgdGhleSBhcmUgY29tZm9ydGFibGUgd2l0aC4gQnV0IHJlYWxseSwgdGhlIGV2aWRlbmNlIGRvZXMgc2hvdyB0aGF0IFZCQUMgYWZ0ZXIgdHdvIENlc2FyZWFucyBpcyByZWFzb25hYmxlLiBUaGUgb3ZlcmFsbCByaXNrIGFuZCByYXRlIG9mIHJ1cHR1cmUgaXMgYXBwcm94aW1hdGVseSAxLjQlIHNvIGl04oCZcyBzdGlsbCB2ZXJ5IGxvdy4gSXTigJlzIHN0aWxsIHZlcnksIHZlcnkgbG93LsKgPC9wPjxwPjxiciAvPjwvcD48cD5JIG1lYW4sIEFDT0cgdGhlbXNlbHZlcywgdGhlIEFtZXJpY2FuIENvbGxlZ2Ugb2YgT2JzdGV0cmljaWFucyBhbmQgR3luZWNvbG9naXN0cywgdGhleSBzdWdnZXN0IGl0LiBUaGV5IHNheSBpdOKAmXMgYSBjb21wbGV0ZWx5IHJlYXNvbmFibGUgb3B0aW9uIHNvIGZvciBzbyBtYW55IHBlb3BsZSB0byBiZSBjdXQgb2ZmIGFmdGVyIG9uZSBpcyBoZWFydGJyZWFraW5nIGJlY2F1c2UgdGhlcmUgYXJlIHNvIG1hbnkgcGVvcGxlIHdobyBjb3VsZCBoYXZlIGEgdmFnaW5hbCBiaXJ0aCBhbGwgb3ZlciB0aGUgd29ybGQgYnV0IGFyZW7igJl0IGdpdmVuIHRoZSBvcHRpb24uIFdlIGhhdmUgYSBoaWdoIENlc2FyZWFuIHJhdGUuIFdlIGhhdmUgc28gbWFueS7CoDwvcD48cD48YnIgLz48L3A+PHA+VGhlcmUgYXJlIHNvIG1hbnkgcGVvcGxlLiBKdXN0IGFjdHVhbGx5IHdlaXJkbHkgZW5vdWdoIGF0IHRoZSBneW0sIGEgbWFuIHdobyBpcyB0aGUgZGFybmRlc3QgY3V0ZXN0IHRoaW5nIGV2ZXIsIGhpcyBuYW1lIGlzIFJvYmluIGFuZCBoZSB3aWxsIGFsd2F5cyBzYXkgaGkgdG8gbWUgYW5kIGNoZWNrIGluIG9uIG1lIGFuZCBob3cgSeKAmW0gZG9pbmcuIEhlIGtub3dzIHRoYXQgSSBjeWNsZSBhbmQgb25lIG9mIHRoZSB0aGluZ3MgaGUgYXNrZWQgdGhlIG90aGVyIGRheSB3YXMsIOKAnEhvd+KAmXMgdGhhdCBkb3VsYSB0aGluZyBjb21pbmc/4oCdIEkgc2FpZCwg4oCcSXTigJlzIHJlYWxseSBncmVhdC7igJ0gSGUgc2FpZCwg4oCcSSBuZXZlciBhc2tlZCB5b3UuIFdoYXQgbWFkZSB5b3Ugd2FudCB0byBiZWNvbWUgYSBkb3VsYT/igJ0gSSBqdXN0IHRvbGQgaGltIG15IHN0b3J5IGFuZCBoZSBzYWlkLCDigJxPaCwgc28geW91IGhhZCB0d28gQy1zZWN0aW9ucz/igJ0gSGlzIGV5ZXMgd2VyZSB3aWRlLiBIZSBzYWlkLCDigJxCdXQgeW91IHNhaWQgeW91IGhhdmUgdGhyZWUga2lkcy7igJ0gSSBzYWlkLCDigJxZZWFoLuKAnSBIZSBnb2VzLCDigJxCdXQgeW91IG9ubHkgaGFkIHR3byBDLXNlY3Rpb25zP+KAnSBJIHNhaWQsIOKAnFllYWgu4oCdIEkgc2FpZCwg4oCcV2l0aCBteSBmaXJzdCB0d28gZ2lybHMu4oCdIEhlIHdhcyBsaWtlLCDigJxXYWl0LuKAnSBIZSBsaXRlcmFsbHkgd2FzIHN0dW1wZWQgdGhlcmUgZm9yIGEgbWludXRlLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5OiBZZWFoLCBwZW9wbGUgZG9u4oCZdCBrbm93LsKgPC9wPjxwPjxiciAvPjwvcD48cD5NZWFnYW46IEhlIHNhaWQsIOKAnFlvdSBoYWQgYSBub3JtYWwgYmlydGggYWZ0ZXIgdHdvIEMtc2VjdGlvbnM/4oCdIEkgc2FpZCwg4oCcWWVzLuKAnSBJIHNhaWQsIOKAnFJvYmluLCBJIGhhZCBhIHZhZ2luYWwgYmlydGggYWZ0ZXIgdHdvIENlc2FyZWFucy7igJ0gSGUgbG9va2VkIGF0IG1lIGJlY2F1c2UgSSBzYWlkIHRoZSB3b3JkIHZhZ2luYWwuIEkgc2FpZCwg4oCcVGhhdOKAmXMgd2hhdCBpdCBpcy7igJ0gSGUgc2FpZCwg4oCcSSBkaWRu4oCZdCBldmVuIGtub3cgdGhhdCB3YXMgYSB0aGluZy7igJ0gUGVvcGxlIGp1c3QgZG9u4oCZdC4gVGhleSBqdXN0IGRvbuKAmXQga25vdyB0aGF0IGFuZCB0aGVuIHRoZXJlIGFyZSBzdGlsbCBzbyBtYW55IHByb3ZpZGVycyBhbGwgb3ZlciB0aGUgd29ybGQgd2hvIGFyZW7igJl0IHN1cHBvcnRpbmcgaXQuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPkluIHRoZSBBQ09HIFByYWN0aWNlIEJ1bGxldGluLCBpdCBzYXlzIHRoYXQgVkJBMkMsIHZhZ2luYWwgYmlydGggYWZ0ZXIgdHdvIENlc2FyZWFuLCBpcyByZWFzb25hYmxlIHRvIGNvbnNpZGVyIGZvciB3b21lbiB3aXRoIHR3byBwcmV2aW91cyBsb3ctdHJhbnN2ZXJzZSBDZXNhcmVhbiBkZWxpdmVyaWVzIHRvIGJlIGNhbmRpZGF0ZXMgZm9yIFRPTEFDLiBXZSBtZW50aW9uZWQgdGhlIHdvcmQgVE9MQUMgZWFybGllciwgYSB0cmlhbCBvZiBsYWJvciBhZnRlciBDZXNhcmVhbi4gQSBsb3Qgb2YgcHJvdmlkZXJzIHVzZSB0aGF0LiBJdCBpcyBhIG1lZGljYWwgdHVybi4gV2UgY2FsbCBpdCBWQkFDLiBUaGV5IGNhbGwgaXQgVE9MQUMuIEl04oCZcyBub3QgYSBWQkFDIHRvIHRoZW0gdW50aWwgdGhlIGJhYnkgaGFzIHBhc3NlZCB0aHJvdWdoIHRoZSB2YWdpbmEuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPkl0IHNheXMgdGhhdCB0aGV5IGFyZSBjYW5kaWRhdGVzIGZvciBUT0xBQyBhbmQg4oCcdG8gY291bnNlbCB0aGVtIGJhc2VkIG9uIHRoZSBjb21iaW5hdGlvbiBvZiBvdGhlciBmYWN0b3JzIHRoYXQgYWZmZWN0IHRoZWlyIHByb2JhYmlsaXR5IG9mIGFjaGlldmluZyBhIFZCQUMu4oCdwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1lYWdhbjogTm93LCBqdXN0IGEgY291cGxlIG9mIHRoaW5ncyB0byBzaGFyZSBiZWZvcmUgd2UgZHJvcCBvZmYgb24gdGhpcyBlcGlzb2RlLCBpZiB5b3UgaGFkIGEgQ2VzYXJlYW4gYmVmb3JlIG9yIHR3byBDZXNhcmVhbnMsIGl0IGlzIG5vdCBuZWNlc3NhcmlseSBhIHJlYXNvbiBmb3IgeW91IHRvIGhhdmUgYSB0aGlyZC4gSWYgeW91IGhhdmUgZ2VzdGF0aW9uYWwgZGlhYmV0ZXMsIHRoYXQgZG9lc27igJl0IG1lYW4gdGhhdCB5b3UgY2Fu4oCZdCBWQkFDIGVpdGhlci4gSeKAmW0gdHJ5aW5nIHRvIHRhbGsgdXAgdGhlc2Ugb3RoZXIgZmFjdG9ycywgcmlnaHQ/IElmIHdlIGhhdmUgcHJlZWNsYW1wc2lhLCB0aGF0IGRvZXNu4oCZdCBhbHdheXMgbmVjZXNzYXJpbHkgbWVhbiB0aGF0IHdlIGhhdmUgdG8gc2NoZWR1bGUgYSBDZXNhcmVhbi4gV2XigJl2ZSBzaGFyZWQgc3RvcmllcyBpbiB0aGUgcGFzdC4gV2XigJl2ZSBldmVuIGhhZCB0aGluZ3MgbGlrZSBiYWJpZXMgd2l0aCBtZWRpY2FsIGNvbmRpdGlvbnMgd2hlcmUgc3RpbGwgZXZlbiB0aGVpciBwcm92aWRlciBzYWlkLCDigJxKdXN0IGJlY2F1c2UgeW91ciBiYWJ5IGhhcyB0aGlzIGRvZXNu4oCZdCBtZWFuIHlvdSBjYW7igJl0IGhhdmUgYSBWQkFDLuKAnSBUaGF0IGRvZXNu4oCZdCBhbHdheXMgbmVjZXNzYXJpbHkgbWVhbiB5b3UgY2Fu4oCZdCBlaXRoZXIuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPklmIHlvdSBoYXZlIGEgYmlnIGJhYnksIGhlcmUgd2UgYXJlLiBBIG5pbmUtcG91bmQgYmFieSwgcmlnaHQ/IEEgbmljZSwgc3F1aXNoeSBsaXR0bGUgYmFieS4gQmlnIGJhYnkgZG9lc27igJl0IG1lYW4geW91IGNhbuKAmXQgZWl0aGVyLiBBIGRpYWdub3NpcyBvZiBhIHNtYWxsIHBlbHZpcyBzaG91bGRu4oCZdCBiZSBjb25zaWRlcmVk4oCTIHRoZXNlIGZhY3RvcnMgcmVhbGx5IGFyZSBtb3JlIGV4dHJlbWUgSSBmZWVsIGxpa2Ugc28gaWYgeW91ciBwcm92aWRlciBpcyBnaXZpbmcgeW91IHNvbWUgb2YgdGhlc2UsIOKAnE9oLCB3ZWxsIHlvdSBjb3VsZCBoYXZlIGEgVkJBQyBhZnRlciB0d28gQ2VzYXJlYW5zIGJ1dCBiZWNhdXNlIHlvdXIgYmFieSBkaWRu4oCZdCBjb21lIGRvd24gdGhlIGxhc3QgdHdvIHRpbWVzLCBpdOKAmXMganVzdCBwcm9iYWJseSBub3QgZ29pbmcgdG8gaGFwcGVuLuKAncKgPC9wPjxwPjxiciAvPjwvcD48cD5Zb3UgY2Fu4oCZdCBzZWUgaXQuIE1hY3kgcm9sbHMgaGVyIGV5ZXMgd2l0aCBtZS7CoDwvcD48cD48YnIgLz48L3A+PHA+TWFjeTogVGhlIGJhYnkgaXMgZ29pbmcgdG8gY29tZSBvdXQuIEl0IGhhcyB0byBjb21lIG91dC7CoDwvcD48cD48YnIgLz48L3A+PHA+TWVhZ2FuOiBCYWJ5IGlzIGdvaW5nIHRvIGNvbWUgb3V0LiBCZWxpZXZlIGluIHlvdXJzZWxmLiBEbyB0aGUgcmVzZWFyY2guIFdlIGRvIGhhdmUgYSBWQkFDIGFmdGVyIHR3byBDZXNhcmVhbiBibG9nLiBXZeKAmWxsIG1ha2Ugc3VyZSB0byBsaW5rIGl0IGhlcmUgYW5kIGtpbmQgb2Ygc3BpbiBiYWNrIHRvIHdoYXQgeW91IHNhaWQgYWJvdXQgaG93IHlvdSB3ZXJlIGxpa2UsIOKAnExldCBtZSBiZSBhIHN0YXRpc3RpYy4gTGV0IG1lIGEgc3RhdGlzdGljIHRvIHlvdXIgbWlkd2lmZS7igJ0gVkJBM0PigJMgd2UgZG9u4oCZdCBoYXZlIGEgbG90IG9mIHN0YXRzIG9uIFZCQTNDIGFuZCBJIHRoaW5rIGEgbG90IG9mIGl0IGlzIGJlY2F1c2Ugd2UgYXJlIG5vdCBkb2luZyB0aGVtLiBXZSBhcmUgbm90IGFsbG93aW5nIHRoZW0geWV0IHdlIGhhdmUgc28gbWFueSBWQkEzQyBtb21zIGluIG91ciBjb21tdW5pdHkgd2hvIHNoYXJlIG9yIG9uIG91ciBwb2RjYXN0IHdobyBzaG93IHRoYXQgaXQgc3RpbGwgaXMgcG9zc2libGUuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPkkgZmVlbCBsaWtlIHRoZXJlIG5lZWRzIHRvIGJlIG1vcmUgcmlzayBhc3Nlc3NtZW50IHRoZXJlIGFuZCBzdHVkaWVzIG5lZWQgdG8gYmUgZG9uZSB0aGVyZS4gU28ga25vdyB0aGF0IGV2ZW4gaWYgeW914oCZdmUgaGFkIHRocmVlIENlc2FyZWFucywgdGhhdCBzdGlsbCBkb2VzbuKAmXQgbWVhbiB0aGF0IHlvdSBhcmUgZWxpbWluYXRlZCBmcm9tIHRoZSBjaGFuY2UgdG8gZ28gZm9yIHdoYXQgeW91IHdhbnQsIGZpZ2h0IGZvciB3aGF0IHlvdSB3YW50LCBhbmQgaGF2ZSB0aGF0IGV4cGVyaWVuY2Ugbm90IG9ubHkgdGhhdCB5b3Ugd2FudCBidXQgdGhhdCB5b3UgZGVzZXJ2ZS48L3A+PHA+wqA8L3A+PHA+TWFjeTogRm9yIHN1cmUuwqA8L3A+PHA+PGJyIC8+PC9wPjxwPk1lYWdhbjogWWVzLiBUaGFuayB5b3Ugc28gbXVjaCBmb3Igc2hhcmluZyB5b3VyIHN0b3J5IGFuZCBJIGNhbm5vdCB3YWl0IGZvciB0aGlzIHRvIGJlIHB1Ymxpc2hlZCBmb3IgeW91IHRvIHNlbmQgdGhpcyB0byB5b3VyIG1pZHdpZmUgc28gc2hlIGNhbiBzZW5kIGl0IG9uIHRvIHRoZSBuZXh0IFdvbWFuIG9mIFN0cmVuZ3RoLsKgPC9wPjxwPjxiciAvPjwvcD48cD5NYWN5OiBUaGFuayB5b3Ugc28gbXVjaCBmb3IgaGF2aW5nIG1lLiBJIGhhdmUgbG92ZWQgYmVpbmcgaGVyZSBhbmQgdGFsa2luZyB3aXRoIHlvdS4gSSBob3BlIHRoZXJlIGFyZSBzbyBtYW55IGxpdmVzIHRvdWNoZWQgYW5kIGNoYW5nZWQgYnkgc2hhcmluZyBteSBzdG9yeS48L3A+PHA+PGJyIC8+PC9wPjxoMT5DbG9zaW5nPC9oMT48cD48YnIgLz48L3A+PHA+V291bGQgeW91IGxpa2UgdG8gYmUgYSBndWVzdCBvbiB0aGUgcG9kY2FzdD8gVGVsbCB1cyBhYm91dCB5b3VyIGV4cGVyaWVuY2UgYXQgdGhldmJhY2xpbmsuY29tL3NoYXJlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBhbGwgdGhpbmdzIFZCQUMgaW5jbHVkaW5nIG9ubGluZSBhbmQgaW4tcGVyc29uIFZCQUMgY2xhc3NlcywgVGhlIFZCQUMgTGluayBibG9nLCBhbmQgTWVhZ2Fu4oCZcyBiaW8sIGhlYWQgb3ZlciB0byB0aGV2YmFjbGluay5jb20uIENvbmdyYXR1bGF0aW9ucyBvbiBzdGFydGluZyB5b3VyIGpvdXJuZXkgb2YgbGVhcm5pbmcgYW5kIGRpc2NvdmVyeSB3aXRoIFRoZSBWQkFDIExpbmsuPC9wPjxwPjxiciAvPjwvcD48cD48YnIgLz48L3A+PGJyIC8+PGJyIC8+U3VwcG9ydCB0aGlzIHBvZGNhc3QgYXQg4oCUIDxhIGhyZWY9XCJodHRwczovL3JlZGNpcmNsZS5jb20vdGhlLXZiYWMtbGluay9kb25hdGlvbnNcIiByZWw9XCJub2ZvbGxvd1wiPmh0dHBzOi8vcmVkY2lyY2xlLmNvbS90aGUtdmJhYy1saW5rL2RvbmF0aW9uczwvYT48YnIgLz48YnIgLz5BZHZlcnRpc2luZyBJbnF1aXJpZXM6IDxhIGhyZWY9XCJodHRwczovL3JlZGNpcmNsZS5jb20vYnJhbmRzXCIgcmVsPVwibm9mb2xsb3dcIj5odHRwczovL3JlZGNpcmNsZS5jb20vYnJhbmRzPC9hPiIsImlkIjoiN3NBN2E5Qk1kZTVLOVJwUmFlSENpaiIsImxhbmd1YWdlIjp7ImNvZGUiOiJlbiJ9LCJtZWRpYVR5cGVzIjpbIkFVRElPIl0sIm5hbWUiOiJFcGlzb2RlIDI5NyBNYWN5J3MgQW1hemluZyBIQkEyQyArIFdoYXQgRG9lcyB0aGUgRXZpZGVuY2UgU2hvdyBmb3IgVkJBMkM/IiwicGxheWFiaWxpdHkiOnsicGxheWFibGUiOnRydWUsInJlYXNvbiI6IlBMQVlBQkxFIn0sInBsYXllZFN0YXRlIjp7InBsYXlQb3NpdGlvbk1pbGxpc2Vjb25kcyI6MCwic3RhdGUiOiJOT1RfU1RBUlRFRCJ9LCJzaG93T3JBdWRpb2Jvb2siOnsiX190eXBlbmFtZSI6IlBvZGNhc3RSZXNwb25zZVdyYXBwZXIiLCJkYXRhIjp7Il9fdHlwZW5hbWUiOiJQb2RjYXN0IiwiYWNjZXNzSW5mbyI6bnVsbCwiY29udGVudFJhdGluZyI6eyJsYWJlbCI6Ik5PTkUifSwiY292ZXJBcnQiOnsic291cmNlcyI6W3siaGVpZ2h0Ijo2NCwidXJsIjoiaHR0cHM6Ly9pLnNjZG4uY28vaW1hZ2UvYWI2NzY1NjMwMDAwZjY4ZGJiNWY3NmJhNDMyZGZjMzAzZjM3ZjgwNiIsIndpZHRoIjo2NH0seyJoZWlnaHQiOjMwMCwidXJsIjoiaHR0cHM6Ly9pLnNjZG4uY28vaW1hZ2UvYWI2NzY1NjMwMDAwNWYxZmJiNWY3NmJhNDMyZGZjMzAzZjM3ZjgwNiIsIndpZHRoIjozMDB9LHsiaGVpZ2h0Ijo2NDAsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMGJhOGFiYjVmNzZiYTQzMmRmYzMwM2YzN2Y4MDYiLCJ3aWR0aCI6NjQwfV19LCJkZXNjcmlwdGlvbiI6IkhlcmUgYXQgVGhlIFZCQUMgTGluaywgb3VyIG1pc3Npb24gaXMgdG8gbWFrZSBiaXJ0aCBhZnRlciBDZXNhcmVhbiBiZXR0ZXIgYnkgcHJvdmlkaW5nIGVkdWNhdGlvbiwgc3VwcG9ydCwgYW5kIGEgY29tbXVuaXR5IG9mIGxpa2UtbWluZGVkIHBlb3BsZS4gV2VsY29tZSB0byBvdXIgY2lyY2xlLCB3ZSBhcmUgc28gZ2xhZCB5b3UgYXJlIGhlcmUhIiwiaWQiOiIzNmJWeHFPR2QxRVljUjBvSnRlRjVuIiwibWVkaWFUeXBlIjoiQVVESU8iLCJuYW1lIjoiVGhlIFZCQUMgTGluayIsInBsYXlhYmlsaXR5Ijp7InBsYXlhYmxlIjp0cnVlLCJyZWFzb24iOiJQTEFZQUJMRSJ9LCJwdWJsaXNoZXIiOnsibmFtZSI6Ik1lYWdhbiBIZWF0b24ifSwic2F2ZWQiOmZhbHNlLCJzaG93VHlwZXMiOltdLCJ0cmFpbGVyVjIiOm51bGwsInVyaSI6InNwb3RpZnk6c2hvdzozNmJWeHFPR2QxRVljUjBvSnRlRjVuIn19LCJwcmV2aWV3Ijp7ImF1ZGlvIjp7InVybCI6Imh0dHBzOi8vcG9kei1jb250ZW50LnNwb3RpZnljZG4uY29tL2F1ZGlvL2NsaXBzLzBLY1BXWDJmcTdvblBrMGFWeUFmalUvY2xpcF8yOTc5OTFfMzU3OTkxLm1wMyJ9LCJzaGFyZWFibGUiOnRydWUsInZpZGVvIjp7InVybCI6IiJ9fSwicmVsZWFzZURhdGUiOnsiZGF5Ijo2LCJpc29TdHJpbmciOiIyMDI0LTA1LTA2VDA3OjEwOjAwWiIsIm1vbnRoIjo1LCJwcmVjaXNpb24iOiJNSU5VVEUiLCJ5ZWFyIjoyMDI0fSwidHlwZSI6IlBPRENBU1RfRVBJU09ERSIsInVyaSI6InNwb3RpZnk6ZXBpc29kZTo3c0E3YTlCTWRlNUs5UnBSYWVIQ2lqIn19LCJyZWNvbW1lbmRhdGlvbnMiOnt9LCJzYXZlZCI6e319LCJwbGF5YmFjayI6eyJjdXJyZW50IjpudWxsLCJoYXNTa2lwcGVkVGhpc1Nlc3Npb24iOmZhbHNlLCJpc0J1ZmZlcmluZyI6ZmFsc2UsImhlYXJkQXVkaW8iOmZhbHNlLCJpbml0aWF0ZWRQbGF5YmFjayI6ZmFsc2V9LCJyZXF1ZXN0Ijp7Imhhc1ByZXZpb3VzTGlrZXMiOmZhbHNlLCJpc0Jhbm5lZCI6ZmFsc2UsImVudGl0eVZpZXciOm51bGwsImFsYnVtVXJpIjoiIn0sInNlYXJjaCI6eyJpc0ZldGNoaW5nIjpmYWxzZSwicmVzdWx0cyI6bnVsbCwicXVlcnkiOm51bGwsImVycm9yIjpudWxsLCJyZWNlbnRTZWFyY2hlcyI6W119LCJ0b2FzdCI6eyJtZXNzYWdlIjpudWxsLCJ0eXBlIjoiZGVmYXVsdCIsImFjdGlvbiI6bnVsbH0sInVpIjp7Im1vZGFsIjoibm93X3BsYXlpbmdfYmFyIiwibm93UGxheWluZ1ZpZXciOmZhbHNlLCJkaWFsb2ciOm51bGwsImVycm9yVmlldyI6ZmFsc2V9LCJob21lIjp7ImlzTG9hZGluZyI6ZmFsc2UsImhhc0Vycm9yIjpmYWxzZSwiZGF0YSI6bnVsbH0sIm9uRGVtYW5kUGxheWxpc3RzIjp7ImZldGNoZWQiOmZhbHNlLCJpdGVtcyI6W119LCJjb250ZXh0TWVudSI6eyJpc1Zpc2libGUiOmZhbHNlfSwiY29sb3JFeHRyYWN0aW9uIjp7ImNvbG9ycyI6e319LCJseXJpY3MiOnsic3RhdHVzIjoiVU5BVkFJTEFCTEUifSwicmljaEVudGl0aWVzIjp7InNlb0V4cGVyaW1lbnQiOnsiZXBpc29kZSI6e319fSwiYnJvd3NlIjp7ImdyaWQiOnsiaXNMb2FkaW5nIjpmYWxzZSwic2VjdGlvbnMiOm51bGwsImhhc0ZhaWxlZEF0dGVtcHRzIjpmYWxzZX0sInBhZ2VzIjp7fX0sImludGVybmFsTGlua1JlY29tbWVuZGVyIjp7InRyYWNrcyI6eyJzdGF0dXMiOiJVTkFWQUlMQUJMRSJ9LCJzaG93cyI6eyJzdGF0dXMiOiJVTkFWQUlMQUJMRSJ9LCJlcGlzb2RlcyI6eyJkYXRhIjpbeyJfX3R5cGVuYW1lIjoiRXBpc29kZSIsImF1ZGlvIjp7Iml0ZW1zIjpbeyJmaWxlSWQiOiJmOTk1OTM2NWU1YTUwNzJhYTc2YmMzMTZkMTgzZjA2Nzg1OGYwZTI0IiwiZm9ybWF0IjoiTVA0XzEyOCIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3L2Y5OTU5MzY1ZTVhNTA3MmFhNzZiYzMxNmQxODNmMDY3ODU4ZjBlMjQifSx7ImZpbGVJZCI6IjlhOWJhYzQ0Y2U0MDIyN2VmODlmYjA4YjVhNzExYThlMDEyZjhlZDgiLCJmb3JtYXQiOiJNUDRfMTI4X0NCQ1MiLCJ1cmwiOiJodHRwczovL3Auc2Nkbi5jby9tcDMtcHJldmlldy85YTliYWM0NGNlNDAyMjdlZjg5ZmIwOGI1YTcxMWE4ZTAxMmY4ZWQ4In0seyJmaWxlSWQiOiJmNjFlYmVkYzZhZjMwYTQ0NmJiMjAxNjBjMzk1ODE5ZDRjOGMyNTgxIiwiZm9ybWF0IjoiT0dHX1ZPUkJJU185NiIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3L2Y2MWViZWRjNmFmMzBhNDQ2YmIyMDE2MGMzOTU4MTlkNGM4YzI1ODEifSx7ImZpbGVJZCI6ImE0OTFhZThkYzViNGEyNzFiYWU5M2I1ZWM5N2I5NGExY2Q3NDM4YzAiLCJmb3JtYXQiOiJBQUNfMjQiLCJ1cmwiOiJodHRwczovL3Auc2Nkbi5jby9tcDMtcHJldmlldy9hNDkxYWU4ZGM1YjRhMjcxYmFlOTNiNWVjOTdiOTRhMWNkNzQzOGMwIn0seyJmaWxlSWQiOiJhY2ZkNDE1NjU0OTg3NWMwYzM3N2Y0MzQyMDFkZmNjZTA0YTBlNjE1IiwiZm9ybWF0IjoiTVA0XzEyOF9EVUFMIiwidXJsIjoiaHR0cHM6Ly9wLnNjZG4uY28vbXAzLXByZXZpZXcvYWNmZDQxNTY1NDk4NzVjMGMzNzdmNDM0MjAxZGZjY2UwNGEwZTYxNSJ9XX0sImNvbnRlbnRSYXRpbmciOnsibGFiZWwiOiJOT05FIn0sImNvdmVyQXJ0Ijp7InNvdXJjZXMiOlt7ImhlaWdodCI6NjQsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMGY2OGQ5YmFkM2RkNDUwYzUzMWQzMDZlNTViMmMiLCJ3aWR0aCI6NjR9LHsiaGVpZ2h0IjozMDAsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMDVmMWY5YmFkM2RkNDUwYzUzMWQzMDZlNTViMmMiLCJ3aWR0aCI6MzAwfSx7ImhlaWdodCI6NjQwLCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDBiYThhOWJhZDNkZDQ1MGM1MzFkMzA2ZTU1YjJjIiwid2lkdGgiOjY0MH1dfSwiZGVzY3JpcHRpb24iOiJJdCBjYW4gYmUgZGlmZmljdWx0IHRvIGZpbmQgVkJBQyBzdXBwb3J0IHdpdGggZ2VzdGF0aW9uYWwgZGlhYmV0ZXMgYW5kIG1vc3Qgd2hvIGFyZSBzdXBwb3J0aXZlIG9mIFZCQUMgaGlnaGx5IHJlY29tbWVuZCBhIDM5LXdlZWsgaW5kdWN0aW9uLiBIZWlkaeKAmXMgZmlyc3QgcHJlZ25hbmN5L2JpcnRoIGluY2x1ZGVkIGdlc3RhdGlvbmFsIGRpYWJldGVzIHdpdGggZGFpbHkgaW5zdWxpbiBpbmplY3Rpb25zLCBhIDM5LXdlZWsgaW5kdWN0aW9uLCBQZW5pY2lsbGluIGR1cmluZyBsYWJvciBmb3IgR0JTLCBwdXNoaW5nIGZvciBmaXZlIGhvdXJzLCBhbmQgYSBDLXNlY3Rpb24gZm9yIGFycmVzdCBvZiBkZXNjZW50IGR1ZSB0byBPUCBwcmVzZW50YXRpb24uwqBIZWlkaSB3YXNu4oCZdCBzdXJlIGlmIHNoZSB3YW50ZWQgdG8gZ28gdGhyb3VnaCBhbm90aGVyIGJpcnRoIGFmdGVyIGhlciBmaXJzdCB0cmF1bWF0aWMgZXhwZXJpZW5jZSwgYnV0IHNoZSBmb3VuZCBhIHZlcnkgc3VwcG9ydGl2ZSBwcmFjdGljZSB0aGF0IG1hZGUgaGVyIGZlZWwgc2FmZSB0byBnbyBmb3IgaXQgYWdhaW4uIFRob3VnaCBtYW55IHByYWN0aWNlcyB3b3VsZCBoYXZlIHJpc2tlZCBoZXIgb3V0IG9mIGdvaW5nIGZvciBhIFZCQUMgZHVlIHRvIGhlciBhZ2UgYW5kIHN1YnNlcXVlbnQgZ2VzdGF0aW9uYWwgZGlhYmV0ZXMgZGlhZ25vc2lzLCBoZXIgbmV3IHByYWN0aWNlIHdhcyBzbyByZWFzc3VyaW5nLCBjYWxtLCBhbmQgc3VwcG9ydGl2ZSBvZiBob3cgSGVpZGkgd2FudGVkIHRvIGJpcnRoLsKgSGVpZGkga25ldyBzaGUgd2FudGVkIHRvIGdvIGludG8gc3BvbnRhbmVvdXMgbGFib3IgYW5kIHRyeSBmb3IgYW4gdW5tZWRpY2F0ZWQgVkJBQy4gV2l0aCB0aGUgc2FmZXR5IGFuZCBzdXBwb3J0IG9mIGhlciB0ZWFtLCBzaGUgd2FzIGFibGUgdG8gZG8ganVzdCB0aGF0LiBBdCBqdXN0IG92ZXIgNDAgd2Vla3MsIEhlaWRpIHdlbnQgaW50byBsYWJvciBzcG9udGFuZW91c2x5IGFuZCBsYWJvcmVkIGJlYXV0aWZ1bGx5LiBJbnN0ZWFkIG9mIHB1c2hpbmcgZm9yIG92ZXIgZml2ZSBob3VycywgSGVpZGkgb25seSBwdXNoZWQgZm9yIDMwIG1pbnV0ZXMhIEl0IHdhcyBleGFjdGx5IHRoZSBkcmVhbXkgYmlydGggc2hlIGhvcGVkIGl0IHdvdWxkIGJlLsKgVGhyb21ib2N5dG9wZW5pYVJlYWwgRm9vZCBmb3IgR2VzdGF0aW9uYWwgRGlhYmV0ZXMgYnkgTGlseSBOaWNob2xzSW5mb3JtZWQgUHJlZ25hbmN5IFBsdXPCoE5lZWRlZCBXZWJzaXRlSG93IHRvIFZCQUM6IFRoZSBVbHRpbWF0ZSBQcmVwIENvdXJzZSBmb3IgUGFyZW50c0Z1bGwgVHJhbnNjcmlwdCB1bmRlciBFcGlzb2RlIERldGFpbHPCoDA1OjUwIFJldmlldyBvZiB0aGUgV2VlazA4OjA0IEhlaWRp4oCZcyBmaXJzdCBwcmVnbmFuY3kgd2l0aCBnZXN0YXRpb25hbCBkaWFiZXRlczEyOjA1IFRha2luZyBpbnN1bGluMTg6MDggMzktd2VlayBpbmR1Y3Rpb27CoDIwOjU5IFB1c2hpbmfCoDI0OjI5IEFycmVzdCBvZiBkZXNjZW50IGFuZCBvcHRpbmcgZm9yIGEgQy1zZWN0aW9uMjc6MDYgUmVzZWFyY2hpbmcgcHJvdmlkZXJzIGJlZm9yZSBzZWNvbmQgcHJlZ25hbmN5Mzg6MDQgRGlzY3Vzc2lvbnMgYXJvdW5kIGluZHVjdGlvbjQxOjQ1IE5TVHMgdHdpY2UgYSB3ZWVrNDc6MTAgVGVzdGluZyBmb3IgcHJlZWNsYW1wc2lhNTQ6NTMgU3BvbnRhbmVvdXMgbGFib3I1Nzo0MyBHb2luZyB0byB0aGUgaG9zcGl0YWwxOjAyOjAzIExhYm9yaW5nIGluIHRoZSB0dWIxOjA2OjIyIFB1c2hpbmcgZm9yIDMwIG1pbnV0ZXNNZWFnYW46IEhlbGxvLCBXb21lbiBvZiBTdHJlbmd0aC4gSXQgaXMgTWVhZ2FuIGFuZCB3ZSBoYXZlIGEgZnJpZW5kIGZyb20gTmV3IEhhbXBzaGlyZS4gSGVyIG5hbWUgaXMgSGVpZGkuIEhlbGxvLCBob3cgYXJlIHlvdT/CoEhlaWRpOiBJ4oCZbSBkb2luZyBncmVhdC4gSG93IGFyZSB5b3U/TWVhZ2FuOiBJIGFtIHNvIGdyZWF0LiBJ4oCZbSBleGNpdGVkIHRvIHJlY29yZCB0aGlzIHN0b3J5IHRvZGF5IGJlY2F1c2UgdGhlcmUgYXJlIHNvIG1hbnkgdGltZXMgaW4gVGhlIFZCQUMgTGluayBDb21tdW5pdHkgb24gRmFjZWJvb2sgd2hlcmUgd2Ugc2VlIHBlb3BsZSBjb21tZW50aW5nIGFib3V0IGdlc3RhdGlvbmFsIGRpYWJldGVzIGFuZCBmb3IgYSByZWFsbHkgbG9uZyB0aW1lIG9uIHRoZSBwb2RjYXN0LCB3ZSBkaWRu4oCZdCBoYXZlIGFueSBzdG9yaWVzIGFib3V0IGdlc3RhdGlvbmFsIGRpYWJldGVzLiBKdXN0IHJlY2VudGx5LCB0aGlzIHllYXIgcmVhbGx5LCB3ZeKAmXZlIGhhZCBzb21lIGdlc3RhdGlvbmFsIGRpYWJldGVzIHN0b3JpZXMuIEkganVzdCBsb3ZlIGl0IGJlY2F1c2UgSSB0aGluayBhIGxvdCBvZiB0aGUgdGltZSBpbiB0aGUgc3lzdGVtLCB0aGVyZSBpcyBkb3VidCBwbGFjZWQgd2l0aCB0aGUgYWJpbGl0eSB0byBnaXZlIGJpcnRoIHdpdGggZ2VzdGF0aW9uYWwgZGlhYmV0ZXMgb3IgdGhlcmUgaXMgdGhlIHdob2xlIHdpbGwgaW5kdWNlIG9yIHdvbuKAmXQgaW5kdWNlIHR5cGUgdGhpbmcsIGFuZCB3aXRoIGdlc3RhdGlvbmFsIGRpYWJldGVzLCB5b3UgaGF2ZSB0byBoYXZlIGEgYmFieSBieSAzOSB3ZWVrcyBpZiB0aGV5IHdvbuKAmXQgaW5kdWNlIHlvdSBhbmQgaXQganVzdCBnb2VzLsKgU28gSSBsb3ZlIGhlYXJpbmcgdGhlc2Ugc3RvcmllcyBhbmQgSGVpZGnigJlzIHN0b3J5IHRvZGF54oCTIHNoZSBhY3R1YWxseSBoYWQgZ2VzdGF0aW9uYWwgZGlhYmV0ZXMgd2l0aCBib3RoIHNvIHdpdGggaGVyIEMtc2VjdGlvbiBhbmQgd2l0aCBoZXIgVkJBQy4gSXQgd2FzIGNvbnRyb2xsZWQuIEl0IHdhcyBhbWF6aW5nLiBUaGF04oCZcyBhbm90aGVyIHRoaW5nIHRoYXQgSSBsb3ZlIGhlYXJpbmcgaXMgdGhhdCBpdCBpcyBwb3NzaWJsZSB0byBjb250cm9sLiBXZSBsb3ZlIExpbHkgTmljaG9scyBhbmQgdGhlIGJvb2sgYWJvdXQgZ2VzdGF0aW9uYWwgZGlhYmV0ZXMgYW5kIHByZWduYW5jeS4gV2Ugd2lsbCBtYWtlIHN1cmUgdG8gaGF2ZSBpdCBpbiB0aGUgbGluaywgYnV0IGl0IGlzIHNvIGdvb2QgdG8ga25vdyB0aGF0IGl0IGRvZXNu4oCZdCBoYXZlIHRvIGJlIGEgYmlnLCBvdmVyd2hlbG1pbmcgdGhpbmcuIEl0IGNhbiBiZSBjb250cm9sbGVkIGFuZCBpdCBkb2VzbuKAmXQgaGF2ZSB0byBiZSB0b28gY3JhenkuIFJpZ2h0PyBEaWQgeW91IGZpbmQgdGhhdCBhbG9uZyB0aGUgd2F5P8KgSGVpZGk6IFllcy4gWWVzLCBkZWZpbml0ZWx5LiBUaGUgZmlyc3Qgb25lIHdhcyBwcmV0dHkgc2NhcnksIGJ1dCB0aGVuIHRoZSBzZWNvbmQgb25lLCB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgYW5kIHlvdSBjYW4gY29udHJvbCBpdCBhbmQgeW91IGNhbiBrZWVwIGFkdm9jYXRpbmcgZm9yIHlvdXJzZWxmLsKgTWVhZ2FuOiBBYnNvbHV0ZWx5LiBBbmQgdGhlbiBpbiBhZGRpdGlvbiB0byBnZXN0YXRpb25hbCBkaWFiZXRlcywgc2hlIGhhZCBhZHZhbmNlZCBtYXRlcm5hbCBhZ2UgYmFyZWx5IHdpdGggaGVyIHNlY29uZCwgYnV0IHRoYXQgaXMgc29tZXRoaW5nIHRoYXQgYWxzbyBnZXRzIHRocm93biBvdXQuIEEgbG90IG9mIHRoZSB0aW1lLCB3ZSBoYXZlIHByb3ZpZGVycyBzYXlpbmcsIOKAnFdlIHNob3VsZG7igJl0IGhhdmUgYSB2YWdpbmFsIGJpcnRoLiBXZSBzaG91bGQgaGF2ZSBhIEMtc2VjdGlvbiBieSB0aGlzIHRpbWUs4oCdIHNvIHRoYXTigJlzIGFub3RoZXIgdGhpbmcuIElmIHlvdSBhcmUgYW4gYWR2YW5jZWQtbWF0ZXJuYWwtYWdlIG1hbWEsIGxpc3RlbiB1cCBiZWNhdXNlIGhlcmUgaXMgYW5vdGhlciBzdG9yeSBmb3IgeW91IGFzIHdlbGwuIFdlIGRvbuKAmXQgaGF2ZSBhIGxvdCBvZiB0aG9zZSBvbiB0aGUgcG9kY2FzdC4gV2UgYXJlIHNvIGV4Y2l0ZWQgdG8gd2VsY29tZSBIZWlkaSB0byB0aGUgc2hvdy7CoDA1OjUwIFJldmlldyBvZiB0aGUgV2Vla01lYWdhbjogT2YgY291cnNlLCB3ZSBhcmUgZ29pbmcgdG8gZG8gYSBSZXZpZXcgb2YgdGhlIFdlZWsgYW5kIHRoZW4gd2Ugd2lsbCBkaXZlIHJpZ2h0IGluLiBUaGlzIHdhcyBmcm9tIHN0ZXBoYW5pZXQgYW5kIGl0IHNheXMsIOKAnEluc3BpcmluZyBhbmQgRWR1Y2F0aW9uYWwu4oCdIEl0IHNheXMsIOKAnEFzIGEgbW90aGVyIGN1cnJlbnRseSBpbiBoZXIgdGhpcmQgdHJpbWVzdGVyIHByZXBhcmluZyBmb3IgYSBWQkFDLCBJIHdhcyBzbyBoYXBweSB0byBmaW5kIHRoaXMgcG9kY2FzdC4gVGhlIHN0b3JpZXMgc2hhcmVkIGFyZSBzbyBlbmNvdXJhZ2luZyBhbmQgaXQgaXMgc28gY29tZm9ydGluZyB0byBrbm93IHRoYXQgSSBhbSBub3QgYWxvbmUgaW4gZmVlbGluZyB0aGF0IG9uY2UgYSBDZXNhcmVhbiwgYWx3YXlzIGEgQ2VzYXJlYW4u4oCdIDEwMCUuIFRoYXQgaXMgMTAwJSB0cnVlLiBZb3UgYXJlIG5vdCBhbG9uZSBoZXJlLiBBbmQgb25jZSBhIENlc2FyZWFuIGlzIG5vdCBhbHdheXMgYSBDZXNhcmVhbi7CoEl0IHNheXMsIOKAnFRoaXMgZG9lcyBub3QgaGF2ZSB0byBiZSBteSBzdG9yeS4gVGhhbmtzLCBNZWFnYW4gYW5kIEp1bGllLCBmb3IgcHJvdmlkaW5nIHRoZSBzdXBwb3J0IGFuZCBlZHVjYXRpb24gdG8gd29tZW4gd2hvIGFyZSBmaWdodGluZyBmb3IgYSBjaGFuY2UgdG8gaGF2ZSBhIG5hdHVyYWwgY2hpbGRiaXJ0aC4gSSB3b3VsZCBsb3ZlIHRvIGVuY291cmFnZSBhbnlvbmUgd2FudGluZyB0byBsZWFybiBtb3JlIGFib3V0IFZCQUMgdG8gbGlzdGVuIHRvIHRoaXMgcG9kY2FzdC7igJ3CoFRoYW5rIHlvdSwgc3RlcGhhbmlldC4gVGhpcyB3YXMgcXVpdGUgYSBmZXcgeWVhcnMgYWdvLCBhY3R1YWxseS4gVGhpcyB3YXMgaW4gMjAxOS4gV2Ugc3RpbGwgaGF2ZSBzb21lIHJldmlld3MgaW4gMjAxOSB0aGF0IHdlcmVu4oCZdCByZWFkLiBJdOKAmXMgMjAyNCwgc28gdGhhdOKAmXMgcmVhbGx5IGF3ZXNvbWUgYW5kIGFzIHVzdWFsLCBpZiB5b3UgaGF2ZSBhIG1vbWVudCwgd2Ugd291bGQgbG92ZSB5b3VyIHJldmlld3MuIFlvdXIgcmV2aWV3cyB0cnVseSBhcmUgd2hhdCBoZWxwIG1vcmUgV29tZW4gb2YgU3RyZW5ndGggZmluZCB0aGVzZSBzdG9yaWVzLiBXZSB3YW50IHRoZXNlIHN0b3JpZXMgdG8gYmUgaGVhcmQgc28gbGVhdmUgdXMgYSByZXZpZXcgaWYgeW91IGNhbiBvbiBBcHBsZSBQb2RjYXN0cyBhbmQgR29vZ2xlLiBZb3UgY2FuIGVtYWlsIHVzIGEgcmV2aWV3IG9yIHdoYXRldmVyLCBidXQgZGVmaW5pdGVseSBpZiB5b3UgbGlzdGVuIHRvIHRoZSBwb2RjYXN0IG9uIGEgcGxhdGZvcm0sIGxlYXZlIGEgcmV2aWV3IGFuZCB0aGF0IHdvdWxkIGhlbHAuwqAwODowNCBIZWlkaeKAmXMgZmlyc3QgcHJlZ25hbmN5IHdpdGggZ2VzdGF0aW9uYWwgZGlhYmV0ZXNNZWFnYW46IEFsbCByaWdodCwgTXMuIEhlaWRpLiBXZWxjb21lIHRvIHRoZSBzaG93IGFuZCB0aGFuayB5b3UgZm9yIGJlaW5nIHdpdGggdXMuwqBIZWlkaTogVGhhbmtzIGZvciBoYXZpbmcgbWUuIFRoaXMgaXMgYXdlc29tZS7CoE1lYWdhbjogV2VsbCwgbGV04oCZcyB0YWxrIGFib3V0IGl0LiBTaGFyZSB5b3VyIHN0b3J5IHdpdGggdXMgd2l0aCB5b3VyIEMtc2VjdGlvbi7CoEhlaWRpOiBZZWFoLiBXZSB3ZXJlIHBsYW5uaW5nIGZvciBhIGNoaWxkIGFuZCB3ZSBqdXN0IGRlY2lkZWQuIFdlIHdlcmUgbGlrZSwg4oCcT2theS4gTGV04oCZcyBzaG9vdCBmb3IgYW4gQXByaWwgYmlydGhkYXRlLuKAnSBXZSBqdXN0IHRob3VnaHQgdGhhdCB3ZSBjb3VsZCBqdXN0IGhhdmUgYSBjaGlsZCwgYnV0IHdlIGdvdCBsdWNreSBhbmQgd2UgZGlkIG9uIHRoZSBmaXJzdCB0cnkuwqBNZWFnYW46IEFtYXppbmcuwqBIZWlkaTogV2Ugd2VudCB0byBvdXIgbG9jYWwgaG9zcGl0YWwgdGhhdCB3YXMgYWJvdXQgZml2ZSBtaW51dGVzIGF3YXkgZm9yIGNhcmUgYW5kIGl0IGp1c3Qgc2VlbWVkIGdvb2QgZW5vdWdoLiBBdCB0aGUgdGltZSwgSSB0aG91Z2h0IHlvdSBqdXN0IGdvIHRvIHRoZSBob3NwaXRhbC4gWW91IGdldCBjYXJlLiBZb3UgY2FuIHRydXN0IHRoZSBwcm92aWRlciBhbmQgeW91IGRvbuKAmXQgcmVhbGx5IG5lZWQgdG8gZG8gYW55dGhpbmcgb3RoZXIgdGhhbiBhIGhvc3BpdGFsIGJpcnRoIGNsYXNzIGZvciBwcmVwcGluZy4gV2UganVzdCB3ZW50IGFsb25nIHRoYXQgam91cm5leS4gVGhleSBhc3N1cmVkIG1lLCDigJxUaGlzIHdpbGwgYmUgYSBub3JtYWwgcHJlZ25hbmN5LiBFdmVyeXRoaW5nIGlzIGdyZWF0LuKAnSBUaGUgcHJlZ25hbmN5IHdhcyB1bmV2ZW50ZnVsIHVudGlsIGFib3V0IDIwIHdlZWtzIHdoZW4gSSBmb3VuZCBvdXQgbXkgYmFieSB3YXMgbWlzc2luZyBhIGtpZG5leSBkdXJpbmcgYSByb3V0aW5lIHVsdHJhc291bmQuIFRoYXQgc2VudCB1cyBkb3duIEdvb2dsZSByYWJiaXQgaG9sZXMgYW5kIGFsbCBraW5kcyBvZiBmdW4gdGhpbmdzLsKgTWVhZ2FuOiBJ4oCZbSBzdXJlLCB5ZWFoLsKgSGVpZGk6IFllYWguIFNvIGF0IHRoYXQgcG9pbnQsIHdlIHdlcmUgYXNzaWduZWQgYSBNYXRlcm5hbC1mZXRhbCBtZWRpY2luZSBPQi4gSSB3YXMgb2ZmZXJlZCBhbiBhbW5pb2NlbnRlc2lzIGlmIHdlIHdhbnRlZCB0byBjaGVjayBhbmQgc2VlIHdoYXQgZWxzZSB3YXMgd3JvbmcgYW5kIHRoaW5ncyBsaWtlIHRoYXQuIFRoYXQgd2FzIGEgbWFqb3IgY3VydmViYWxsLsKgTWVhZ2FuOiBEaWQgeW91IGVuZCB1cCBwYXJ0aWNpcGF0aW5nIGluIHRoZSBhbW5pbz/CoEhlaWRpOiBObywgd2UgZGlkbuKAmXQuIFdlIGhhZCBhIGNvdXBsZSBvZiBkZXRhaWxlZCB1bHRyYXNvdW5kcyBhZnRlciB0aGF0LiBBdCBmaXJzdCwgdGhleSBkaWRu4oCZdCBhY3R1YWxseSB0ZWxsIG1lIHdoYXQgdGhleSB3ZXJlIGxvb2tpbmcgZm9yLiBJIGhhZCB0aHJlZSB1bHRyYXNvdW5kcyBpbiBhIHJvdyB0aGF0IHdlcmUgbm90IHRoZSBtb3JlIGRldGFpbGVkIG9uZXMuwqBNZWFnYW46IE9oLCBva2F5LsKgSGVpZGk6IEkgd2FzIGxpa2UsIOKAnFdoeSBhbSBJIGhhdmluZyBhbGwgb2YgdGhlc2UgdWx0cmFzb3VuZHM/IE5vYm9keSBpcyBzYXlpbmcgYW55dGhpbmcu4oCdIEkgZmluYWxseSBnb3QgYSBwaG9uZSBjYWxsIHRlbGxpbmcgbWUgdGhhdCBteSBkYXVnaHRlciB3YXMgbWlzc2luZyBhIGtpZG5leSBzbyB0aGF04oCZcyB3aGF0IHRoZXkgd2VyZSBsb29raW5nIGZvci4gSSB3YXMgbGlrZSwg4oCcT2theS4gR29vZCB0byBrbm93LuKAncKgTWVhZ2FuOiBZZWFoLiBZb3Ugd291bGQgaGF2ZSB0aG91Z2h0IHNvbWUgY29tbXVuaWNhdGlvbiBiZWZvcmUgdGhlbiB3b3VsZCBoYXZlIGhhcHBlbmVkIHRob3VnaC7CoEhlaWRpOiBZZWFoLiBJdCB3YXMgcHJldHR5IHNjYXJ5LiBTbyB3aGF0IHNlZW1lZCBwcmV0dHkgdW5ldmVudGZ1bOKAk01lYWdhbjogR290IGV2ZW50ZnVsLsKgSGVpZGk6IFllYWgsIGl0IGRpZC4gU28gcmlnaHQgYXJvdW5kIDI4LTMwIHdlZWtzIHdoZW4gdGhleSBkbyB0aGUgZ2VzdGF0aW9uYWwgZGlhYmV0ZXMgY2hlY2ssIEkgd2VudCBpbiBmb3IgbXkgY2hlY2sgYW5kIGZvdW5kIHRoYXQgSSB3b3VsZCBuZWVkIHRvIHN0YXJ0IHRyYWNraW5nIG15IGJsb29kIHN1Z2FyIGFuZCBkaWFiZXRlcyBkb2VzIHRlbmQgdG8ga2luZCBvZiBydW4gaW4gbXkgZmFtaWx5IGV2ZW4gdGhvdWdoIGV2ZXJ5Ym9keSBpcyB2ZXJ5IGhlYWx0aHkuIEkgd2FzIHdvbmRlcmluZyBpZiBpdCB3b3VsZCBjb21lIHVwIGFuZCBhbHNvIGJlaW5nIG9sZGVyLCBzb21ldGltZXMgdGhleSBzYXkgdGhlcmUgaXMgYSBsaW5rIGJ1dCBpdCBzdGlsbCB0b29rIG1lIGJ5IHN1cnByaXNlIGJlY2F1c2UgSeKAmW0gYSB2ZXJ5IGFjdGl2ZSBwZXJzb24gYW5kIEkgZWF0IHJlYWxseSBoZWFsdGh5LsKgSSBmZWx0IGxpa2UgYSBmYWlsdXJlIGJhc2ljYWxseS7CoE1lYWdhbjogSeKAmW0gc28gc29ycnnCoEhlaWRpOiBZZWFoLiBBbGwgb2YgYSBzdWRkZW4sIEnigJltIG1lZXRpbmcgd2l0aCBhIG51dHJpdGlvbmlzdC4gVGhleSBnaXZlIG1lIHRoaXMgd2hvbGUgcGFja2FnZSBvZiBhIGZpbmdlciBwcmlja2VyLiBZZWFoLCBleGFjdGx5LiBBbGwgb2YgYSBzdWRkZW4sIEnigJltIHN1Ym1pdHRpbmcgbG9ncyBmb3VyIHRpbWVzIGEgZGF5IGNoZWNraW5nIGJsb29kIHN1Z2FyLCBhbmQgdGhlIGZhc3RpbmcgbnVtYmVycyBmb3IgbWUganVzdCB3ZXJlbuKAmXQgY29taW5nIGRvd24gc28gaXQgd2FzIGFib3V0IG9uZSB3ZWVrIG9mIHRoYXQsIGFuZCB0aGVuIGFsbCBvZiBhIHN1ZGRlbiwgdGhleSB3ZXJlIHNheWluZywg4oCcT2theS4gWW91IHByb2JhYmx5IG5lZWQgaW5zdWxpbi7igJ3CoDEyOjA1IFRha2luZyBpbnN1bGluSGVpZGk6IEl0IGNhbWUgb24gc28gZmFzdCwgc28gc3Ryb25nLsKgTWVhZ2FuOiBXb3cuwqBIZWlkaTogSXQgd2FzIHJlYWxseSBzY2FyeSBzbyB0aGVuIEkgZm91bmQgbXlzZWxmIGdvaW5nIHRvIHRoZSBwaGFybWFjeS4gSSBhbSBhIHZlcnkgaGVhbHRoeSBwZXJzb24gc28gaXQgd2FzIGp1c3QgYWxsIHJlYWxseSB3ZWlyZCBnb2luZyB0byB0aGUgcGhhcm1hY3kgYnV5aW5nIGluc3VsaW4gYW5kIGxlYXJuaW5nIGFsbCBhYm91dCBpbnN1bGluIGFuZCBsZWFybmluZyBhbG1vc3QgaG93IGxpdHRsZSB0aGUgbWVkaWNhbCBmaWVsZCB1bmRlcnN0YW5kcyBhYm91dCBnZXN0YXRpb25hbCBkaWFiZXRlcy4gVGhhdCB3YXMgc29tZXRoaW5nIGJvdW5jaW5nIGluIG15IGhlYWQgYm91bmNpbmcgb2ZmIHRoZSB3YWxsIHRyeWluZyB0byB1bmRlcnN0YW5kIHRoZSBwbGFuIHRoZXJlLsKgTWVhZ2FuOiBZZWFoLsKgSGVpZGk6IFllYWgsIHNvIGFmdGVyIHRoYXQsIHRoZW4gSSBnb3QgcGhvbmUgY2FsbHMgZnJvbSB0aGUgbnVyc2VzLiBUaGV5IHNhaWQsIOKAnFlvdSBrbm93LCBub3cgeW91IGFyZSBvbiBpbnN1bGluLiBOb3csIHlvdSBhcmUgZ29pbmcgdG8gaGF2ZSB0d2ljZSB3ZWVrbHkgTlNUcyByZXF1aXJlZCBhdCAzNSB3ZWVrcy7igJ0gSeKAmW0gdGhpbmtpbmcsIOKAnFdlbGwsIEnigJltIHdvcmtpbmcgZnVsbCB0aW1lLiBIb3cgYW0gSSBnb2luZyB0byBkbyBhbGwgb2YgdGhpcz/igJ0gVGhlcmUgaXMganVzdCBzbyBtdWNoIHNpY2sgdGltZSBhbmQgaXQgd2FzIHJlYWxseSwgcmVhbGx5IGRpZmZpY3VsdCB0byBoZWFyIGFsbCBvZiB0aGF0LsKgTWVhZ2FuOiBZZWFoLiBIb3cgZG8gSSBoYXZlIHRpbWUgZm9yIGFsbCBvZiB0aGF0PyBQbHVzIGp1c3QgYmVpbmcgcHJlZ25hbnQuwqBIZWlkaTogWWVhaC4gWWVhaC4gSW5zdWxpbiBhbmQganVzdCBmb3IgYW55b25lIHRoYXQgZG9lc27igJl0IGtub3csIGJhc2ljYWxseSB5b3UgaW5qZWN0IHlvdXJzZWxmLiBJIHdhcyBpbmplY3RpbmcgbXlzZWxmIGV2ZXJ5IG5pZ2h0IHdpdGggYW4gaW5zdWxpbiBwZW4gYW5kIGl0IHdhcyBhbGwganVzdCB2ZXJ5IHdlaXJkIGJlY2F1c2UgeW914oCZcmUgYWxzbyB0aGlua2luZywg4oCcV2VsbCwgSeKAmW0gcHJlZ25hbnQuIEnigJl2ZSBuZXZlciBiZWVuIG9uIHRoaXMgbWVkaWNhdGlvbi4gV2hhdCBpcyBpdCBnb2luZyB0byBkbyB0byBtZT8gV2hhdCBpcyBpdCBkb2luZyB0byBteSBiYWJ5P+KAnSBWZXJ5IG5lcnZld3JhY2tpbmcuIEl04oCZcyBhbGwgbm9ybWFsIHRvIGZlZWwgdGhhdCB3YXkuwqBNZWFnYW46IFllYWguIEkgdGhpbmsgc29tZXRpbWVzIHdoZW4gd2UgZ2V0IHRoZXNlIGRpYWdub3Nlcywgd2Ugd2FudCB0byBlaXRoZXIgcmVjbHVzZSBiZWNhdXNlIGl04oCZcyBzbyBvdmVyd2hlbG1pbmcsIGFuZCBzb21ldGltZXMgdGhlbiwgb3VyIG51bWJlcnMgY2FuIGdldCBhIGxpdHRsZSB3b25reSwgb3Igd2UgZGl2ZSBpbiBzbyBtdWNoIHRoYXQgaXQgY29uc3VtZXMgdXMgYW5kIHdlIGZvcmdldCB0aGF0IHdlIGFyZSBzdGlsbCBodW1hbiBhbmQgd2UgZG9u4oCZdCBoYXZlIHRvIGRvIHRoYXQuwqBIZWlkaTogWWVhaC4gTm93IHRoYXQgeW91IHNheSB0aGF0LCBJIGRlZmluaXRlbHkgZGlkIGEgbGl0dGxlIGJpdCBvZiBib3RoLsKgTWVhZ2FuOiBEaWQgeW91PyBIZWlkaTogSSBkaWQgYSBsaXR0bGUgYml0IG9mIGRlbmlhbCBhbmQgdGhlbiBJIGRpZCBhIGxpdHRsZSBiaXQgb2Ygb2JzZXNzaXZlIHJlc2VhcmNoaW5nLsKgTWVhZ2FuOiBZZWFoLCBiZWNhdXNlIHlvdSB3YW50IHRvIGtub3cuIFlvdSB3YW50IHRvIGJlIGluZm9ybWVkIGFuZCB0aGF04oCZcyBzdXBlciBnb29kLCBidXQgc29tZXRpbWVzIGl0IGNhbiBjb250cm9sIHVzLsKgSGVpZGk6IFllcy4gQWJzb2x1dGVseS4gWW914oCZcmUgd2F0Y2hpbmcgZXZlcnkgc2luZ2xlIHRoaW5nIHRoYXQgZ29lcyBpbnRvIHlvdXIgYm9keS4gSSBwcm9iYWJseSBkaWRu4oCZdCBsb29rIGF0IGZvb2Qgbm9ybWFsbHkgdW50aWwgbXkgc2Vjb25kIHByZWduYW5jeSB0byBiZSBob25lc3Qgd2l0aCB5b3UuwqBNZWFnYW46IFJlYWxseT/CoEhlaWRpOiBZZWFoLsKgTWVhZ2FuOiBZZWFoLiBZZWFoLiBTbyBpdCB3YXMgd29ya2luZy4gVGhpbmdzIHdlcmUgYmVpbmcgbWFuYWdlZC7CoEhlaWRpOiBZZXMuIEkgd2FzIGhvbmVzdGx5IHZlcnkgZ3JhdGVmdWwgZm9yIHRoZSBpbnN1bGluLiBPYnZpb3VzbHksIGl0IHRvb2sgYSBsaXR0bGUgd2hpbGUgdG8gZmVlbCB0aGF0IHdheSwgYnV0IGl0IHdhcyB2ZXJ5IHdlbGwtbWFuYWdlZC4gTXkgbnVtYmVycyB3ZXJlIHJpZ2h0IGluIHJhbmdlLiBNeSBibG9vZCBzdWdhcnMgd2VyZSBhbHdheXMgbm9ybWFsIHRocm91Z2hvdXQgdGhlIGRheS4gSSBuZXZlciBoYWQgdG8gZG8gYW55dGhpbmcgZHVyaW5nIHRoZSBkYXkuIEkganVzdCBjaGVja2VkIG15IGJsb29kIHN1Z2Fycy7CoFRoZW4gdGhlIG90aGVyIHRoaW5nIHRoYXQgY2FtZSBhcyBhbiBhbGFybSwgdGhleSB0b2xkIG1lIGFib3V0IHRoZSBOU1RzIHdoaWNoIGFyZSBub24tc3RyZXNzIHRlc3RzLiBUaGV5IGFsc28gbWVudGlvbmVkIHRoYXQgSSB3b3VsZCBuZWVkIGFuIGluZHVjdGlvbiBpbiB0aGUgMzl0aCB3ZWVrIGJlY2F1c2XigJNNZWFnYW46IDM5IHRvIGJlIHN1Z2dlc3RlZCwgSSBzaG91bGQgc2F5LsKgSGVpZGk6IFllYWguIEl0IHdhc27igJl0IGV4cGxhaW5lZCB0byBtZSB0aGF0IHdpdGggdGhhdCBwcm92aWRlciwgaXQgd2FzIGEgY2hvaWNlLiBJdCB3YXNu4oCZdCBhIHN1Z2dlc3Rpb24uIEl0IHdhcyBsaWtlLCDigJxZb3UgaGF2ZSB0byBkbyB0aGlzIG9yIHlvdSBtaWdodCBoYXZlIGEgc3RpbGxiaXJ0aC7igJ0gSXQgd2FzIHJlYWxseSBzY2FyeS7CoE1lYWdhbjogT2guwqBIZWlkaTogSSBkaWRu4oCZdCBrbm93IEkgaGFkIGEgY2hvaWNlLiBCZWluZyBhIGZpcnN0LXRpbWUgbW9tIGFuZCBub3Qga25vd2luZyBhYm91dCBldmlkZW5jZS1iYXNlZCBiaXJ0aCwgdGhpcyBwb2RjYXN0LCBvciBhbGwgb2YgaXQuIEkgaGFkIG5vIGlkZWEuIFNvIEkgd2FzIHRvbGQgSSBjb3VsZCBzY2hlZHVsZSBpdCBhbnl0aW1lIGFmdGVyIG15IDM2dGggd2VlayBhbmQgZm9yIGV2ZXJ5IGFwcG9pbnRtZW50IHRoYXQgSSBoYWQgYXMgSSBzdGFydGVkIGdldHRpbmcgY2xvc2VyLCBJIGZlbHQgYSBsb3Qgb2YgcHJlc3N1cmUgZnJvbSB0aGUgcHJvdmlkZXJzIHRvIHNjaGVkdWxlIHRoZSBpbmR1Y3Rpb24uIFRoZXkgY2l0ZWQgdGhlIEFSUklWRSB0cmlhbC7CoE1lYWdhbjogWWVzLiBBbm90aGVyIHRoaW5nIEkgcm9sbCBteSBleWVzIGF0LiBJIGRvbuKAmXQgaGF0ZSBhbGwgdGhpbmdzLiBJIGp1c3QgZG9u4oCZdCBsaWtlIHdoZW4gcGVvcGxlIGNhbGwgcGVvcGxlIG9sZCBhbmQgd2hlbiB0aGV5IHRlbGwgcGVvcGxlIHRoZXkgaGF2ZSB0byBkbyBzb21ldGhpbmcgYmVjYXVzZSBvZiBhIHRyaWFsIHRoYXQgcmVhbGx5IHdhc27igJl0IHRoYXQgZ3JlYXQuIEJ1dCwgb2theS7CoEhlaWRpOiBZZXAuIFllYWguIEkgbWVhbiwgdGhleSBkaWRu4oCZdCBleHBsYWluIHRoZSBkZXRhaWxzIG9mIGl0IGVpdGhlci4gVGhleSBqdXN0IHNhaWQsIOKAnE9oLCBpdOKAmXMgdGhlIEFSUklWRSB0cmlhbCzigJ0gc28gSSBnbyBhbmQgR29vZ2xlIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiBpdC4gVGhleSBqdXN0IHNheSwg4oCcU3RpbGxiaXJ0aCByaXNrIGluY3JlYXNlcy7igJ0gVGhleSBzYXksIOKAnElmIHlvdSBhcmUgaW5kdWNlZCBhdCB0aGUgMzl0aCB3ZWVrLCB0aGVyZSBpcyBubyBpbmNyZWFzZSBhbmQgY2hhbmNlIG9mIGEgQy1zZWN0aW9uLOKAnSBzbyBJIHRob3VnaHQsIOKAnE9oLCBva2F5LiBTdXJlLuKAncKgTWVhZ2FuOiBSaWdodC4gUmlnaHQsIHllYWguwqBIZWlkaTogSSBmaW5hbGx5IGdhdmUgaW4gbmVhciB0aGUgZW5kIGFuZCBJIHNjaGVkdWxlZCBteSBpbmR1Y3Rpb24gZm9yIHRoZSAzOXRoIHdlZWsgYW5kIDZ0aCBkYXkuwqBNZWFnYW46IE9rYXksIHNvIGFsbW9zdCA0MS7CoEhlaWRpOiBZZXAuIFNvIHRoZW4gSSB3b3JrZWQgcmlnaHQgdXAgdG8gdGhlIG5pZ2h0IGJlZm9yZSBteSBpbmR1Y3Rpb24uIEkgd2FzIGFkbWl0dGVkIHRvIHRoZSBob3NwaXRhbCBhdCA3OjAwIEFNLiBJIHdhcyBwbGFubmluZyBmb3IgYW4gdW5tZWRpY2F0ZWQsIHVuY29tcGxpY2F0ZWQgZGVsaXZlcnkgYW5kIGFuIGluZHVjdGlvbiB1c2luZyBhIENvb2sgYmFsbG9vbiBiZWNhdXNlIG15IHByb3ZpZGVyIGhhZCBjaGVja2VkIG1lIGluIHRoZSBvZmZpY2UgdGhlIGRheSBiZWZvcmUgYW5kIHRoZXkgZm91bmQgdGhhdCBJIHdhcyAxIGNlbnRpbWV0ZXIgZGlsYXRlZCBzbyB0aGV5IHNhaWQgdGhleSBjb3VsZCBwcm9iYWJseSBnZXQgdGhlIGJhbGxvb24uwqBJ4oCZbSB0aGlua2luZywg4oCcT2gsIGl04oCZcyBnb2luZyB0byBiZSBhIG1lY2hhbmljYWwgaW5kdWN0aW9uLiBUaGVyZeKAmXMgZ29pbmcgdG8gYmUgbm8gSVYuIEl04oCZcyBnb2luZyB0byBiZSByZWFsbHkgYXMgbmF0dXJhbCBhcyBwb3NzaWJsZS7igJ0gMTg6MDggMzktd2VlayBpbmR1Y3Rpb27CoEhlaWRpOiBJIGdldCBpbnRvIHRyaWFnZSBhbmQgaW1tZWRpYXRlbHksIHRoZXkgc3RhcnQgcHV0dGluZyBhbiBJViBpbiBteSByaWdodCBhcm0uIEkgYW0gcmlnaHQtaGFuZGVkLsKgTWVhZ2FuOiBXaHkgZG8gdGhleSBkbyB0aGF0PyBJZiB5b3UgYXJlIGxpc3RlbmluZyBhbmQgeW91IGFyZSBnZXR0aW5nIGFuIElWLCBkb27igJl0IGhlc2l0YXRlIHRvIHNheSwg4oCcSGV5LCB0aGF04oCZcyBteSBkb21pbmFudCBoYW5kLiBDYW4gd2UgcHV0IGl0IGluIHRoZSBvdGhlciBvbmU/4oCdIEFsc28sIGRvbuKAmXQgaGVzaXRhdGUgdG8gc2F5LCDigJxEb27igJl0IHB1dCBpdCBpbiBteSB3cmlzdCB3aGVyZSBJ4oCZbSBnb2luZyB0byB0cnkgYW5kIGJlIGJlbmRpbmcgYW5kIGJyZWFzdGZlZWRpbmcgYSBiYWJ5IGluIHRoZSBlbmQuIFB1dCBpdCBpbiB0aGUgaGFuZCBvciBwdXQgaXQgdXAgaW4gdGhlIGFybS7igJ3CoEhlaWRpOiBUaGF04oCZcyByZWFsbHkgZ29vZCBhZHZpY2UuIEkgZGlkbuKAmXQga25vdyB0aGF0IHRoZSBmaXJzdCB0aW1lLsKgTWVhZ2FuOiBJIGRpZG7igJl0IGVpdGhlci7CoEhlaWRpOiBJIGtuZXcgZW5vdWdoIHRvIHNheSwg4oCcV2hvYSwgd2hvYSwgd2hvYS4gUHV0IGl0IGluIG15IGxlZnQgaGFuZC7igJ0gVGhleSBlbmRlZCB1cCBwdXR0aW5nIGl0IGluIG15IGZvcmVhcm0uwqBTbyBoZXJlIEkgYW0uIEkgd2FzIGhvb2tlZCB1cCB0byBQZW5pY2lsbGluLiBJIHdhcyBHQlMgcG9zaXRpdmUuIEkgZmVlbCBsaWtlIEkgaGFkIGFsbCBvZiB0aGUgdGhpbmdzLsKgTWVhZ2FuOiBZZXMuIFdl4oCZdmUgZ290IGdlc3RhdGlvbmFsIGRpYWJldGVzLCBHQlMsIG1hdGVybmFsIGFnZSwgYW5kIG5vdyB3ZeKAmXZlIGdvdCBhbiBpbmR1Y3Rpb24uwqBIZWlkaTogWWVhaC4gT2ggeWVhaC4gU28geWVhaC4gVGhleSBwdXQgaW4gUGVuaWNpbGxpbiwgUGl0b2NpbiwgYW5kIHNhbGluZSwgYW5kIHRoZW4gdGhleSBzaG93ZWQgbWUgaG93IHRvIG1vdmUgYXJvdW5kIHdoaWxlIHdoZWVsaW5nIGFuIElWIHBvbGUuwqBNZWFnYW46IE1tbSwgeWVhaC4gRnVuLkhlaWRpOiBZZWFoLiBXZSBmZWx0IGEgbGl0dGxlIGd1dHRlZCBhdCB0aGF0IHBvaW50LiBXZSBhcmUgaW4gdGhlIGhvc3BpdGFsIGFuZCBzb3JyeSwgd2hlbiBJIHNheSB3ZSwgaXTigJlzIG15IGh1c2JhbmQgYW5kIEkuIFllYWguIFRoZSBtaWR3aWZlIGhhZCB0cm91YmxlIGdldHRpbmcgdGhlIENvb2sgYmFsbG9vbiBpbi4gV2UganVzdCBzYXQgYXJvdW5kIG9uIFBpdG9jaW4gdGhhdCBmaXJzdCBkYXkuIFRoZSBPQiBmaW5hbGx5IGdvdCBpdCBpbiBhcm91bmQgMTA6MDAgUE0gdGhhdCBuaWdodC4gSXQgd2FzIGhlciBmaXJzdCB2aXNpdCB0byBzZWUgdXMgYWN0dWFsbHkuIFNoZSBwcm9iYWJseSBjb3VsZCBoYXZlIGdvdHRlbiBpdCBpbiBlYXJsaWVyIGhhZCBzaGUgY29tZSBlYXJsaWVyLiBJdCBzcGVkIHVwIHRoZSBsYWJvciBvdmVybmlnaHQgYXMgc29vbiBhcyB0aGUgQ29vayBiYWxsb29uIHdlbnQgaW4uIEl0IHdhcyBhIGJpdCBwYWluZnVsLiBUaGV5IHN0b3BwZWQgdGhlIFBpdG9jaW4gdGhlIG5leHQgbW9ybmluZy7CoE15IHdhdGVyIGJyb2tlIG9uIGl0cyBvd24uIFRoZXkgd2VyZSB0YWxraW5nIGFib3V0IGNvbWluZyBpbiB0byBicmVhayBteSB3YXRlciBhbmQgSSB0aGluayBteSBib2R5IHByb2JhYmx5IGhlYXJkIHRoZW0sIHNvIGl0IGJyb2tlIG9uIGl0cyBvd24uIFllYWguIEkgd2FzIGp1c3QgbGF5aW5nIGluIHRoZSBiZWQgYW5kIGl0IGhhcHBlbmVkLiBUaGVuIGxhYm9yIGJlZ2FuIHRvIHBpY2sgdXAsIGJ1dCB0aGUgY29udHJhY3Rpb25zIHdlcmUgc3RpbGwgbm90IHJlZ3VsYXIuIFBpdG9jaW4gd2FzIGluY3JlYXNlZCBhbmQgdGhlbiB0aGUgY29udHJhY3Rpb25zIGdvdCByZWFsbHkgaW50ZW5zZSwgYnV0IHN0aWxsIGlycmVndWxhciB1bnRpbCBhcm91bmQgNDowMCBQTSB0aGF0IGRheSBhdCB3aGljaCBwb2ludCwgSSBqdXN0IGNvdWxkbuKAmXQgdGFrZSBpdC4gSSBhc2tlZCBmb3IgdGhlIGVwaWR1cmFsLsKgTWVhZ2FuOiBUaGF04oCZcyBhIGxvdC4gVGhhdOKAmXMgYSBsb3QuwqBIZWlkaTogWWVhaC4gSXQgd2FzIGludGVuc2UuwqAyMDo1OSBQdXNoaW5nwqBIZWlkaTogVGhlIHNoaWZ0IGNoYW5nZWQgYW5kIGEgbmV3IG51cnNlIGhhZCBhIHN0dWRlbnQgd2l0aCBoZXIuIFNvIEkgY29uc2VudGVkIHRvIHRoZSBzdHVkZW50IGJlaW5nIHRoZXJlIHRoaW5raW5nLCDigJxPaCB5ZWFoLiBDb21lIG9uLiBDb21lIG9ic2VydmUgbXkgYXdlc29tZSBsYWJvci4gVGhpcyBpcyBnb2luZyB0byBiZSBhbWF6aW5nLiBJdOKAmXMgZ29pbmcgdG8gYmUgYSB2YWdpbmFsIGRlbGl2ZXJ5IGFuZCBldmVyeXRoaW5nLOKAnSBzbyBJ4oCZbSBsaWtlLCDigJxZZWFoLCBzdXJlLiBMZXQgdGhlbSBsZWFybi7igJ0gSSBhY2hpZXZlZCAxMCBjZW50aW1ldGVycyBkaWxhdGlvbiBhbmQgZnVsbCBlZmZhY2VtZW50IGFyb3VuZCA5OjAwIFBNIHRoYXQgbmlnaHQgc28gaXQgd2FzIHJlYWxseSBleGNpdGluZy7CoE1lYWdhbjogVGhhdOKAmXMgYWN0dWFsbHkgcHJldHR5IGZhc3QuIDEwOjAwIGlzIHdoZW4gdGhlIENvb2sgd2FzIHBsYW5uZWQgdGhlIG5pZ2h0IGJlZm9yZS4gOTowMCBQTSwgc28gaGV5LCB0aGF04oCZcyBwcmV0dHkgZ29vZC7CoEhlaWRpOiBZZWFoLiBJIHdhcyBoYXBweSBhYm91dCB0aGF0LiBJIHdhcyBzbyBleGNpdGVkIHRvIHB1c2guIEkgY291bGRu4oCZdCBmZWVsIGEgbG90IGJlY2F1c2UgSSB3YXMgb24gdGhlIGVwaWR1cmFsLCBidXQgaXQgcmVhbGx5IHRvb2sgdGhlIHBhaW4gYXdheSBhbmQgaXQgaGVscGVkIGEgbG90IGluIHRoZSBtb21lbnQuwqBTbyBsZXTigJlzIHNlZSwgSSB3YXMgbW9zdGx5IG9uIG15IGJhY2suIEkgd2FzIHRpcmVkLiBJIHdhcyBqdXN0IHJlYWxseSB0aXJlZCBhdCB0aGlzIHBvaW50LiBUaGVyZSB3YXMsIHRoZSBudXJzZSB0aGF0IEkgaGFkIHdhcyBwcmV0dHkgbmV3LiBTaGUgaGFkIGJlZW4gdGhlcmUgZm9yIEkgdGhpbmsgNiBtb250aHMgYW5kIHRoZW4gc2hlIHdhcyBhbHNvIHRyeWluZyB0byBqdWdnbGUgdGhlIHN0dWRlbnQgbnVyc2UuIFNoZSBkaWRu4oCZdCBoYXZlIGEgbG90IG9mIGtub3dsZWRnZSBvZiBwb3NpdGlvbmluZy4gSSB0aG91Z2h0IGdvaW5nIGludG8gaXQgdGhhdCBhbGwgbnVyc2VzIHdlcmUgdHJhaW5lZCBpbiBTcGlubmluZyBCYWJpZXMgYW5kIGFsbCBudXJzZXMgaGFkIHRoZSBrbm93bGVkZ2Ugb2YgYmFieSBwb3NpdGlvbmluZyBhbmQgdGhpbmdzIGxpa2UgdGhhdCwgYnV0IEkgd2FzIHdyb25nLsKgTWVhZ2FuOiBZZWFoLCB1bmZvcnR1bmF0ZWx5LCB0aGV5IGFyZSBub3QgYWxsLiBJIGRvbuKAmXQgdGhpbmsgYSBsb3Qgb2YgdGhlbSBoYXZlIGl0IGFjdHVhbGx5LiBNb3N0IG9mIHRoZW0gZG9u4oCZdC7CoEhlaWRpOiBZZWFoLiBJIHB1c2hlZCBtb3N0bHkgb24gbXkgYmFjayBhbmQgd2hlbiB0aGUgT0IgY2FtZSBpbiBhcm91bmQgMTE6MDAsIHNoZSBub3RpY2VkIG15IHB1c2hpbmcgd2FzIG5vdCBlZmZlY3RpdmUgYXQgMTE6MDAgUE0uwqBNZWFnYW46IFNvIHR3byBob3VycyBpbi7CoEhlaWRpOiBZZXMuIE15IHBvc2l0aW9uIG5lZWRlZCB0byBiZSBjaGFuZ2VkLiBTaGUgZ290IG1lIHVwIG9uIHRoZSBzcXVhdCBiYXIgYW5kIHRoZW4gc2hlIGxlZnQgYWdhaW4sIGJ1dCBzaGUgc2hvd2VkIG1lIGhvdyB0byBwdXNoIGFuZCBldmVyeXRoaW5nIGluIHRoZSBtZWFudGltZS4gV2hlbiBzaGUgY2FtZSBiYWNrIGluLCBzaGUgZXhwbGFpbmVkIHRvIG1lIHRoYXQgSSB3b3VsZCBwcm9iYWJseSBuZWVkIGEgQy1zZWN0aW9uIHNvb24uIEkgZG9u4oCZdCBleGFjdGx5IHJlbWVtYmVyIHRoYXQgc2VxdWVuY2Ugb2YgZXZlbnRzIGJlY2F1c2UgaXQgaXMgc28gaW50ZW5zZS4gSSBmZWx0IHJlYWxseSBkZWZlYXRlZC4gSSB3YXMgbGlrZSwg4oCcSSBqdXN0IHN0YXJ0ZWQuIFdoYXQgZG8geW91IG1lYW4gSSB3aWxsIHByb2JhYmx5IG5lZWQgYSBDLXNlY3Rpb24/4oCdIE1lYWdhbjogU28geW91IHdlcmUgc3RpbGwgd2FudGluZyB0byBrZWVwIGdvaW5nP0hlaWRpOiBPaCB5ZWFoLiBPaCB5ZWFoLiBTaGUgYWxzbyBleHBsYWluZWQgdGhhdCBtZWNvbml1bSBzdGFydGVkIHRvIHNob3cgaW4gdGhlIGFtbmlvdGljIGZsdWlkLiBUaGUgT0IgZXhwbGFpbmVkIHRvIG1lIHRoYXQgdGhlIGJhYnkgd2FzIHByb2JhYmx5IGluIGRpc3RyZXNzIGJlY2F1c2Ugb2YgdGhhdC4gVGhhdCB3YXMgYWxsIHRoYXQgd2FzIHNhaWQuwqBIZWlkaTogSSBzcGlrZWQgYSBmZXZlci4gVGhleSBnYXZlIG1lIFR5bGVub2wgYW5kIHRoZW4gdGhlIGJhYnnigJlzIGhlYXJ0IHJhdGUgYmVnYW4gdG8gc2xvdyBhIGxpdHRsZSBiaXQsIGp1c3QgZm9yIGEgbGl0dGxlIGJpdC4gVGhlIE9CIGluc2VydGVkIGEgbW9uaXRvciBvbiB0aGUgdG9wIG9mIGhlciBoZWFkLiBBdCB0aGlzIHBvaW50LCBJIGZlbHQgbGlrZSBJIHdhcyBwdXNoaW5nIGZvciBteSBsaWZlLiBJIHdhcyBsaWtlLCDigJxPaCBteSBnb3NoLiBJIG5lZWQgdG8gZ2V0IHRoaXMgYmFieSBvdXQuIEhvdyBkbyBJIGRvIHRoaXM/4oCdIEJ1dCBJIHN0aWxsIGZlbHQgbGlrZSwg4oCcSSBjYW4gZG8gdGhpcy4gSSBjYW4gZG8gdGhpcy4gSSBrbm93IEkgY2FuIGRvIHRoaXMu4oCdwqBNZWFnYW46IFllYWguwqBIZWlkaTogQnV0IHRoZXJlIHdlcmUgZGVmaW5pdGVseSBxdWVzdGlvbnMgYXQgdGhpcyBwb2ludC7CoDI0OjI5IEFycmVzdCBvZiBkZXNjZW50IGFuZCBvcHRpbmcgZm9yIGEgQy1zZWN0aW9uSGVpZGk6IFllYWgsIHNvIHRoZW4gYXJvdW5kIDI6MzAgaW4gdGhlIG1vcm5pbmcsIEkgd2FzIHRvbGQgYnkgdGhlIE9CIHRvIGdldCBvbiBhbGwgZm91cnMgYW5kIHRyeSBvbmUgbGFzdCBwb3NpdGlvbiBhbmQgSSBjb3VsZCBvcHQgZm9yIGEgQy1zZWN0aW9uIGF0IHRoYXQgcG9pbnQgb3IgSSBjb3VsZCBwdXNoIHVudGlsIHRoZSBPQiBjYW1lIGJhY2sgaW4uIEkgd2FzIGxpa2UsIOKAnFlvdSBrbm93IHdoYXQ/IEnigJltIGdvaW5nIHRvIGdpdmUgaXQgYWxsIEkgaGF2ZS4gSeKAmW0gZ29pbmcgdG8gd29yayBzbyBoYXJkIGFuZCB0aGUgYmFieSBpcyBnb2luZyB0byBjb21lIG91dCBpbiB0aGUgbmV4dCA0NSBtaW51dGVzLiBTaGXigJlzIGdvdCB0by7igJ3CoFNvIEkgZGlkLiBIb25lc3RseSwgSSB3YXMgc28gZ3JhdGVmdWwgdGhhdCBJIGhhZCB0aGF0IGxhc3QgNDUgbWludXRlcy4gSSBmZWVsIGxpa2UgaWYgSSBkaWRu4oCZdCwgaXQgd291bGQgaGF2ZSBiZWVuIHN0b2xlbiBmcm9tIG1lLiBJIGZlZWwgSSB3YXMgZGVmZWF0ZWQgd2hlbiBzaGUgY2FtZSBiYWNrIGluIGJlY2F1c2Ugc2hlIHdhcyBzdGlsbCBub3Qgb3V0IGFuZCBJIHdhcyBleGhhdXN0ZWQsIGJ1dCBJIHdhcyByZWFkeS4gVGhlIGJhYnkgd2FzIG5vdCBnb2luZyB0byBjb21lIG91dCBhbnkgb3RoZXIgd2F5IGF0IHRoaXMgcG9pbnQgZm9yIHdoYXRldmVyIHJlYXNvbi4gVGhhdCB3YXMgZ29pbmcgdG8gYmUgZGlzc2VjdGVkIG1vbnRocyBsYXRlciwgeWVhcnMgbGF0ZXIgYnkgbWUsIGJ1dCBpbiB0aGUgbW9tZW50LCB5ZWFoLiBTaGUgd2FzIGF0IHN0YXRpb24gMC4gSSB3YXMgdG9sZCBzaGUgd2FzbuKAmXQgZmFyIGVub3VnaCBkb3duIHRvIGRvIGFuIGFzc2lzdGVkIGRlbGl2ZXJ5LCBzbyB0aGV5IHdoZWVsZWQgbWUgaW50byB0aGUgT1IgZm9yIHRoZSBDLXNlY3Rpb24uwqBJIHJlcXVlc3RlZCB0aGF0IHRoZSBiYWJ5IGhhdmUgc2tpbi10by1za2luIGFzIHdlbGwgYXMgZGVsYXllZCBjb3JkIGNsYW1waW5nLiBVbmZvcnR1bmF0ZWx5LCBub25lIG9mIHRoaXMgaGFwcGVuZWQgYW5kIEkgZ3Vlc3MgSSBzaG91bGQgYWxzbyBub3RlIHRoYXQgb25jZSB0aGV5IHB1dCB0aGUgbW9uaXRvciBvbiBoZXIgaGVhZCwgc2hlIGRpZCBncmVhdC4gU2hlIHN0aWxsIHdhcyBub3QgaW4gZGlzdHJlc3MuIEkgd2FzIGRvaW5nIGdyZWF0IHRvby4gVGhlIEMtc2VjdGlvbiB3YXMganVzdCByZWFsbHkgZm9yIGFycmVzdCBvZiBkZXNjZW50LiBUaGV5IGp1c3QgdGhvdWdodCBpdCB3YXMgdGFraW5nIHRvbyBsb25nIGJlY2F1c2UgSSBoYWQgYmVlbiBwdXNoaW5nIGZvciBhIGxpdHRsZSBvdmVyIDUgaG91cnMgYXQgdGhhdCBwb2ludC7CoE1lYWdhbjogWWVhaC7CoEhlaWRpOiBZZWFoLiBTaGUgd2FzIGJvcm4gdmlhIEMtc2VjdGlvbiBhdCAzOjIwIGluIHRoZSBtb3JuaW5nLiBTaGUgd2VpZ2hlZCA3IHBvdW5kcywgMSBvdW5jZSBhbmQgc2hlIHdhcyBpbiB0aGUgT1AgcG9zaXRpb24uwqBNZWFnYW46IEkgd2FzIGp1c3QgZ29pbmcgdG8gc2F5LCB3YXMgdGhlcmUgYSBwb3NpdGlvbmFsIGlzc3VlIGhlcmU/IEkgYWx3YXlzIHdvbmRlciB3aGVuIHRoZXJl4oCZcyBwYXR0ZXJucyBsaWtlIHlvdXJzIHdoZXJlIEnigJltIGxpa2UsIOKAnFRoYXQgc291bmRzIGxpa2UgYSBwb3NpdGlvbmFsIHRoaW5nLuKAnSBPa2F5LCBzbyBPUC4gT2NjaXB1dCBwb3N0ZXJpb3IgZm9yIGFueW9uZSB3aG8gaXMgbGlzdGVuaW5nIG9yIHN1bm55LXNpZGUgdXAuIEJhYnkganVzdCBuZWVkZWQgcm90YXRpb24uwqBIZWlkaTogWWVhaC4gWWVhaC4gWWVhaC4gVGhhdCB3YXMgdGhhdC7CoE1lYWdhbjogWWVhaC4gU28gdGhlbiBkaWQgeW91IGVuZCB1cCB3aGVuIHlvdSBnb3QgcHJlZ25hbnQsIGRpZCB5b3UgZW5kIHVwIHN0YXlpbmcgd2l0aCB0aGlzIHByb3ZpZGVyPyBIb3cgZGlkIHRoYXQgam91cm5leSBiZWdpbj/CoDI3OjA2IFJlc2VhcmNoaW5nIHByb3ZpZGVycyBiZWZvcmUgc2Vjb25kIHByZWduYW5jeUhlaWRpOiBJIHdlbnQgYmFja+KAkyBsZXTigJlzIHNlZS4gSeKAmW0gdHJ5aW5nIHRvIHRoaW5rLiBJIHdlbnQgYmFjayBmb3Igcm91dGluZSBjYXJlIGFsbW9zdCBhIHllYXIgbGF0ZXIuIEkgaGFkIGNhcmUgaW4gYmV0d2VlbiwgYnV0IEkgaGFkIHdhbnRlZCB0byBzZWUgdGhhdCBwcm92aWRlciBqdXN0IHRvIGhhdmUgY2xvc3VyZS4gSSBhc2tlZCBoZXIuIEF0IHRoZSB0aW1lLCBJIHdhc27igJl0IHJlYWxseSBzdXJlIHRoYXQgSSB3YW50ZWQgYW5vdGhlciBjaGlsZC4gTXkgaHVzYmFuZCBhbmQgSSB3ZXJlIGp1c3QgcmVhbGx5IHRoaW5raW5nLCDigJxJcyB0aGF0IHdoYXQgcmVjb3ZlcnkgaXMgYWx3YXlzIGxpa2U/4oCdIEFmdGVyIHRoZSBDLXNlY3Rpb24sIGl0IHdhcyByZWFsbHkgaGFyZC7CoEkgYXNrZWQgaGVyLCDigJxJZiBJIHdlcmUgdG8gaGF2ZSBhbm90aGVyIGNoaWxkLCB3aGF0IHdvdWxkIGJlIG15IG9kZHMgb2YgZGVsaXZlcmluZyB2YWdpbmFsbHk/IENvdWxkIEkgaGF2ZSBhbm90aGVyIGNoaWxkIHRoYXQgd2F5IGluc3RlYWQgb2YgdGhlIEMtc2VjdGlvbj/igJ0gU2hlIHNhaWQsIOKAnFlvdSBwcm9iYWJseSB3b3VsZCBlbmQgdXAgd2l0aCBhbm90aGVyIEMtc2VjdGlvbiBpZiB5b3UgZXZlbiB0cmllZCBzbyB5b3UgcHJvYmFibHkgaGF2ZSBhYm91dCBhIDQwJSBjaGFuY2Uu4oCdIEl0IHdhcyBub3QgYmFzZWQgb24gYW55dGhpbmcuwqBNZWFnYW46IEhtbS4gU28gc2hlIGRpZG7igJl0IGV2ZW4gZG8gdGhlIGNhbGN1bGF0b3IsIGp1c3QgZ2F2ZSB5b3UgYSBwZXJjZW50YWdlLsKgSGVpZGk6IE5vLiBKdXN0IGdhdmUgbWUgYSBwZXJjZW50YWdlLsKgTWVhZ2FuOiBPaCBkZWFyLCBva2F5LsKgSGVpZGk6IFNvIGF0IHRoZSBlbmQgb2YgdGhhdCBhcHBvaW50bWVudCwgYWdhaW4sIEkgc3RpbGwgaGFkIG5vdCByZWFsbHkgZWR1Y2F0ZWQgbXlzZWxmIGFuZCBrbmV3IHRoYXQgdGhlcmUgd2VyZSBhbWF6aW5nIHJlc291cmNlcyBvdXQgdGhlcmUsIHNvIEkganVzdCBzYWlkLCDigJxPa2F5LiBJZiBJIGhhdmUgYW5vdGhlciBjaGlsZCwgSeKAmWxsIGhhdmUgdG8gaGF2ZSBhbm90aGVyIEMtc2VjdGlvbi7igJ0gSSB3ZW50IGhvbWUgYW5kIHRvbGQgbXkgaHVzYmFuZC4gSSBzYWlkLCDigJxJZiB3ZSBoYXZlIGFub3RoZXIgY2hpbGQsIHdl4oCZcmUgZ29pbmcgdG8gaGF2ZSB0byBoYXZlIGEgQy1zZWN0aW9uLuKAnSBXZSB3ZXJlIGJvdGggbGlrZSwg4oCcT2theSwgbWF5YmUgd2Ugd29u4oCZdCBoYXZlIGFub3RoZXIgY2hpbGQu4oCdwqBZZWFoLCBzbyB0aGVuIGFub3RoZXIgeWVhciBwYXNzZWQuIFdlIHdlcmUgYmVnaW5uaW5nIHRvIGdldCByZWFkeSBhbmQgc2xvd2x5IHN0YXJ0ZWQgdG8gcmVzZWFyY2ggb3RoZXIgcHJvdmlkZXJzIGp1c3QgZm9yIHJvdXRpbmUgZ3luZWNvbG9naWNhbCBjYXJlLsKgV2UgZW5kZWQgdXAgZmluZGluZyBhIGhvc3BpdGFsIHRoYXQgd2FzIGp1c3QgYWJvdXQgMjUgbWludXRlcyBhd2F5IGp1c3QgdGhpbmtpbmcsIOKAnFdlbGwsIHdoYXQgaWY/4oCdIEkgaGFkIGhlYXJkIHRoaXMgaG9zcGl0YWwgd2FzIHdlbGwta25vd24gZm9yIFZCQUNzIGFuZCBJIGhhZCBhbHNvIHN0YXJ0ZWQgc2VlaW5nIGEgcGVsdmljIGZsb29yIHRoZXJhcGlzdCBwcmlvciB0byBnb2luZyB0byB0aGlzIGhvc3BpdGFsIGZvciBjYXJlIHdobyB3YXMgd29ya2luZyBhdCB0aGlzIGhvc3BpdGFsLiBJdCB3YXMga2luZCBvZiBvbiBteSByYWRhci7CoEhlaWRpOiBGcm9tIHRoZXJlLCBJIG1ldCB0aGUgT0IuIEkgbWV0IHRoZSBPQiBhbmQgdGhlbiBJIHdhcyBqdXN0IHJlYWxseSBzaG9ja2VkIGF0IGhvdyBzdXBwb3J0aXZlIHNoZSB3YXMuIEluIHRoZSBwYXN0LCB5b3UganVzdCBnbyBpbnRvIHRoZSBPQiBvciBneW5lY29sb2dpc3QgYW5kIHRoZXkgd2lsbCBwdXQgeW91IGluIGEgZ293biBhbmQgdGhleSBkbyB3aGF0ZXZlciB0aGV5IG5lZWQgdG8gZG8sIGEgcGFwIHNtZWFyIG9yIHdoYXRldmVyLiBCdXQgdGhpcyBvbmUsIHRoZSBudXJzZSBoYWQgc2FpZCwg4oCcRG9u4oCZdCBnZXQgdW5kcmVzc2VkLiBUaGV5IHdhbnQgdG8gbWVldCB5b3UuIFRoZXkgd2FudCB0byB0YWxrIHRvIHlvdSBmaXJzdC7igJ0gTWVhZ2FuOiBJIGxvdmUgdGhhdCBzbyBtdWNoLiBJIGxvdmUgdGhhdC4gVGhhdOKAmXMgYXdlc29tZS7CoEhlaWRpOiBJdCB3YXMgc28gZGlmZmVyZW50LiBJdCB3YXMgaW4gYSBob3NwaXRhbCwgYnV0IGl0IGRpZG7igJl0IGZlZWwgbGlrZSBhIG1lZGljYWwgb2ZmaWNlLiBUaGUgcm9vbXMgd2VyZSBwYWludGVkIGJsdWVzIGFuZCBncmVlbnMuIFlvdSBjb3VsZCB0ZWxsIHRoZXJlIHdhcyBhIGxvdCBvZiBlZmZvcnQgYmVpbmcgbWFkZSB0byBtYWtlIGl0IGZlZWwgbGlrZSBob21lLiBJIGJlZ2FuIG15IGpvdXJuZXkuIEkgaGFkIGp1c3QgbWV0IHdpdGggaGVyLiBUaGlzIE9CIGhhZCB0YWxrZWQgdG8gbWUgYWJvdXQgYmlydGggc3RvcnkgcHJvY2Vzc2luZy4gSSBoYWQgbm8gaWRlYSB3aGF0IGFueSBvZiB0aGlzIHdhcy4gSSBoYWQgbm8gaWRlYSB0aGF0IEkgZXZlbiBoYWQgdHJhdW1hIGZyb20gbXkgbGFzdCBwcmVnbmFuY3kgYXQgdGhpcyBwb2ludCB1bnRpbCBJIGhhZCBqdXN0IG1ldCB3aXRoIGhlciBhbmQgd2FzIHRhbGtpbmcgd2l0aCBoZXIuIFNoZSBzYWlkLCDigJxUaGVyZSBpcyBubyBwcmVzc3VyZSBpZiB5b3UgZG9u4oCZdCB3YW50IHRvIGhhdmUgYW5vdGhlciBjaGlsZC7igJ0gSSB3YXMganVzdCB0aGVyZSB0byBtZWV0IHdpdGggaGVyIGFuZCBoYXZlIGEgY2hlY2stdXAuwqBJIHRoaW5rIEkgd2FudCB0byBzYXkgYSBjb3VwbGUgb2YgbW9udGhzIHBhc3NlZCBhbmQgYWN0dWFsbHksIHRoYXQgbmlnaHQsIEkgd2VudCBob21lIHRvIHNlZSBteSBodXNiYW5kLiBJIHdhcyBsaWtlLCDigJxZb3Uga25vdyBpZiB3ZSBkbyBoYXZlIGFub3RoZXIgY2hpbGQsIGl04oCZcyBnb2luZyB0byBiZSBoZXJlLuKAnSBZZWFoLCBzbyBhIGNvdXBsZSBvZiBtb250aHMgd2VudCBieSBhbmQgd2UgZGlkIGRlY2lkZSB0byBoYXZlIGFub3RoZXIgY2hpbGQuIEFnYWluLCB0aGUgYmFieSB3YXMgY29uY2VpdmVkIHJpZ2h0IGF3YXkuIE5vIGNvbXBsaWNhdGlvbnMuIFRoaXMgdGltZSwgd2Ugc3RhcnRlZCB3b3JraW5nIHdpdGggYSBkb3VsYS4gSSBiZWdhbiBiaXJ0aCBzdG9yeSBtZWRpY2luZSBhdCB0aGUgc2FtZSB0aW1lLiBJIGRpZCB0aGF0IGZvciBhIGNvdXBsZSBvZiBtb250aHMgaW4gYWRkaXRpb24gdG8gbXkgdGhlcmFwaXN0IHRvIHByb2Nlc3MgdGhlIGJpcnRoIHRyYXVtYSBhbmQganVzdCBldmVyeXRoaW5nLsKgSSB3YXMgdGVzdGVkIGZvciBnZXN0YXRpb25hbCBkaWFiZXRlcyBlYXJseSBkdXJpbmcgdGhpcyBwcmVnbmFuY3kuIEkgc3RhcnRlZCBpbnN1bGluIGF0IDExIHdlZWtzIGFuZCBJIHdhcyBqdXN0IGtpbmQgb2YgcmVhZHkgdGhpcyB0aW1lLiBJdCB3YXNu4oCZdCBhcyBzY2FyeSBob25lc3RseSB0aGUgc2Vjb25kIHRpbWUuIEl04oCZcyBhIGxvdCBvZiB3b3JrLiBJIHdvdWxkIHNheSB0aGF0IGl0IHdhcyBhbm5veWluZywgYnV0IGl0IHdhc27igJl0IHNjYXJ5LsKgTWVhZ2FuOiBXZWxsLCBhbmQgeW914oCZcmUgbGlrZSwg4oCcSeKAmXZlIGRvbmUgdGhpcyBiZWZvcmUuIEkgZGlkIGEgcmVhbGx5IGdvb2Qgam9iIGxhc3QgdGltZS4gSSBsZWFybmVkIGEgbG90LOKAnSBiZWNhdXNlIHlvdSBkaWQgZ28gcHJldHR5IGRlZXAgaW50byBpdCwgc28geW914oCZcmUgbGlrZSwg4oCcSSBjYW4gZG8gdGhpcy4gSeKAmXZlIGdvdCB0aGlzLuKAnSBEdWgsIHRoaXMga2luZCBvZiBzdWNrcywgYnV0IHlvdSBrbm93LiBZb3UgZ290IGl0LiBObyBwcm9ibGVtLsKgSGVpZGk6IFJpZ2h0LiBNeSBmaXJzdCBiYWJ5IHdhcyBib3JuIGF0IGEgcmVhbGx5IGdyZWF0IHdlaWdodCBhbmQgdGhlcmUgd2VyZSBubyBjb21wbGljYXRpb25zIGF0IGFsbC7CoE1lYWdhbjogR29vZC4gRGlkIHRoZXkgYWxyZWFkeSBzdGFydCB0YWxraW5nIGFib3V0IGluZHVjdGlvbiBhbmQgdGhpbmdzIGxpa2UgdGhhdCBmcm9tIHRoZSBnZXQtZ28/IERpZCB0aGV5IHRhbGsgYWJvdXQgZXh0cmEgdGVzdGluZz8gQmVjYXVzZSBhdCB0aGlzIHBvaW50LCB5b3UgZm9yIHN1cmUgaGF2ZSBpdC4gRWFybGllciBvciBsYXRlciwgZGlkIHRoZXkgdGFsayBhYm91dCB0aGF0IHN0dWZmP8KgSGVpZGk6IFdpdGggdGhpcyBwcm92aWRlciwgSSB3ZW50IGluIGFuZCB0aGV5IHRvbGQgbWUgSSB3YXMgb2xkIGxhc3QgdGltZSwgdGhlIG90aGVyIHByb3ZpZGVyLiBJ4oCZbSByZWFsbHkgb2xkLiBUaGV5IGxvb2tlZCBhdCBtZSBhbmQgd2VyZSBsaWtlLCDigJxObywgeW914oCZcmUgbm90LuKAncKgTWVhZ2FuOiBObywgeW914oCZcmUgbm90LsKgSGVpZGk6IFllYWguIFRoZXnigJlyZSBsaWtlLCDigJxZb3XigJlyZSAzNy4gVGhhdOKAmXMgbm90IG9sZC7igJ3CoE1lYWdhbjogWWVhaC7CoEhlaWRpOiBJ4oCZbSBsaWtlLCDigJxXaGF0P+KAncKgTWVhZ2FuOiBUaGUgb3RoZXIgY2xpbmljLCB3b3VsZCB0aGV5IGhhdmUgd2FudGVkIHRvIGRvIE5TVHMgYmVjYXVzZSBvZiBhZ2UgYW5kIGdlc3RhdGlvbmFsIGRpYWJldGVzP8KgSGVpZGk6IEkgZG9u4oCZdCBrbm93LsKgTWVhZ2FuOiBPa2F5LiBCdXQgdGhlc2UgZ3V5cyB3ZXJlIGxpa2UsIOKAnE5vLCB3ZeKAmXJlIGdvb2QuIFdlIGRvbuKAmXQgbmVlZCB0byBkbyBhbnkgZXh0cmEgdGVzdGluZyBiZWNhdXNlIG9mIGFuIGVhcmx5IGRpYWdub3NpcyBvZiBnZXN0YXRpb25hbCBkaWFiZXRlcyBhbmQgbm93IHlvdeKAmXJlIDM3LuKAnSBIZWlkaTogWWVhaC4gVGhleSBzYWlkIHdoYXQgdGhleSBkbyBjb25zaWRlciBvbGRlciBidXQgaXTigJlzIHN0aWxsIG5vdCBpbXBvc3NpYmxlIHdhcywgSSBiZWxpZXZlLCBvdmVyIDQwLsKgTWVhZ2FuOiBTbyB5b3UgZGlkbuKAmXQgZXZlbiBoYXZlIHRoYXQgcHJlc3N1cmUgZnJvbSB0aGUgZ2V0LWdvP8KgSGVpZGk6IE5vLCBuby7CoE1lYWdhbjogV2hhdCBhbiBhbWF6aW5nIHdheSB0byBzdGFydC7CoEhlaWRpOiBZZWFoLiBJdCB3YXMgYW1hemluZy4gVGhleSBhbHNvIHdlcmVu4oCZdCBjb25jZXJuZWQgd2l0aCB0aGUgZmFjdCB0aGF0IEkgd2FzIG9uIGluc3VsaW4uIFdlIGRpZCB0YWxrIGFib3V0IE5TVHMgYmVjYXVzZSBJIGFza2VkIGJlY2F1c2UgSSBrbmV3IGl0IHdvdWxkIGNvbWUgdXAgYW5kIHRoZXkgaGFkIHNhaWQsIOKAnFlvdSBjYW4gaGF2ZSBvbmNlIGEgd2VlayBhcyBsb25nIGFzIHlvdXIgc3VnYXJzIGFyZSBpbiBjb250cm9sLCB3ZSBhcmUgY29tZm9ydGFibGUgd2l0aCB0aGF0LuKAncKgSSBmZWx0IHNvIHJlbGlldmVkLiBZZWFoLiBJdCB3YXMgc3VjaCBhIGhvbGlzdGljLCByZWxheGVkIGFwcHJvYWNoLiBUaGV5IHRydXN0ZWQgbWUgdG8gbWFuYWdlIG15IGJvZHkgYW5kIHRvIGtub3cgd2hhdCBJIG5lZWRlZCBhbmQgdGhhdCB3YXMgc28gZW1wb3dlcmluZywgdGhlIHdob2xlIGpvdXJuZXkgd2hlcmVhcyBiZWZvcmUsIEkgZmVsdCBsaWtlIEkgaGFkIGEgcmVhbGx5IHNob3J0IGxlYXNoIGFuZCB0aGV5IHdlcmUgYmFzaWNhbGx5IG1hbmFnaW5nIGV2ZXJ5dGhpbmcgZm9yIG1lIGFzIGlmIHRoZXkga25ldyB3aGF0IHdhcyByaWdodCBmb3IgbWUgYW5kIG15IGJvZHkuwqBNZWFnYW46IEkgd2FzIGp1c3QgbG9va2luZy4gSeKAmW0ganVzdCBsb29raW5nIGJlY2F1c2UgSeKAmW0gc3VyZSBwZW9wbGUgYXJlIGxpa2Ugd2hlcmUgaXMgdGhpcyBwZXJzb24/IFdoZXJlIGlzIHRoaXMgcHJvdmlkZXI/IFdhcyBpdCBhdCB0aGUgQ01DPyBJcyB0aGF0IHdoZXJlIGl0IHdhcz/CoEhlaWRpOiBZZXMuIFllYWgsIENhdGhvbGljIE1lZGljYWwgQ2VudGVyIGluIE1hbmNoZXN0ZXIuwqBNZWFnYW46IEF3ZXNvbWUuIFRoaXMgaXMgZ29vZC4gVGhlc2UgYXJlIGdvb2QgdmliZXMgaGVyZSB3aXRoIHRoaXMgcHJvdmlkZXIuwqBIZWlkaTogVG90YWxseSwgeWVhaC4gT2ggbXkgZ29zaCwgeWVhaC7CoDM4OjA0IERpc2N1c3Npb25zIGFyb3VuZCBpbmR1Y3Rpb25IZWlkaTogU28gbGV04oCZcyBzZWUuIE9uY2UgSeKAmW0gZGlhZ25vc2VkIHdpdGggZ2VzdGF0aW9uYWwgZGlhYmV0ZXMsIEkgaGF2ZSBtYXRlcm5hbC1mZXRhbCBtZWRpY2luZSB1bHRyYXNvdW5kcywgYnV0IHRoYXQgYWxzbyB3YXMgdHJ1ZSBiZWNhdXNlIG15IGZpcnN0IGRhdWdodGVyIHdhcyBib3JuIG1pc3NpbmcgYSBraWRuZXkuIEFnYWluLCBzaGXigJlzIHRvdGFsbHkgaGVhbHRoeSBhbmQgdG90YWxseSBncmVhdCwgYnV0IHRoZXkgd2FudGVkIHRvIG1ha2Ugc3VyZSB0aGF0IG5vdGhpbmcgd2VpcmQgd2FzIGdvaW5nIG9uLCB5ZWFoLsKgVGhhdCB3YXMgYXQgYWJvdXQgMzIgd2Vla3MuIFRoZXkgd2VyZSBhbHNvIGNoZWNraW5nIHRoZSBiYWJ54oCZcyBncm93dGggYW5kIGJhYnnigJlzIHNpemUgYXQgdGhhdCBwb2ludC4gQmFieSB3YXMgbWVhc3VyaW5nIHZlcnkgYXZlcmFnZS4gU2hlIGhhZCB0d28ga2lkbmV5cy4gTGl0dGxlIHRoaW5ncyB0aGF0IHdlIHRha2UgZm9yIGdyYW50ZWQsIHdlIHdlcmUgc28gZ3JhdGVmdWwgZm9yLsKgWWVhaC4gVGhhdCB3ZW50IHJlYWxseSB3ZWxsLiBUaGUgcHJlZ25hbmN5IHdhcyBqdXN0IHByb2dyZXNzaW5nIHJlYWxseSB3ZWxsLiBJbiBteSB0aGlyZCB0cmltZXN0ZXIsIEkgd2FzIHN0cnVnZ2xpbmcgd2l0aCBhbGwgb2YgdGhlIGV4dHJhIGFwcG9pbnRtZW50cyBhbmQgdGhlIHRyYXVtYSB0aGF0IEkgd2FzIHByb2Nlc3NpbmcgdGhvdWdoIGZyb20gbXkgbGFzdCBiaXJ0aCBiZWNhdXNlIEkga25ldyBhbmQgbXkgZ3V0IHRvbGQgbWUsIOKAnFlvdSBuZWVkIHRvIHdvcmsgdGhyb3VnaCB0aGlzIGJlY2F1c2UgaWYgeW91IGRvbuKAmXQsIHlvdSBoYXZlIHRvIGJlIHJlYWxseSBzdHJvbmcgdG8gaGF2ZSBhIFZCQUMuIFlvdSBoYXZlIHRvIHJlYWxseSB3b3JrIHRocm91Z2ggYSBsb3Qgb2YgbWVudGFsIGJsb2NrcyBhbmQgdGhpbmdzIHRoYXQgY29tZSB5b3VyIHdheS7igJ3CoFNvIEkganVzdCBzdGFydGVkIGdldHRpbmcgcmVhbGx5IHN0cmVzc2VkIGJldHdlZW4gd29yayBhbmQgdGhlIGFwcG9pbnRtZW50cyB3aWxsIGFsbCB0aGUgZGlmZmVyZW50IHRoZXJhcGllcyBzbyBJIGRlY2lkZWQgdG8gdGFrZSBhIGNvdXBsZSBvZiBtb250aHMgYXdheSBmcm9tIHdvcmsgcHJpb3IgdG8gdGhlIGRlbGl2ZXJ5IGluIG9yZGVyIHRvIHByb2Nlc3MgZXZlcnl0aGluZyBhbmQgcHJlcGFyZSBteXNlbGYuIFRoYXQgd2FzIGEgcmVhbGx5IGhhcmQgZGVjaXNpb24gYnV0IGl0IHdhcyBwcm9iYWJseSBvbmUgb2YgdGhlIGJlc3QgZGVjaXNpb25zIHRoYXQgSSBjb3VsZCBtYWtlLsKgTWVhZ2FuOiBHb29kIGZvciB5b3UuwqBIZWlkaTogWWVhaC4gQXQgYXJvdW5kIDM2IHdlZWtzLCBpdCB3YXMgc3VnZ2VzdGVkIHRvIG1lIGJ5IG15IHByb3ZpZGVyIHRoYXQgSSBjb3VsZCBjb25zaWRlciBhIDM5LXdlZWsgaW5kdWN0aW9uLCBidXQgaXQgd2FzIGRlbGl2ZXJlZCBzbyBkaWZmZXJlbnRseS7CoE1lYWdhbjogR29vZC7CoEhlaWRpOiBSZWFzb25pbmcgYmFzaWNhbGx5IHNheXMgdGhhdCBBQ09HIGhhcyBhIHN1Z2dlc3Rpb24gZm9yIGluc3VsaW4tY29udHJvbGxlZCBnZXN0YXRpb25hbCBkaWFiZXRlcy4gVGhleSBiYXNpY2FsbHkgdG9sZCBtZSB0aGUgZGF0YS4gVGhleSB0b2xkIG1lIHdoeSB0aGV5IGFyZSBzdWdnZXN0aW5nIHRoaXMsIGJ1dCB1bHRpbWF0ZWx5IGl0IGlzIG15IGNob2ljZS4gSXQgd2FzIGEgZGlzY3Vzc2lvbiB0aGF0IEkganVzdCBmb3VuZCB0byBiZSBzbyBpbmNyZWRpYmxlIGFuZCB3ZWlyZCBpbiBhIHJlYWxseSBnb29kIHdheS7CoE1lYWdhbjogV2hpY2ggaW4gbXkgb3BpbmlvbiBpcyBzbyBzYWQgdGhhdCB0aGVzZSB0aGluZ3MgaGFwcGVuIHRoYXQgYXJlIGdvb2QgY29udmVyc2F0aW9ucyBoYXZlIHRvIGZlZWwgd2VpcmQgdG8gdXMgYmVjYXVzZSB0aGF0IHNob3VsZCBqdXN0IGJlIG5vcm1hbCwgYnV0IGl04oCZcyBub3QgYSBsb3Qgb2YgdGhlIHRpbWUsIHJpZ2h0P8KgSGVpZGk6IFllYWguIEkgd2FzIHdvcmtpbmcgd2l0aCBteSBkb3VsYSBhdCB0aGUgdGltZSBhbmQgc2hlIHdhcyBhIHJlYWxseSBiaWcgcHJvcG9uZW50IG9mIGV4cGVjdGFudCBtYW5hZ2VtZW50IGFuZCBsZXR0aW5nIGV2ZXJ5dGhpbmcgaGFwcGVuIG5hdHVyYWxseSBhbmQgaG9uZXN0bHksIHRoYXTigJlzIGFsbCBJIGV2ZXIgd2FudGVkLiBJIHRoaW5rIHRoYXTigJlzIHdoYXQgbW9zdCBwZW9wbGUgd2FudC7CoFNvIEkganVzdCBleHBsYWluZWQsIOKAnEkgYW0gbm90IGludGVyZXN0ZWQgaW4gaW5kdWN0aW9uLiBJIHdhbnQgdG8gZG8gZXhwZWN0YW50IG1hbmFnZW1lbnQgYXMgbG9uZyBhcyBldmVyeXRoaW5nIHByb2dyZXNzZXMgdGhlIHdheSB0aGF0IGl04oCZcyBnb2luZyBhbmQgaXQgZ29lcyB3ZWxsLiBUaGF04oCZcyB3aGF0IEkgd2FudCB0byBkby7igJ0gVGhleSBzYWlkLCDigJxPa2F5LiBXZSBjYW4gZG8gdGhhdC7igJ3CoE1lYWdhbjogSSBsb3ZlIHRoYXQuIFRoYXTigJlzIGdyZWF0LsKgSGVpZGk6IEl0IHdhcyBhbWF6aW5nLiBJdCB3YXMgcmVhbGx5IGVtcG93ZXJpbmcuwqA0MTo0NSBOU1RzIHR3aWNlIGEgd2Vla0hlaWRpOiBTbyBsZXTigJlzIHNlZS4gVGhleSBzdWdnZXN0ZWQgdGhhdCBJIGhhdmUgYSAzNi13ZWVrIHVsdHJhc291bmQgdG8gY2hlY2sgbXkgYmFieeKAmXMgc2l6ZSBhZ2Fpbi4gQWN0dWFsbHksIG5vIHNvcnJ5LiBUaGV5IHN1Z2dlc3RlZCBpdC4gSSB3YXMgYWN0dWFsbHkgYWJsZSB0byBuZWdvdGlhdGUgbXkgd2F5IG91dCBvZiBpdC4gSSBzYWlkLCDigJxZb3Uga25vdywgSSBqdXN0IGhhZCBvbmUgYXQgMzIgd2Vla3MuIElzIGl0IHJlYWxseSBuZWNlc3NhcnkgdG8gaGF2ZSBhbm90aGVyIGluIDQgd2Vla3M/4oCdIEkgdGFsa2VkIHRvIHRoZSBPQiBhbmQgc2hlIHdhcyBsaWtlLCDigJxZb3Uga25vdyB3aGF0PyBOby4gWW91IGRvbuKAmXQgaGF2ZSB0byBkbyB0aGF0LuKAncKgWWVhaC7CoE1lYWdhbjogVGhpbmdzIGFyZSBqdXN0IGdldHRpbmcgYmV0dGVyIGFuZCBiZXR0ZXIuwqBIZWlkaTogT2gsIHNvIGdvb2QuIFllYWguwqBTbyByaWdodCBhcm91bmQgdGhlbiwgdGhlIE5TVHMgYmVnYW4uIEnigJlsbCBqdXN0IHNheSBhbHNvLCBJIHdhbGsgaW50b+KAkyBzbyBOU1RzIHdlcmUgcmVhbGx5IGF3a3dhcmQgZHVyaW5nIG15IGZpcnN0IHByZWduYW5jeS4gSSBzYXQgb24gdGhlIGhvc3BpdGFsIGJlZCBzbyB1bmNvbWZvcnRhYmxlIGFuZCBzaXR0aW5nIHVwIHdpdGggYWxsIG9mIHRoZXNlIHRoaW5ncyBhdHRhY2hlZCB0byBtZS4gQXQgdGhpcyBwcm92aWRlciwgSSBnbyBpbi4gVGhlcmUgaXMgYW4gTlNUIHJvb20gYW5kIGl04oCZcyBwYWludGVkIGJsdWUgYW5kIGl04oCZcyByZWFsbHkgY29tbW9uLiBUaGVyZSBpcyBhIHJlY2xpbmluZyBjaGFpciBhbmQgZm9yIG1lLCBpdCBqdXN0IHJlYWxseSBmZWx0IGxpa2UgdGhleSB3ZXJlIG5vcm1hbGl6aW5nIHRoZSBmYWN0IHRoYXQgTlNUcyBkbyBoYXBwZW4gYW5kIGl04oCZcyBva2F5IGFuZCBpdOKAmXMgbm9ybWFsLiBIZXJl4oCZcyBhIHNwZWNpYWwgc3BhY2UgZm9yIGl0LsKgTWVhZ2FuOiBXZWxsLCBhbmQgYWxtb3N0IGxpa2UgdGhleSBhcmUgc2V0dGluZyB5b3UgdXAgZm9yIHN1Y2Nlc3MgaW4gdGhvc2UgTlNUcyBiZWNhdXNlIGluIE5TVHMsIHdoZW4gd2UgYXJlIHJlYWxseSB1bmNvbWZvcnRhYmxlIGFuZCB0ZW5zZSwgb3ZlcmFsbCwgdGhhdOKAmXMgbm90IGdvaW5nIHRvIGJlIGdvb2QgZm9yIHVzIG9yIG91ciBiYWJpZXMuIFRoYXTigJlzIGdvaW5nIHRvIHBvdGVudGlhbGx5IGdpdmUgdXMgcmVhZGluZ3MgdGhhdCB3ZSBkb27igJl0IHdhbnQgYnV0IHdoZW4gd2UgYXJlIGNvbWZvcnRhYmxlIGFuZCB3ZSBhcmUgZmVlbGluZyB3ZWxjb21lZCBhbmQgd2UgYXJlIGxpa2UsIOKAnFllYWgsIHdl4oCZcmUgbm90IGhhcHB5IHRoYXQgd2UgYXJlIGhlcmUgdGFraW5nIHRoaXMgdGVzdCzigJ0gb3Igc29tZXRpbWVzIHdlIGFyZSwgYnV0IHdoZW4gd2UgYXJlIGNvbWZvcnRhYmxlIGFuZCB3ZSBhcmUgZmVlbGluZyB0aGUgYmVhdXRpZnVsIGNvbG9ycyBhbmQgdGhlIG5pY2UsIHNvZnQgcmVjbGluZXIsIGl04oCZcyBhIHZlcnkgZGlmZmVyZW50IHNpdHVhdGlvbiB0byBzZXQgeW91IHVwIGZvciB2ZXJ5IGRpZmZlcmVudCByZXN1bHRzLsKgSGVpZGk6IFllcy4gQWJzb2x1dGVseS4gWWVhaCwgc28gdGhlbiBteSBqb3VybmV5IGp1c3Qga2VwdCBnb2luZy4gTXkgTlNUcyB3ZXJlIGJlYXV0aWZ1bCBldmVyeSB3ZWVrLiBJdCB3YXMgcmVhbGx5IGludGVyZXN0aW5nIGhvdyB0aGV5IHNldCB0aGVtIHVwIGJlY2F1c2UgdGhleSBoYWQgdGhlIE5TVHMgYWZ0ZXIgdGhlIGRvY3RvcuKAmXMgYXBwb2ludG1lbnRzIGJlY2F1c2UgdGhleSB3ZXJlbuKAmXQgZXhwZWN0aW5nLiBJZiB0aGV5IGNhbiBnZXQgYSBnb29kIHJlYWRpbmcsIEkgdGhpbmsgdGhlIG1pbmltdW0gaXMgMjAgbWludXRlcyB3aGVyZWFzIEkgaGFkIHRoZSBOU1RzIGJlZm9yZSBzbyBpdCB3YXMgbGlrZSB0aGV5IHdlcmUgbG9va2luZyBmb3IgYSBwcm9ibGVtIHRoZW4gSSBoYWQgdGhlIGRvY3RvcuKAmXMgYXBwb2ludG1lbnQgc28gSSBlbmRlZCB1cCBiZWluZyB0aGVyZSBmb3IgMiBob3VycyBkdXJpbmcgbXkgZmlyc3QgcHJlZ25hbmN5LiBCdXQgdGhlc2Ugb25lcywgSSBuZXZlciBzYXQgbW9yZSB0aGFuIDIwIG1pbnV0ZXMuVGhlIG51cnNlcyB1c3VhbGx5IHNhdyB3aGF0IHRoZXkgbmVlZGVkIHdpdGhpbiA1IG1pbnV0ZXMgYW5kIHRoZXkgc2FpZCwg4oCcWW91ciBiYWJ5IGlzIGRvaW5nIGdyZWF0LiBZb3XigJlyZSBvdXQgb2YgaGVyZSBhcyBzb29uIGFzIHRoZSB0aW1lIGlzIHVwLuKAncKgTWVhZ2FuOiBUaGF0IGlzIGFtYXppbmcuIE9oIG15IGdvc2gsIDIgaG91cnMuIFRoYXQgaXMgYSBsb25nIHRpbWUuwqBIZWlkaTogWWVzLiBZZXMuIFRoaXMgcHJlZ25hbmN5IHdhcyByZWFsbHkgb2RkLCBidXQgSeKAmWxsIHRha2UgaXQuIEkgc3RvcHBlZCBuZWVkaW5nIGluc3VsaW4gZHVyaW5nIHRoZSBsYXN0IHR3byB3ZWVrcy4gVXN1YWxseSwgdGhlcmUgaXMgYSBwZWFrIG5lYXIgdGhlIGVuZCBvZiBwcmVnbmFuY3ksIGFuZCB0aGVuIHRoZSBuZWVkIGZvciBpbnN1bGluIGdvZXMgZG93biBpbiB0aGUgbGFzdCB0d28gd2Vla3MgSSB3YW50IHRvIHNheS4gRm9yIG1lLCBpdCBhY3R1YWxseSBqdXN0IGtlcHQgZ29pbmcgZG93biwgZG93biwgZG93biwgYW5kIHRoZW4gYWxsIG9mIGEgc3VkZGVuLCBpdCB3YXMgZ29uZS4gVGhhdCBkaWRu4oCZdCBoYXBwZW4gbGFzdCB0aW1lLsKgVGhleSB3ZXJlIGEgbGl0dGxlIG5lcnZvdXMgYWJvdXQgdGhhdCBiZWNhdXNlIGl0IGRpZG7igJl0IHJlYWxseSBoYXBwZW4uIEkgZXhwbGFpbmVkIHRvIHRoZW0sIOKAnEkgdGhpbmsgaXTigJlzIGhvbmVzdGx5IHByb2JhYmx5IGxhY2sgb2Ygc3RyZXNzLOKAnSBiZWNhdXNlIEkgd2FzbuKAmXQgd29ya2luZyBhdCBteSBqb2IgYXQgdGhlIHRpbWUgYW5kIEkgd2FzIG1vdmluZyBhIGxvdCBtb3JlIHRvbywgc28gd2hvIGtub3dzP8KgTWVhZ2FuOiBSZWFsbHkgaW50ZXJlc3RpbmcuwqBIZWlkaTogSXQgZGlkIG1ha2UgdGhlbSBhIGxpdHRsZSBuZXJ2b3VzIGJlY2F1c2UgdGhleSBzYWlkIHRoZXJlIGlzIHZlcnkgbGltaXRlZCBkYXRhLCBidXQgc29tZXRpbWVzIGl0IGNhbiBpbmRpY2F0ZSBhbiBpc3N1ZSB3aXRoIHRoZSBiYWJ5LsKgTWVhZ2FuOiBPaCwgdGhlIHBsYWNlbnRhLsKgSGVpZGk6IFNvcnJ5LCBJ4oCZbSBuZXJ2b3VzIHNvIEnigJltIGZvcmdldHRpbmcuwqBNZWFnYW46IFRoZXJlIGFyZSB0aW1lcyB3aGVuIGl0IGNhbiBiZSB0aGUgcGxhY2VudGEgYmVpbmcgYWZmZWN0ZWQuIElzIHRoYXQgd2hhdCB0aGV5IHdlcmUgc2F5aW5nP0hlaWRpOiBZZXMsIHRoYW5rIHlvdS4gVGhleSBzYWlkLCDigJxXZSBjb3VsZCBvZmZlciBhbiBpbmR1Y3Rpb24gYXQgdGhpcyBwb2ludCzigJ0gYmVjYXVzZSBJIHdhcyBhdCAzOSB3ZWVrcyB3aGVuIHRoZXkgYnJvdWdodCB0aGF0IHVwLiBJIHNhaWQsIOKAnEkgZG9u4oCZdCB0aGluayBzby4gSSByZWFsbHkgd2FudCB0byBzdGF5IHRoZSBjb3Vyc2UuIEkgd2FudCB0byBkbyBleHBlY3RhbnQgbWFuYWdlbWVudC7igJ0gVGhleSBzYWlkLCDigJxPa2F5LCB3b3VsZCB5b3UgYmUgb3BlbiB0byB0d2ljZS13ZWVrbHkgTlNUcz/igJ0gSSBzYWlkLCDigJxZZXMuIElmIHRoYXQgbGV0cyBtZSBrZWVwIGRvaW5nIHdoYXQgSeKAmW0gZG9pbmcsIHdlIGNhbiBkbyB0aGF0IGFuZCBpdOKAmXMgcHJvYmFibHkgbm90IGEgYmFkIGlkZWEsIGJlY2F1c2UgeW91IG5ldmVyIGtub3cu4oCdIDQ3OjEwIFRlc3RpbmcgZm9yIHByZWVjbGFtcHNpYUhlaWRpOiBJIHdva2UgdXAgb25lIG1vcm5pbmcgYXQgd2VlayA0MCBhbmQgdGhvdWdodCBteSB3YXRlciB3YXMgdHJpY2tsaW5nIG91dC4gSSB0ZXh0ZWQgbXkgZG91bGEgYW5kIHNoZSB3YXMgZ2V0dGluZyBob21lIGZyb20gYW5vdGhlciBiaXJ0aCBhbmQgd2FzIGdvaW5nIHRvIHJlc3QsIHNvIEkgd29ya2VkIHdpdGggbXkgYmFja3VwIGRvdWxhIGZvciB0aGF0IGRheSB3aGljaCB3YXMgYSBsaXR0bGUgc2NhcnkuIEkgZGlkbuKAmXQga25vdyB3aGF0IHdhcyBnb2luZyB0byBoYXBwZW4gZnJvbSB0aGVyZS7CoEFyb3VuZCA2OjAwIFBNIHRoYXQgbmlnaHQsIG15IGh1c2JhbmQgYW5kIEkgYXJyYW5nZWQgZm9yIG15IG1vbSB0byB3YXRjaCBvdXIgZGF1Z2h0ZXIgYmVjYXVzZSB3ZSBuZWVkZWQgdG8gZ2V0IHRvIHRoZSBob3NwaXRhbCB0byBnZXQgdGhlIGFtbmlvdGljIGZsdWlkIGNoZWNrZWQuIFdlIHByb2JhYmx5IHNob3VsZCBoYXZlIGdvbmUgYSBsaXR0bGUgZWFybGllciwgYnV0IHRoZSBiYWNrdXAgZG91bGEgaGFkIHN1Z2dlc3RlZCBpdCBtaWdodCBub3QgYmUgYW1uaW90aWMgZmx1aWQuIEl0IG1pZ2h0IGp1c3QgYmUgZGlzY2hhcmdlLsKgTWVhZ2FuOiBJcyB0aGVyZSBtdWNoIGdvaW5nIG9uIGxhYm9yLXdpc2U/wqBIZWlkaTogTm90IHJlYWxseS4gSXQgd2FzIHByZXR0eSBxdWlldC4gVGhlbiBJIGFjdHVhbGx5IGhhZCBhbiBOU1QgdGhlIGRheSBiZWZvcmUgdGhhdCBhbmQgdGhlcmUgcmVhbGx5IHdhc27igJl0IG11Y2ggZ29pbmcgb24uIEkgZmVsdCBsaXR0bGUgQnJheHRvbiBIaWNrcy10eXBlIHRoaW5ncywgYnV0IG5vdGhpbmcgbXVjaC4gV2UgcGFja2VkIG91ciBiYWdzLCBnb3QgcmVhZHksIGFuZCBnb3QgbXkgbW9tLsKgV2UgYXJyaXZlZCBpbiB0cmlhZ2UuIEkgaGFkIHNsaWdodGx5IGVsZXZhdGVkIGJsb29kIHByZXNzdXJlIHdoaWNoIHdhcyBqdXN0IGEgcm91dGluZSBjaGVjaywgYnV0IHRoYXQgYmFzaWNhbGx5IGxlZCB0byB0aGVtIHRlc3RpbmcgbWUgZm9yIHByZWVjbGFtcHNpYSBhbmQgdGhlbiBhIHVyaW5lIHRlc3QuwqBNZWFnYW46IEhtbSwgYSBzbGlnaHQgaW5jcmVhc2U/IE9oLCBtYW4uwqBIZWlkaTogWWVhaC4gSXQgd2FzIHNsaWdodGx5IGluY3JlYXNlZC4gWW91IGtub3csIGxpa2UgYSBsb3Qgb2YgcGVvcGxlLCBob3NwaXRhbHMgbWFrZSBtZSBuZXJ2b3VzLsKgTWVhZ2FuOiBZZXAuIFllYWguIFRoZXkganVtcGVkIHJpZ2h0IGluIGFuZCBzdGFydGVkIGdvaW5nIHRoZSBtb21lbnQgeW91IGdvdCB0aGVyZS7CoEhlaWRpOiBZZXMuIFllYWguIEl04oCZcyBkaWZmZXJlbnQuIEl04oCZcyBzdGlsbCBpbiB0aGUgaG9zcGl0YWwsIGJ1dCBpdOKAmXMgc2VwYXJhdGUuIExhYm9yIGFuZCBkZWxpdmVyeSBpcyBzZXBhcmF0ZS4gVGhleSBqdXN0IGhhZCBhIHZlcnkgZGlmZmVyZW50IG1pbmRzZXQgYXQgdGhlIG1vbWVudC7CoEkgd2FzIHN1cmUgdGhhdCBJIGRpZG7igJl0IGhhdmUgcHJlZWNsYW1wc2lhLiBUaGV5IGFza2VkIG1lIGFsbCBvZiB0aGUgcXVlc3Rpb25zIGFuZCBJ4oCZbSBsaWtlLCDigJxJIHJlYWxseSBkb27igJl0IHRoaW5rIHRoYXTigJlzIHdoYXQgdGhpcyBpcy7igJ0gVGhleSB3ZXJlIHNheWluZywg4oCcWW914oCZcmUgYWxzbyBwb3N0LWRhdGUgd2l0aCBnZXN0YXRpb25hbCBkaWFiZXRlcy7igJ3CoE1lYWdhbjogUG9zdC1kYXRlIGJ5IG9uZT/CoEhlaWRpOiBZZXMuwqBNZWFnYW46IE9yIGJ5IDQwIHdlZWtzLsKgSGVpZGk6IFllYWguIFllYWgsIHNvIEkgd291bGQgbmVlZCBhbiBpbmR1Y3Rpb24gaWYgSSBnZXQgcHJlZWNsYW1wc2lhIGFuZCBhbGwgb2YgdGhpcy4gV2hvIGxldCB0aGlzIGdpcmwgZ28gdGhpcyBsb25nPyBXaGF0IHRoZSBoZWNrIGtpbmQgb2YgdGhpbmc/IE1lYWdhbjogTm90IGhlbHBpbmcgeW91ciBibG9vZCBwcmVzc3VyZSwgdGhhdOKAmXMgZm9yIHN1cmUuwqBIZWlkaTogSSBkZWZpbml0ZWx5IHN0YXJ0ZWQgZmVlbGluZyBQVFNELiBJIHdhcyBqdXN0IGxpa2UsIOKAnFRoaXMgYWdhaW4/IE9oIG5vLiBJIGZlZWwgbGlrZSBJ4oCZbSBpbiBwcmlzb24u4oCdIFRoYXTigJlzIHRoZSB3YXkgaXQgZmVsdCBsYXN0IHRpbWUuIEkga25ldyBJIG5lZWRlZCB0byBnZXQgb3V0IG9mIHRoZXJlIGZhc3QuIEl0IHdhc27igJl0IGdvb2QuIFRoZSBPQiBjYW1lIGluIGFuZCBsZWN0dXJlZCBtZS4gVGhpcyB3YXMgYSBkaWZmZXJlbnQgT0IuIFNoZSBsZWN0dXJlZCBtZSBhYm91dCBwcmVlY2xhbXBzaWEgYW5kIGhvdyBJIHNob3VsZCByZWFsbHkgc3RheSBpbiB0aGUgaG9zcGl0YWwuIFRoZXkgd2VyZSBnb2luZyB0byBzZW5kIGZvciBibG9vZHdvcmsgZXZlbiBpZiBpdCBjYW1lIGJhY2sgb2theSwgSSBzaG91bGQgc3RheSB0aGUgbmlnaHQuwqBUaGV5IGRyZXcgdGhlIGJsb29kIGFuZCBJ4oCZbSBqdXN0IGJlc2lkZSBteXNlbGYgYXQgdGhpcyBwb2ludC4gSSB3YXMgbGlrZSwg4oCcV2VsbCwgd2hlbiBhcmUgdGhleSBnb2luZyB0byBnZXQgdGhlIHJlc3VsdHMgYmFjaz/igJ0gVGhleSBzYWlkLCDigJxQcm9iYWJseSBhYm91dCBhbiBob3VyIG9yIHNvLuKAnSBZb3Uga25vdyBob3cgYmFja2VkIHVwIHRoZSBsYWIgaXMuIFRoZXkgd2VyZSBsaWtlLCDigJxBcmUgeW91IHJlYWxseSBnb2luZyB0byBkcml2ZSBob21lIGFuZCBjb21lIGJhY2s/4oCdIEkgd2FzIGxpa2UsIOKAnElmIEkgaGF2ZSB0byBjb21lIGJhY2ssIHdoaWNoIEkgcmVhbGx5IGRvbuKAmXQgdGhpbmsgSSB3aWxsLCB0aGVuIHllcywgSSB3aWxsLuKAncKgVGhlIGJsb29kIHdhcyB0YWtlbi4gVGhlIG51cnNlIHJhbiBiYWNrIHdpdGhpbuKAkyBJIHdhbnQgdG8gc2F5IGl0IHdhcyAxMCBtaW51dGVzLiBJdCB3YXMgcmVhbGx5IGZhc3QuIFNoZSBzYWlkLCDigJxZb3UgZ3V5cyBzaG91bGQgcmVhbGx5IGNvbnNpZGVyIHN0YXlpbmcuIFlvdXIgcGxhdGVsZXRzIGFyZSBsb3cu4oCdIEkgc2FpZCwg4oCcT2theS7igJ3CoE1lYWdhbjogVGhlIGxhYnMgY2FtZSBiYWNrIHRoYXQgZmFzdD/CoEhlaWRpOiBUaGV5IGNhbWUgYmFjayByZWFsbHkgZmFzdC7CoE1lYWdhbjogQmVjYXVzZSB5b3Ugd2VyZSBzYXlpbmcgdGhhdCB5b3Ugd2VyZSBtYXliZSBnb2luZyB0byBnbyBiYWNrIGhvbWU/IFRoYXTigJlzIGludGVyZXN0aW5nLsKgSGVpZGk6IFllYWguIEkgc2FpZCwg4oCcT2theS4gVGhhdOKAmXMgdGhyb21ib2N5dG9wZW5pYS7igJ0gTXkgcHJvdmlkZXIgaGFkIHNhaWQgSSBoYWQgdGhhdC4gV2UgdGFsa2VkIGFib3V0IGl0IGFuZCBJIGFsc28gaGFkIGl0IGR1cmluZyBteSBsYXN0IHByZWduYW5jeS7CoE1lYWdhbjogV2FpdCwgd2hhdCBkaWQgeW91IGp1c3QgY2FsbCB0aGF0P8KgSGVpZGk6IFRocm9tYm9jeXRvcGVuaWEuwqBNZWFnYW46IFRocm9tYm9jeXRvcGVuaWEuIEnigJl2ZSBoZWFyZCBsb3cgcGxhdGVsZXRzLiBJ4oCZdmUgbmV2ZXIgaGVhcmQgaXQgY2FsbGVkIHRoYXQuwqBIZWlkaTogVGhyb21ib2N5dG9wZW5pYS4gSSBhY3R1YWxseSBsaXN0ZW5lZCB0byBhIHBvZGNhc3Qgb2RkbHkgZW5vdWdoIHdpdGggTnIuIE5hdGhhbiBGb3guwqBNZWFnYW46IFdlIGxvdmUgaGltLsKgSGVpZGk6IFllYWgsIGhl4oCZcyBhd2Vzb21lLiBIZSB3YXMgYmFzaWNhbGx5IHNheWluZyB0aGF0IGl04oCZcyBjb21tb24gYW5kIGl04oCZcyBnZW5lcmFsbHkgbm90IGEgYmlnIGRlYWwuwqBNZWFnYW46IEkganVzdCBHb29nbGVkIGl0LiBZZWFoLCBpdCBzYXlzIGl04oCZcyBhIGNvbmRpdGlvbiB3aGVyZSB0aGUgcGxhdGVsZXRzIGFyZSBsb3cuIEl0IGNhbiByZXN1bHQgaW4gYmxlZWRpbmcgcHJvYmxlbXMuIFllYWguIE9rYXksIGFsbCByaWdodC4gS2VlcCBnb2luZy7CoEhlaWRpOiBZZWFoLiBJdCB3YXMgaW50ZXJlc3RpbmcgYmVjYXVzZSBoZSBoYWQgc2FpZCwg4oCcV2l0aGluIHJhbmdlLOKAnSBhbmQgSSB3YXMgd2l0aGluIHRoYXQgcmFuZ2UsIGJ1dCBJIGFsc28gdGFsa2VkIHRvIG15IHByb3ZpZGVyIGFib3V0IGl0IG1vbnRocyBiZWZvcmUgYW5kIHNoZSBzYWlkLCDigJxPaCB5ZWFoLiBUaGlzIGlzIGNvbW1vbi4gV2UgYXJlIG5vdCBjb25jZXJuZWQgd2l0aCB5b3VyIGxldmVscy7igJ0gTHVja2lseSwgSSB3YXMgbGlrZSwg4oCcT2ggbXkgZ29zaC4gSSBrbm93IGVub3VnaC7igJ0gSSB3YXMgbGlrZSwg4oCcTm9wZS4gSSBrbm93IHdoYXQgdGhhdCBpcy4gV2UgYXJlIG9rYXkgYW5kIHdlIGFyZSBnb2luZyBob21lLiBUaGV5IGNhbiBjYWxsIHVzIHdpdGggdGhlIHJlc3VsdHMu4oCdIFNvIHdlIHdlbnQgaG9tZS7CoE1lYWdhbjogVGhhdCBpcyBhbWF6aW5nLiBEaWQgdGhleSBtYWtlIHlvdSBzaWduIGFuIEFNQSBvciBhbnl0aGluZyBsaWtlIHRoYXQ/IFdlcmUgdGhleSBqdXN0IGxpa2UsIOKAnEZpbmUuIFdlIHdlcmUgZ29pbmcgdG8gaGF2ZSB5b3Ugc3RheSwgYnV0IHlvdSBhcmUgZ29vZCB0byBnby7igJ0gSGVpZGk6IFllYWguIFRoZXJlIHdhcyBubyBwYXBlcndvcmsuwqBNZWFnYW46IE9rYXkuIEdvb2QuwqBIZWlkaTogSSB3YXMgZnJlZS4gWWVhaC4gSSB3YXMgYWN0dWFsbHkgYW1hemVkIGF0IGhvd+KAkyBJIG1lYW4sIEkgd2FzIHZlcnkgZmlybSB3aXRoIHRoZW0uIEkgd2FzIGp1c3QgbGlrZSwg4oCcV2UgYXJlIGdvaW5nIGhvbWUgbm93LuKAnU1lYWdhbjogVGhhdCBpcyBoYXJkLiBUaGF0IGlzIHJlYWxseSwgcmVhbGx5IGhhcmQgdG8gZG8sIGxpa2UgcmVhbGx5LCByZWFsbHkgaGFyZCBzbyBnb29kIGZvciB5b3UgZm9yIGZvbGxvd2luZyB5b3VyIGd1dC7CoEhlaWRpOiBZZWFoLiBJdCBmZWx0IHJlYWxseSBnb29kLiBZZWFoLiBXZSBnb3QgaG9tZS4gSSBzdGFydGVkIHRvIGZlZWwgc29tZSBtaWxkLCBpcnJlZ3VsYXIgY29udHJhY3Rpb25zIGFuZCB0aGUgc2FtZSB0aGluZyBJIGhhZCBiZWVuIGZlZWxpbmcuIFdlIHNlbnQgbXkgbW9tIGhvbWUgYmVjYXVzZSBzaGUgd2FzIHN0aWxsIGF0IG15IGhvdXNlLiBMaWtlLCDigJxHbyBhaGVhZC4gV2XigJl2ZSBwcm9iYWJseSBnb3QgYW5vdGhlciBkYXku4oCdIEkgd2FzIGxpa2UsIOKAnEkga25vdyBzb21ldGhpbmcgaXMgZ29pbmcgdG8gYmUgaGFwcGVuaW5nIHNvb24uIEkgZmVlbCBpdC7igJ3CoFNvIGFyb3VuZCAxMDozMCB0aGF0IG5pZ2h0LCBJIGdvdCB0aGUgY2FsbCBmcm9tIHRoZSBPQuKAk8KgTWVhZ2FuOiBZb3Vycz/CoEhlaWRpOiBTb3JyeSwgdGhlIG9uZSBpbiB0aGUgaG9zcGl0YWwgdGhhdCB3YXMgdHJlYXRpbmcgbWUuIFNoZSBoYWQgc2FpZCwg4oCcQWxsIHJpZ2h0LiBZb3UgZG9u4oCZdCBoYXZlIHByZWVjbGFtcHNpYS4gWW91IGRvbuKAmXQgaGF2ZSB0byBjb21lIGJhY2su4oCdIEkgc2FpZCwg4oCcT2theS4gV2UgZGlkIGl0LuKAncKgTWVhZ2FuOiBZZXAuIFllcC4gWWVwLiBDYW4geW91IGltYWdpbmUgaGF2aW5nIHRvIGJlIHRoZXJlIHRoYXQgd2hvbGUgdGltZT/CoEhlaWRpOiBOby4gWWVhaC4gSeKAmW0gc3VyZSB0aGV5IHdvdWxkIGhhdmUgZm91bmQgc29tZXRoaW5nIGVsc2UuIFdobyBrbm93cz/CoE1lYWdhbjogWW91IG5ldmVyIGtub3cuwqA1NDo1MyBTcG9udGFuZW91cyBsYWJvckhlaWRpOiBZZWFoLCBzbyB3aGVuIHdlIHdlcmUgaG9tZSwgd2UgdW5wYWNrZWQgb3VyIGJhZ3MsIGF0ZSBzb21lIGZvb2QgYW5kIHNlbnQgbXkgbW9tIGhvbWUuIEkgYm91bmNlZCBvbiBteSBiaXJ0aCBiYWxsLiBJIHdhcyBwdW1wZWQuIEkgd2FzIHNvIGV4Y2l0ZWQuwqBXZSB3ZXJlIGxpa2UsIOKAnE9rYXkuIEJhY2sgb24gdGhlIG5vcm1hbCB0cmFjay7igJ0gVGhlbiBhcm91bmQgbWlkbmlnaHQsIHNvbWUgY29udHJhY3Rpb25zIHN0YXJ0ZWQgdGhhdCBJIGZpZ3VyZWQgd291bGQgc3RvcCBvbmNlIEkgbGFpZCBkb3duIGZvciBiZWQuIEkgZGlkbuKAmXQgcmVhbGx5IGtub3cuIEkgbmV2ZXIgcmVhbGx5IGhhZCBub3JtYWwsIG5vbi1QaXRvY2luLWluZHVjZWQgY29udHJhY3Rpb25zIGJlZm9yZSwgc28gSSBkaWRu4oCZdCByZWFsbHkga25vdyB3aGF0IHRoZXkgd291bGQgZmVlbCBsaWtlLiBJIHdhcyBpbiBkZW5pYWwsIHRvIGJlIGhvbmVzdC4gSSB3YXMgbGlrZSwg4oCcVGhlcmXigJlzIG5vIHdheS4gSeKAmW0gbm90IGdvaW5nIGludG8gbGFib3IgcmlnaHQgbm93LiBXaGF0IGFyZSB0aGVzZT8gVGhlc2UgYXJlIG5vdGhpbmcuIEl04oCZcyBqdXN0IGNhdXNlIEnigJltIG5lcnZvdXMgb3Igc29tZXRoaW5nLuKAncKgSSBsYWlkIGRvd24uIE15IGh1c2JhbmQgd2FzIGFscmVhZHkgYXNsZWVwIGF0IHRoaXMgcG9pbnQgYW5kIHRoZXkgZGlkbuKAmXQgc3RvcC4gVGhleSBqdXN0IGtlcHQgZ2V0dGluZyBzdHJvbmdlci4gSSB3YXMgbHlpbmcgdGhlcmUgdGhpbmtpbmcsIOKAnE5vLiBJIGNhbuKAmXQgZ28gaW50byBsYWJvciByaWdodCBub3cuIEkgZG9u4oCZdCB3YW50IHRvIHNlZSB0aGF0IE9CLiBJIGNhbuKAmXQuIEkgY2Fu4oCZdC4gVGhpcyBpcyBub3QgaGFwcGVuaW5nLuKAnSBJIHdhcyBqdXN0IHdpbGxpbmcgbXkgYm9keSwgd2lzaGluZyBhbmQgd2lsbGluZyBteSBib2R5IHRvIHdhaXQgdW50aWwgNjowMCBBTSBvciA3OjAwIEFNIHVudGlsIHRoZSBzaGlmdCBjaGFuZ2UuwqBTbyB0aGVuIEkgd2FzIGxpa2UsIOKAnE9rYXkuIEkgc2hvdWxkIHByb2JhYmx5IHN0YXJ0IHRpbWluZyB0aGVzZSBiZWNhdXNlIHRoaXMgaXMgbm8gam9rZS7igJ0gSSBmb3VuZCBhIHRpbWVyIGFuZCBzdGFydGVkIHRpbWluZyB0aGVtLiBUaGV5IHdlcmUgc3BhY2VkIGF0IDUgbWludXRlcyBhcGFydCBsYXN0aW5nIGEgbWludXRlIGVhY2guIEkgd2FzIGxpa2UsIOKAnFRoaXMgaXMgZWFybHkgbGFib3IuIFRoaXMgaXMgaXQu4oCdIEkgZmluYWxseSB3b2tlIG15IGh1c2JhbmQgdXAgYW5kIEkgd2FzIGxpa2UsIOKAnEhleS4gSSB0aGluayB3ZeKAmXJlIGdvaW5nLuKAncKgTWVhZ2FuOiBUaGlzIGlzIGdvaW5nIHRvIGhhcHBlbi7CoEhlaWRpOiBZZWFoLiBJIGNhbGxlZCBteSBkb3VsYS4gSSBoYWQgYmVlbiB0ZXh0aW5nIGhlciBtZWFud2hpbGUgdGhlIHdob2xlIHRpbWUgYW5kIHNoZSB3YXMgc3VwZXIgc3VwcG9ydGl2ZSB0aHJvdWdob3V0LCB0aGVuIEkgZmluYWxseSB3YXMgbGlrZSwg4oCcSSBuZWVkIHRvIGNhbGwgaGVyLuKAnSBTaGUgdGFsa2VkIG1lIHRocm91Z2ggd2hhdCBJIHdhcyBleHBlcmllbmNpbmcgYmVjYXVzZSBJIGhhZCBubyBpZGVhLiBTaGUgd2FzIGxpa2UsIOKAnFlvdSBndXlzIHNob3VsZCBwcm9iYWJseSBsZWF2ZSBzb29uIGJlY2F1c2UgdGhpcyBpcyB5b3VyIHNlY29uZCBiYWJ5IGFuZCBpdCBjb3VsZCBoYXBwZW4gcmVhbGx5IGZhc3Qu4oCdwqBJIG5vdGljZWQgdGhlcmUgd2FzIHBpbmsgZGlzY2hhcmdlLsKgTWVhZ2FuOiBBbmQgeW91IGhhZCBtYWRlIGl0IHRvIDEwIGJlZm9yZS7CoEhlaWRpOiBZZXMsIGV4YWN0bHkuIFNoZSB3YXMgbGlrZSwg4oCcVGhpcyBjb3VsZCBoYXBwZW4gcmVhbGx5IGZhc3Qu4oCdIEkgbm90aWNlZCBzb21lIGRpc2NoYXJnZSBhbmQgaXQgd2FzIHBpbmsuIENvbnRyYWN0aW9ucyBzdGFydGVkIHRvIGJlIHJlYWxseSByZWd1bGFyIGFuZCByZWFsbHkgcGFpbmZ1bC4gU2hlIHdhcyBsaWtlLCDigJxUaGF04oCZcyBwcm9iYWJseSB5b3VyIGNlcnZpeCBkaWxhdGluZy7igJ0gSSB3YXMgbGlrZSwg4oCcV2h5IGFtIEkgZHJhZ2dpbmcgbXkgZmVldD8gV2UgbmVlZCB0byBnby4gV2UgbmVlZCB0byBnbyBub3cu4oCdwqA1Nzo0MyBHb2luZyB0byB0aGUgaG9zcGl0YWxIZWlkaTogV2UgY2FsbGVkIG15IG1vbSB0byBoYXZlIGhlciBjb21lIGJhY2sgdG8gb3VyIGhvdXNlLiBJIHRoaW5rIGl0IHdhcyAxOjAwIGluIHRoZSBtb3JuaW5nIGF0IHRoaXMgcG9pbnQuIFNoZSBkaWRu4oCZdCBhbnN3ZXIgaW1tZWRpYXRlbHkgcHJvYmFibHkgYmVjYXVzZSBzaGUgd2FzIGV4aGF1c3RlZC7CoE1lYWdhbjogUHJvYmFibHkgYXNsZWVwLCB5ZWFoLsKgSGVpZGk6IFdoZW4gc2hlIGRpZCwgaXQgd2FzIGZpbmFsbHkgMjowMCBBTSBhbmQgdGhlcmUgd2FzIGEgYml0IG9mIGFuIGljZSBzdG9ybSBvdXRzaWRlLCBqdXN0IGEgbGl0dGxlIG9uZSBidXQganVzdCBlbm91Z2ggdG8gbWFrZSB0aGUgcm9hZHMgc2xpcHBlcnkgYmVjYXVzZSBzaGUgaGFkIHRleHRlZCBtZSB3aGVuIHNoZSB3YXMgZ29pbmcgYmFjayBob21lIGFuZCBzaGUgd2FzIGxpa2UsIOKAnEl04oCZcyBraW5kIG9mIGljeS4gSSBqdXN0IHdhbnQgdG8gbGV0IHlvdSBrbm93LuKAncKgU28gdGhlbiBJIHdhcyBsaWtlLCDigJxPaCBuby4gTXkgbW9t4oCZcyBvbiBoZXIgd2F5LCBidXQgaXTigJlzIGdvaW5nIHRvIHRha2UgaGVyIGEgd2hpbGUgdG8gZ2V0IGJhY2sgdG8gdGhlIGhvdXNlLuKAnSBUaGVuIGl04oCZcyBnb2luZyB0byB0YWtlIHVzIGEgd2hpbGUgdG8gZ2V0IHRvIHRoZSBob3NwaXRhbC7CoEl0IHdhcyByZWFsbHkgZ2V0dGluZyBwcmV0dHkgc2NhcnksIGJ1dCB3ZSB3ZXJlIGp1c3QgbGlrZSwg4oCcT2theS4gTGV04oCZcyBqdXN0IHBhY2sgb3VyIGJhZ3MgYWdhaW4s4oCdIGJlY2F1c2Ugd2UgaGFkIHN0YXJ0ZWQgdW5wYWNraW5nIHRoZW0uIE15IHByb3ZpZGVyIGhhZCBhY3R1YWxseSBzYWlkIHRoYXQgdGhleSB3ZXJlIGNvbWZvcnRhYmxlIHdpdGggbWUgZ29pbmcgdW50aWwgYXQgbGVhc3QgNDEgd2Vla3Mgc28gSSB3YXMgbGlrZSwg4oCcSSBjb3VsZCBnbyB1bnRpbCA0MSB3ZWVrcyBhbmQgdGhlbiB3aG8ga25vd3M/4oCdwqBNZWFnYW46IFJpZ2h0LsKgSGVpZGk6IEFueXdheSwgc28gd2UgcHV0IGV2ZXJ5dGhpbmcgYmFjay4gSXQgd2FzIGEgcmVhbGx5IGdvb2QgZGlzdHJhY3Rpb24gYW5kIHRoZW4gZXZlcnkgc2luZ2xlIGNvbnRyYWN0aW9uLCB3ZSB3b3VsZCBzdG9wIGFuZCBicmFjZSBvdXJzZWx2ZXMuIE15IG1vbSBnb3QgdG8gb3VyIGhvdXNlIGF0IDM6MTUuIFdlIGdvdCB0byB0aGUgaG9zcGl0YWwgYXJvdW5kIDQ6MDAgQU0uIEl0IHdhcyB0aGUgbG9uZ2VzdCBjYXIgcmlkZSBvZiBteSBsaWZlLiBNeSBkb3VsYSB3YXMgbGlrZSwg4oCcVGhlIGNvbnRyYWN0aW9ucyBtaWdodCBzbG93IGRvd24gaW4gdGhlIGNhci7igJ0gSSB3YXMgc2VjcmV0bHkgcHJheWluZyB0aGF0IHRoZXkgZGlkbuKAmXQgYmVjYXVzZSBzbyBtYW55IHBlb3BsZSB0aGF0IEkga25ldyBoYWQgcHJvZHJvbWFsIGxhYm9yIGFuZCBJIHdhcyBsaWtlLCDigJxJIHdhbnQgdGhpcyB0byBjb21lIGxpa2UgYSBmcmVpZ2h0IHRyYWluLiBJIGRvbuKAmXQgd2FudCBpdCB0byBzdG9wLuKAnSBJdCBpcyBzbyBwYWluZnVsLCB0aGVuIGEgbG90IG9mIHBlb3BsZSBzYXkgeW91IGdldCBuZXJ2b3VzIHdoZW4geW91IGdldCBpbiB0aGUgaG9zcGl0YWwuIFRoaW5ncyB3aWxsIHNsb3cgZG93bi4gSSB3YXMganVzdCBzbyBuZXJ2b3VzIGFib3V0IGFsbCBvZiB0aGF0LsKgSSBnb3QgdG8gdGhlIGhvc3BpdGFsLiBNeSBkb3VsYSBhcnJpdmVkIHNvb24gYWZ0ZXIuIFdlIHNwZW50IGFsbW9zdCB0d28gaG91cnMgaW4gdHJpYWdlIGV2ZW4gdGhvdWdoIHdlIHdlcmUgYWxyZWFkeSB0aGVyZSBmaWxsaW5nIG91dCBwYXBlcndvcmsuIFRoZSBjb250cmFjdGlvbnMgZGlkbuKAmXQgc3RvcCBvciBzbG93IGRvd24gZHVyaW5nIHRoaXMuIEkgd2FzIGJlc2lkZSBteXNlbGYuIEkgd2FzIGxpa2UsIOKAnE9oIG15IGdvc2guIE15IGJvZHkgaXMgcmVhZHkuIFdlIGFyZSBkb2luZyB0aGlzLuKAnSBUaGUgbnVyc2UgaW4gdHJpYWdlLCBhdCB0aGUgdGltZSwgd2FzIGEgZGlmZmVyZW50IG51cnNlLiBJIHRoaW5rIHNoZSB3b3JrZWQgYSBoYWxmIHNoaWZ0IG9yIHNvbWV0aGluZywgYnV0IHNoZSB3YXMgcmVhbGx5IHNrZXB0aWNhbCBvZiBWQkFDLiBJIHdhcyBub3QgY29tZm9ydGFibGUgd2l0aCBoZXIuIFNoZSBzYWlkIEkgY291bGRu4oCZdCBlYXQuIFNoZSBoYWQgb2J2aW91c2x5IG91dGRhdGVkIGluZm8uwqBJIGFza2VkIGhlciwg4oCcV2h5IGNhbuKAmXQgSSBlYXQ/4oCdIFNoZSBzYWlkLCDigJxXZWxsLCB0aGUgb2RkcyBvZiB5b3UgbmVlZGluZyBhbm90aGVyIEMtc2VjdGlvbiBhcmUgaGlnaGVyLuKAnSBJ4oCZbSBsaWtlLCDigJxXZWxsLCBob3cgZG8geW91IGtub3cgdGhhdD/igJ0gSXQgd2FzIGp1c3QgcmVhbGx5IGZydXN0cmF0aW5nLiBJIHJlcXVlc3RlZCBhIG1pZHdpZmUgdG8gZGVsaXZlciBteSBtaWR3aWZlIGJlY2F1c2UgdGhlIHNhbWUgT0JzIHdlcmUgb24gc3RhZmYuIEkgd2FzIGdvaW5nIHRvIGEgbWlkd2lmZSBmb3IgbXkgY2FyZSwgYSBtaWR3aWZlLCBhbmQgYW4gT0IgdGVhbS4gSSBhY3R1YWxseSBlbmRlZCB1cCBzZWVpbmcgdGhlIG1pZHdpZmUgZXZlbiBtb3JlIHRoYW4gdGhlIE9CIHNvIEkgcmVhbGx5IHdhcyBjb21mb3J0YWJsZSB3aXRoIHJlcXVlc3RpbmcgYSBtaWR3aWZlIHRvIGRlbGl2ZXIsIGJ1dCB0aGUgbnVyc2UgcmVhbGx5IHB1c2hlZCBiYWNrLiBTaGUgc2FpZCwg4oCcWW914oCZcmUgYSBWQkFDLiBJIGRvbuKAmXQgdGhpbmsgeW91IGNhbiBoYXZlIGEgbWlkd2lmZS7igJ0gWWVhaC4gU2hlIHdlbnQgaW50byB0aGUgaGFsbCwgbWFkZSBhIHBob25lIGNhbGwgd2l0aCB0aGUgbWlkd2lmZSBhbmQgdGhlIG1pZHdpZmUgb24gc3RhZmYgYWN0dWFsbHkgc2FpZCBubyBzdXBwb3NlZGx5IGJlY2F1c2UgSSB3YXMgYSBWQkFDLsKgTWVhZ2FuOiBXaGF0PyBUaGV5IGhhZCBuZXZlciBzYWlkIGFueXRoaW5nIGxpa2UgdGhpcyBpbiB5b3VyIHByZW5hdGFscy7CoEhlaWRpOiBOby4gTm8uIEkgdGhpbmsgYWdhaW4sIGl04oCZcyBhIGxpdHRsZSBkaWZmZXJlbnQuIFRoZXkgYWxzbyB1c2Ugb3RoZXIgaG9zcGl0YWwgc3RhZmYgYXQgdGhpcyBob3NwaXRhbCBzbyB5b3UgbmV2ZXIga25vdyB3aG8geW914oCZcmUgZ29pbmcgdG8gZ2V0LCBidXQgbXkgZG91bGEgaXMgdGhlcmUgYW5kIHRoYXTigJlzIHdoYXQgbWF0dGVycy4gVGhhdOKAmXMgd2h5IEkgaGFkIGEgZG91bGEgYmVjYXVzZSB5b3UgZG9u4oCZdCBrbm93LsKgTWVhZ2FuOiBZb3UgZG9u4oCZdCBhbHdheXMga25vdywgeWVhaC7CoDE6MDI6MDMgTGFib3JpbmcgaW4gdGhlIHR1YkhlaWRpOiBUaGV5IGFza2VkIHRvIGRvIGEgY2VydmljYWwgY2hlY2suIEkgd2FzIGhlc2l0YW50LCBidXQgdGhleSBzYWlkLCDigJxXZSBoYXZlIHRvIGRvIHRoaXMgdG8gYWRtaXQgeW91LuKAnSBJIHdhcyBsaWtlLCDigJxJ4oCZbSBub3QgbGVhdmluZyBhdCB0aGlzIHBvaW50LiBJ4oCZbSBjbGVhcmx5IGluIGxhYm9yLuKAnSBJIGNvbnNlbnRlZCB0byBpdCBhbmQgdGhleSBmb3VuZCBJIHdhcyA0IGNlbnRpbWV0ZXJzIGRpbGF0ZWQgc28gSSBzdGF5ZWQuIEkgZ290IHRvIG15IHJvb20gYXJvdW5kIDY6MzAgYW5kIGFjdHVhbGx5LCBJIHRoaW5rIEkgd2FzIGFib3V0IDgwJSBlZmZhY2VkIGF0IHRoaXMgcG9pbnQuwqBJIGdvdCB0byBteSByb29tIGFyb3VuZCA2OjMwIGFuZCBJIGp1c3QgYmVnYW4gc2V0dGluZyBpdCB1cCB0byBkaXN0cmFjdCBteXNlbGYuIE15IGRvdWxhIHN0YXJ0ZWQgc2V0dGluZyB1cCB0aGUgYmF0aCBmb3IgbWUuIEkgd2FzIGxpa2UsIOKAnEkgd2FudCB0byBnbyB0byB0aGUgYmF0aC7igJ0gSSBnb3QgdG8gdGhlIHR1YiBhcm91bmQgNzowMCBBTSB0byBkZWFsIHdpdGggdGhlIGNvbnRyYWN0aW9ucyBiZWNhdXNlIEkgcmVhbGx5IHdhbnRlZCBhIG5hdHVyYWwgYmlydGggdGhpcyB0aW1lLiBNeSB3YXRlciBicm9rZSA1IG1pbnV0ZXMgYWZ0ZXIgdGhhdC7CoFNoaWZ0IGNoYW5nZWQgYXQgNzowMCBBTS4gSSBmZWVsIGxpa2UgbXkgYm9keSB3YXMgbGlrZSwg4oCcT2theSwgaGV5LiBTaGlmdCBjaGFuZ2UgYXQgNzowMCzigJ0gYW5kIHRoZW4gbXkgd2F0ZXIgYnJva2UuwqBNZWFnYW46IFlvdSBzYWlkIHdlIHdlcmUgaW4gdHJpYWdlIGZvciB0d28gaG91cnMgYW5kIEkgd2FzIGxpa2UsIOKAnFlvdXIgYm9keSB3YXMgd2FpdGluZyBmb3Igc2hpZnQgY2hhbmdlIGludHVpdGl2ZWx5LuKAnSBUaGVyZSB5b3UgZ28uwqBIZWlkaTogSSBnb3QgaW4gdGhlIHR1Yi4gTXkgd2F0ZXIgYnJva2UuIEEgbmV3IG51cnNlIGNhbWUgaW4gYXJvdW5kIDc6MTUuIFNoZSBoYWQgYSB0cmFpbmVlLCBidXQgdGhpcyB3YXMgYSBudXJzZSB3aG8gaGFkIGEgbG90IG9mIGV4cGVyaWVuY2UgYW5kIHNoZSB3YXMganVzdCB0cmFpbmluZyB0byBiZSBpbiBsYWJvciBhbmQgZGVsaXZlcnkgc28gaXQgd2FzIGJhc2ljYWxseSBsaWtlIGFuIGV4dHJhIHNldCBvZiBleHBlcmllbmNlZCBoYW5kcy4gU2hlIHdhcyBhbHNvIGEgbnVyc2Ugd2hvIGhhZCBydW4gYSB0cmFpbmluZyBmb3IgdXMgYSBjb3VwbGUgb2YgbW9udGhzIGJlZm9yZSBhbmQgSSB3YXMgbGlrZSwg4oCcSSBob3BlIEkgZ2V0IHRoaXMgbnVyc2UuIEkgcmVhbGx5LCByZWFsbHkgaG9wZSBJIGdldCB0aGlzIG51cnNlLuKAnSBJbiBzaGUgd2Fsa2VkLCBhbmQgSSBjb3VsZG7igJl0IGJlbGlldmUgaXQuwqBTaGUgY2FtZSBkb3duIHRvIG1lIGF0IHRoZSB0dWIuIFNoZSBzdGFydGVkIGFza2luZyBtZSBxdWVzdGlvbnMgcmlnaHQgYXdheSBhYm91dCBteSBiaXJ0aCBwbGFuLiBJdOKAmXMgbGlrZSBzaGUgc3R1ZGllZCBpdC4gSXQgd2FzIHRoZSBtb3N0IGFtYXppbmcgdGhpbmcuIEkgY2Fu4oCZdCBleGFjdGx5IHJlbWVtYmVyIHdoYXQgc2hlIHdhcyBhc2tpbmcsIGJ1dCBqdXN0IGNsYXJpZmljYXRpb24gYW5kIHNoZSB3YXMgbGlrZSwg4oCcWWVzLiBXZSBjYW4gZG8gdGhpcy4gV2UgY2FuIGRvIHRoaXMgYW5kIHdlIHdpbGwgZG8gdGhhdC7igJ0gSSB3YXMgbGlrZSwg4oCcV293LuKAnSBUaGUgZmlyc3QgdGltZSwgSSBoYWQgYSBiaXJ0aCBwbGFuLCBidXQgSeKAmW0gcHJldHR5IHN1cmUgdGhleSBidXJuZWQgaXQuwqBNZWFnYW46IEF3dy7CoEhlaWRpOiBUaGVuIHNoZSBqdXN0IHN0YXJ0ZWQgdGFsa2luZyBhYm91dCBob3cgdGhlIGJpcnRoIHByb2Nlc3Mgd291bGQgZ28gYW5kIGhvdyBJIHdvdWxkIGJlIGZlZWxpbmcgbWVudGFsbHkgbW9yZSB0aGFuIGxpa2VseSBhbmQgc2hlIGFsc28gc2FpZCB0aGF0IHNoZSBpcyB3ZWxsLXZlcnNlZCBpbiBTcGlubmluZyBCYWJpZXMuwqBNZWFnYW46IFdoYXQgeW91IHdhbnRlZCHCoEhlaWRpOiBZZWFoLiBZZWFoLiBJIHdhcyBsaWtlLCDigJxUaGlzIGlzIGhlYXZlbi7igJ0gSSBhbHNvIHRvb2sgYSBzaG9ydCBjb3Vyc2UgaW4gaXQgdG8gcHJlcCBmb3IgdGhpcyBsYWJvciBhbmQgSSByZWFsbHkgd2FzIHRyeWluZyB0byBkbyBhbGwgb2YgdGhlIHRoaW5ncy4gSSBjb3VsZG7igJl0IGRvIGFsbCBvZiB0aGUgdGhpbmdzLCBidXQgSSB0aGluayB0aGVyZSBpcyBhIGxvdCBvZiBzY2llbmNlIHRvIFNwaW5uaW5nIEJhYmllcywgZXNwZWNpYWxseSBoYXZpbmcgYW4gT1AgYmFieSB0aGUgZmlyc3QgdGltZS7CoEluaXRpYWxseSwgSSB3YXMgZXhwZXJpZW5jaW5nIGJhY2sgbGFib3IuIFNoZSBhc2tlZCBtZSwg4oCcV2hlcmUgZG8geW91IGZlZWwgeW91ciBwYWluP+KAnSBJIHNhaWQsIOKAnEluIG15IGJhY2su4oCdIFNoZSBzYWlkLCDigJxHZXQgb24gYWxsIGZvdXJzLiBUaGUgYmFieSBjb3VsZCBiZSBPUC7igJ0gSSB3YXMganVzdCBsaWtlLCDigJxPaCBteSBnb3NoLiBJIHdpbGwgZG8gYW55dGhpbmcgdG8gbm90IGhhdmUgYW5vdGhlciBPUCBiYWJ5LuKAnSBTaGUgc2FpZCwg4oCcV2XigJlyZSBnb2luZyB0byBzcGluIGhlci7igJ0gSSBzdGF5ZWQgb24gYWxsIGZvdXJzLiBJIGp1c3QgZGlkIHRoaXMuIEkgc3RhcnRlZCB1c2luZyB0aGUgbml0cm91cy4gVGhpcyBob3NwaXRhbCBwcm92aWRlZCBuaXRyb3VzLsKgTWVhZ2FuOiBOaXRyb3VzIG94aWRlP0hlaWRpOiBZZWFoLiBUaGUgb3RoZXIgaG9zcGl0YWwgZGlkIG5vdCBoYXZlIHRoYXQsIGJ1dCBJIHdhcyBzbyBleGNpdGVkIGZvciB0aGF0LiBJdCBoZWxwZWQgbWUganVzdCBicmVhdGhlIHRocm91Z2ggbXkgY29udHJhY3Rpb25zLCByZWFsbHkgZ2V0IGluIHR1bmUgd2l0aCBteSBib2R5LCBhbmQgZ2F2ZSBtZSBhIGZvY3VzLiBJIHdhcyBhYmxlIHRvIG1vdmUgYXJvdW5kIHJlYWxseSBmcmVlbHkuwqBXaGVuIEkgd2FzIGluIHRoZSB0dWIsIEkgc3RhcnRlZCB0byBmZWVsIHRoZSB1cmdlIHRvIHB1c2ggc28gd2UgbW92ZWQgb3V0IGludG8gdGhlIGJlZC4gSSBzdGlsbCBzdGF5ZWQgb24gYWxsIGZvdXJzLiBCdXQgSSB3YXMgYWxzbyBqdXN0LCBJIGRvbuKAmXQgcmVtZW1iZXIgdGhpcywgYnV0IG15IGRvdWxhIHdhcyBzYXlpbmcgdGhhdCBJIHJlYWxseSB3YXMga2luZCBvZiBkYW5jaW5nLiBJIHdhcyBtb3ZpbmcgaW4gdGhlIHdheXMgdGhhdCBteSBib2R5IHRvbGQgbWUgdG8gZG8uIEl0IGZlbHQgc28gaW5jcmVkaWJsZSBhbmQgb2J2aW91c2x5IHBhaW5mdWwuwqAxOjA2OjIyIFB1c2hpbmcgZm9yIDMwIG1pbnV0ZXNIZWlkaTogVGhlbiBpdCB3YXMgYWJvdXQgOToxNSBhbmQgSSB3YXMgcmVhbGx5LCByZWFsbHkgd2FudGluZyB0byBwdXNoIGF0IHRoaXMgcG9pbnQuIEkgd2FzIHRvbGQgdG8gd2FpdCBmb3IgYSBjZXJ2aWNhbCBjaGVjayB0aG91Z2ggYW5kIEkgd2FzIGxpa2UsIOKAnFdoeSBkbyBJIG5lZWQgYSBjZXJ2aWNhbCBjaGVjaz8gSeKAmW0gcmVhZHku4oCdIE1lYWdhbjogTXkgYm9keSBpcyBzYXlpbmcgSeKAmW0gcmVhZHksIHllYWguwqBIZWlkaTogWWVhaC4gQSBtaWR3aWZlIGNhbWUgaW4uIFNoZSBpbnRyb2R1Y2VkIGhlcnNlbGYgYW5kIHNoZSB3YXMgbGlrZSwg4oCcSeKAmW0gZ29pbmcgdG8gYmUgZGVsaXZlcmluZyB5b3VyIGJhYnku4oCdIEkgd2FzIGxpa2UsIOKAnE9rYXku4oCdIEkgY291bGRu4oCZdCBiZWxpZXZlIGl0LiBJdCB3YXMgYSBkaWZmZXJlbnQgbWlkd2lmZSBhbmQgc2hlIHdhcyBsaWtlLCDigJxJIHdhbnQgdG8gY2hlY2sgeW91IGJlY2F1c2UgeW91IGNvdWxkIGhhdmUgYSBsaXAgaWYgeW914oCZcmUgbm90IGZ1bGx5IGVmZmFjZWQuIFlvdXIgcHVzaGluZyB3aWxsIGJlIGluZWZmZWN0aXZlLuKAnSBTaGUgZm91bmQgdGhhdCBJIHdhcyAxMCBjZW50aW1ldGVycyBkaWxhdGVkLCBmdWxseSBlZmZhY2VkIHNvIHRoZW4gd2Ugd2VudCBvbiBhbmQgcHVzaGVkLsKgTXkgZGF1Z2h0ZXIgY2FtZSBvdXQgYXQgOTo0NiBBTSBzbyB3ZSBwdXNoZWQgZm9yIGEgaGFsZiBob3VyLsKgTWVhZ2FuOiBPaCBteSBnb3NoISBTbyB5b3UgZ290IGJhYnkgaW4gYSBnb29kIHBvc2l0aW9uIGFuZCBpc27igJl0IHRoZXJlIHN1Y2ggYSBkaWZmZXJlbmNlIGJldHdlZW4gcHVzaGluZz/CoEhlaWRpOiBZZXMuIE5vdCBoYXZpbmcgdGhlIGVwaWR1cmFsLCBJIGNvdWxkIGZlZWwgZXZlcnl0aGluZy4gSXQgd2FzIHNvIHJlYWwuIFNoZSB3YXMgNyBwb3VuZHMsIDMgb3VuY2VzLiBTaGUgZGlkIGhhdmUgYSBjb21wb3VuZCBwcmVzZW50YXRpb24uIFNoZSB3YXMgaGVhZCBkb3duLCBidXQgeWVhaC4gU2hlIGNhbWUgb3V0IHdpdGggaGVyIGhhbmQgcHJlc3NlZCBhZ2FpbnN0IGhlciBoZWFkLsKgTWVhZ2FuOiBZZXMsIGNvbWUgb3V0IHRoaW5raW5nLsKgSGVpZGk6IFllYWguIEkgaGFkIHJlYWxseSBubyB0ZWFyaW5nLCB2ZXJ5LCB2ZXJ5IG1pbmltYWwuIEkgYWNoaWV2ZWQgdGhlIGRlbGF5ZWQgY29yZCBjbGFtcGluZy4gTXkgaHVzYmFuZCBnb3QgdG8gY3V0IHRoZSBjb3JkLiBXZSBkaWRu4oCZdCBoYXZlIHRvIHJlbWluZCB0aGVtIG9mIG91ciB3aXNoZXMuIFRoZXkganVzdCBrbmV3LiBXZSBoYWQgYSBnb2xkZW4gaG91ciB3aGljaCBJIG5ldmVyIGhhZCBiZWZvcmUsIGJ1dCBJIHdhcyB0b2xkIEkgY291bGQgdGFrZSBhcyBsb25nIGFzIEkgd2FudGVkLCBhbmQgeWVhaC4gSXQgd2FzIGp1c3QgdGhlIG1vc3QgYmVhdXRpZnVsIHRoaW5nIEkgaGF2ZSBldmVyIGV4cGVyaWVuY2VkIGluIG15IGxpZmUgYW5kIEkganVzdCBjb3VsZG7igJl0IGJlbGlldmUgSSBkaWQgaXQuwqBNZWFnYW46IFllYWgsIHdoYXQgYSBqb3VybmV5LiBJIGFtIHNvIGhhcHB5IGZvciB5b3UuwqBIZWlkaTogVGhhbmsgeW91LsKgTWVhZ2FuOiBDb25ncmF0dWxhdGlvbnMuIEFuZCBub3csIGF0IHRoaXMgdGltZSBvZiByZWNvcmRpbmcsIGhvdyBvbGQgaXMgeW91ciBiYWJ5P8KgSGVpZGk6IFNoZSBpcyA4IHdlZWtzLk1lYWdhbjogOCB3ZWVrcy4gQnJhbmQgbmV3ISBIb3cgaGFzIHRoZSBwb3N0cGFydHVtIGJlZW4/wqBIZWlkaTogT2ggbXkgZ29zaC4gSXTigJlzIGJlZW4gYW1hemluZy4gSSBtZWFuLCBhcyBhbWF6aW5nIGFzIGl0IGNhbiBiZS4gTGV04oCZcyBiZSByZWFsLCBidXQgY29tcGFyZWQgdG8gd2hhdCBpdCB3YXMuwqBNZWFnYW46IEdvb2QuIEnigJltIHNvIGhhcHB5IGZvciB5b3UuIFlvdSBrbm93LCB3aGVuIHlvdSBmaW5pc2hlZCB5b3VyIGZpcnN0LCB5b3Ugd2VyZSBsaWtlLCDigJxNeSBodXNiYW5kIGFuZCBJIGRpZG7igJl0IGV2ZW4ga25vdyBpZiB3ZSB3b3VsZCBldmVyIHdhbnQgYW5vdGhlciBraWQu4oCdIEkgY2FuIGp1c3Qgc2VlIHRoaXMgam95IG9uIHlvdXIgZmFjZSByaWdodCBub3cuIFdoZXJlIGFyZSB5b3UgYXQgaW4gdGhhdCBzdGFnZSBub3c/IEFyZSB5b3UgdHdvIGFuZCBkb25lIG9yIGFyZSB5b3UgbGlrZSwg4oCcSSBjb3VsZCBkbyB0aGlzIGFnYWlu4oCdP8KgSGVpZGk6IFdlIGFyZSB0d28gYW5kIGRvbmUuwqBNZWFnYW46IEhleS7CoEhlaWRpOiBZZWFoLCBJIG1lYW4gaXTigJlzIGZ1bm55IGJlY2F1c2UgdGhlIG51cnNlIGFuZCBteSBPQiB3ZXJlIGxpa2UsIOKAnFlvdSByZWFsbHkgc2hvdWxkIGhhdmUgYW5vdGhlciBvbmUu4oCdwqBNZWFnYW46IFRoaXMgaXMgd2hhdCBJIGRpZC4gSSB3ZW50IG91dCB3aXRoIGEgYmFuZy4gWW91IHdlbnQgb3V0IHdpdGggYSBiYW5nLsKgSGVpZGk6IFlvdSBjYW7igJl0IHRvcCB0aGlzLsKgTWVhZ2FuOiBZb3UgZ290IHRoZSBiaXJ0aCB5b3Ugd2FudGVkIGFuZCBhbGwgdGhlIHRoaW5ncy4gWW91IGtub3csIHlvdSBhZHZvY2F0ZWQgZm9yIHlvdXJzZWxmIGluIHRoZSBiaXJ0aCByb29tLiBZb3UgbGVmdCBhbmQgdGhlbiBzdGlsbCBhZHZvY2F0ZWQgZm9yIHlvdXJzZWxmIGluIHRoZSBiaXJ0aCByb29tLiBJIG1lYW4sIGhvdyBhbWF6aW5nLiBIb3cgYW1hemluZy7CoEhlaWRpOiBZZWFoLiBJIGVuZGVkIHVwIHdpdGggdGhlIG1vc3Qgc3VwcG9ydGl2ZSB0ZWFtLiBZb3UgZG8gbmV2ZXIga25vdyB3aGF0IHlvdeKAmXJlIGdvaW5nIHRvIGdldCwgYnV0IHRoZSB0ZWFtIHRoYXQgY2FtZSBpbiBhdCA3OjAwIEFNLCBvaCBteSBnb29kbmVzcy4gVGhleSB0cmVhdGVkIG1lIGxpa2UgSSB3YXMganVzdCBhIG5vcm1hbCwgdmFnaW5hbCBiaXJ0aC4gVGhlcmUgd2FzIG5vIFZCQUMuIFRoZXJlIHdhcyBubyBqYXJnb24uIEl0IHdhcyBiZWF1dGlmdWwuwqBNZWFnYW46IEkgbG92ZSBoZWFyaW5nIHRoYXQuIFRoYXQgaXMgdHJ1bHkgaG93IGl0IGlzIHN1cHBvc2VkIHRvIGJlIGFuZCBpdOKAmXMgc28gb2Z0ZW4gbm90LiBUaGVuIHllYWgsIHRoZW4gd2UgbGVhcm5lZCBtb3JlIGFib3V0IHRoZSBjb3JyZWN0IGRpYWdub3NpcyBvciB0ZXJtIG9mIGxvdyBwbGF0ZWxldHMuIEkgdG90YWxseSBHb29nbGVkIGl0IHJlYWxseSBxdWlja2x5IGFuZCBpdCBqdXN0IHNhaWQgdGhhdCBnZXN0YXRpb25hbCB0aHJvbWJvY3l0b3BlbmlhLCBob3cgZG8geW91IHNheSBpdD/CoEhlaWRpOiBUaHJvbWJvY3l0b3BlbmlhLsKgTWVhZ2FuOiBUaHJvbWJvY3l0b3BlbmlhIGlzIGEgZGlhZ25vc2lzIG9mIGV4Y2x1c2lvbi4gVGhlIGNvbmRpdGlvbiBpcyBhc3ltcHRvbWF0aWMuIEl0IHVzdWFsbHkgb2NjdXJzIGluIHRoZSBzZWNvbmQgaGFsZiBvZiBwcmVnbmFuY3kgaW4gdGhlIGFic2VuY2Ugb2YgYSBoaXN0b3J5IG9mIHRocm9tYm9jeXRvcGVuaWEuwqBIZWlkaTogWW91IGdvdCBpdC7CoE1lYWdhbjogSXQgc2FpZCwg4oCcVGhlIHByZWduYW5jeSBhbmQgdGhlIHBsYXRlbGV0IGNvdW50cyBzcG9udGFuZW91c2x5IHJldHVybiB0byBub3JtYWwgd2l0aGluIHRoZSBmaXJzdCB0d28gbW9udGhzIG9mIHBvc3RwYXJ0dW0u4oCdIFdlIHdpbGwgbWFrZSBzdXJlIHRvIGhhdmUgYSBsaXR0bGUgYml0IG1vcmUgcmVhZGluZy4gSXQgd2lsbCBnbyBiYWNrIGludG8gc29tZSB0aGluZ3MsIGJ1dCBvbmUgb2YgdGhlIHRoaW5ncyBpdCBkb2VzIHNheSBpcyB0aGF0IGl0IGlzIG5vdCBuZWNlc3NhcmlseSBhbiBpbmRpY2F0aW9uIGZvciBhIENlc2FyZWFuIGRlbGl2ZXJ5IHdoaWNoIGlzIGFsc28gaW1wb3J0YW50IHRvIGtub3cgYmVjYXVzZSBJIG1lYW4sIHRoZXJlIGNhbiBiZSBsb3cgcGxhdGVsZXQgbGV2ZWxzIHRoYXQgYXJlIG1vcmUgaW50ZW5zZSBsaWtlIEhFTExQIHN5bmRyb21lIGFuZCB0aGluZ3MgbGlrZSB0aGF0LCBidXQgdGhpcyBpcyBhIHJlYWxseSBnb29kIHRoaW5ncyB0byBrbm93IGJlY2F1c2UgdGhhdCB3b3VsZCBoYXZlIGVhc2lseSBiZWVuIHNvbWV0aGluZyBpZiBpdCBoYWRu4oCZdCBiZWVuIGZvciBEci4gTmF0aGFuIEZveCBhbmQgaWYgaXQgaGFkbuKAmXQgYmVlbiBmb3IgdGhlbSB0YWxraW5nIHRvIHlvdSBhYm91dCB0aGlzLiBJdCBjb3VsZCBoYXZlIHNjYXJlZCB5b3UgbGlrZSwg4oCcT2gsIG9rYXkuIE9rYXkuIExldOKAmXMgc3RheS7igJ0gQnV0IHlvdSB3ZXJlIGZ1bGx5IGVkdWNhdGVkIGluIHRoZSBzaXR1YXRpb24gYW5kIHdlcmUgYWJsZSB0byBtYWtlIGEgZ29vZCBjaG9pY2UgZm9yIHlvdSBhbmQgYWR2b2NhdGUgZm9yIHlvdXJzZWxmIGFuZCBzYXksIOKAnEkgZmVlbCBnb29kIGFib3V0IHRoaXMuIFlvdSBjYW4gY2FsbCBtZSB3aGVuIHRoZSBwcmVlY2xhbXBzaWEgbGV2ZWxzIGNvbWUgYmFjaywgYnV0IEkgZmVlbCBnb29kIGFib3V0IHRoaXMgZGVjaXNpb24uIFdl4oCZcmUgbW92aW5nIG9uLuKAncKgVGhlbiB0aGUgYW1hemluZywgbWlyYWN1bG91cywgbm8gaW5zdWxpbiBuZWVkLCB0aGF04oCZcyBhbm90aGVyIHJlYWxseSBjb29sIHRoaW5nIGFib3V0IHlvdXIgc3RvcnksIGJ1dCBJIGFsc28gd2FudGVkIHRvIHNoYXJlIExpbHkgTmljaG9scy4gSSBkb27igJl0IGtub3cgaWYgeW914oCZdmUgZXZlciBoZWFyZCBvZiBoZXIuwqBIZWlkaTogWWVzLiBGb3IgbXkgZmlyc3QgcHJlZ25hbmN5LCBJIHJlYWQgYm90aCBvZiBoZXIgYm9va3MuIFNoZeKAmXMgYW1hemluZy7CoE1lYWdhbjogU2hl4oCZcyBhbWF6aW5nLiBXZeKAmWxsIGJlIHN1cmUgdG8gbGluayBoZXIgYm9va3MgYW5kIHN0dWZmIGluIHRoZSBzaG93IG5vdGVzIGFzIHdlbGwgc28geW91IGNhbiBtYWtlIHN1cmUgdG8gY2hlY2sgaXQgb3V0LiBJZiB5b3Ugd2VyZSBnaXZlbiBhIGRpYWdub3NpcyBvZiBnZXN0YXRpb25hbCBkaWFiZXRlcyBvciBldmVuIGFjdHVhbGx5IGp1c3QgaW4gZ2VuZXJhbCwgaGVyIGJvb2tzIGFyZSBhbWF6aW5nLiBZb3UgY2FuIHJlYWQgYW5kIGJlIHJlYWxseSwgcmVhbGx5IHdlbGwgZWR1Y2F0ZWQuwqBPa2F5LCB3ZWxsIHRoYW5rIHlvdSBzbyBtdWNoIGZvciBzaGFyaW5nIHlvdXIgYmVhdXRpZnVsIHN0b3JpZXMuwqBIZWlkaTogWWVhaC4gVGhhbmsgeW91IGZvciBoYXZpbmcgbWUuwqBDbG9zaW5nV291bGQgeW91IGxpa2UgdG8gYmUgYSBndWVzdCBvbiB0aGUgcG9kY2FzdD8gVGVsbCB1cyBhYm91dCB5b3VyIGV4cGVyaWVuY2UgYXQgdGhldmJhY2xpbmsuY29tL3NoYXJlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBhbGwgdGhpbmdzIFZCQUMgaW5jbHVkaW5nIG9ubGluZSBhbmQgaW4tcGVyc29uIFZCQUMgY2xhc3NlcywgVGhlIFZCQUMgTGluayBibG9nLCBhbmQgTWVhZ2Fu4oCZcyBiaW8sIGhlYWQgb3ZlciB0byB0aGV2YmFjbGluay5jb20uIENvbmdyYXR1bGF0aW9ucyBvbiBzdGFydGluZyB5b3VyIGpvdXJuZXkgb2YgbGVhcm5pbmcgYW5kIGRpc2NvdmVyeSB3aXRoIFRoZSBWQkFDIExpbmsuU3VwcG9ydCB0aGlzIHBvZGNhc3QgYXQg4oCUIGh0dHBzOi8vcmVkY2lyY2xlLmNvbS90aGUtdmJhYy1saW5rL2RvbmF0aW9uc0FkdmVydGlzaW5nIElucXVpcmllczogaHR0cHM6Ly9yZWRjaXJjbGUuY29tL2JyYW5kcyIsImR1cmF0aW9uIjp7InRvdGFsTWlsbGlzZWNvbmRzIjo0Mzc1NTM2fSwiaWQiOiI2M1JyNE1Pb1FWWDJwNkFRMFdjYk92IiwibWVkaWFUeXBlcyI6WyJBVURJTyJdLCJuYW1lIjoiRXBpc29kZSAyOTMgSGVpZGkncyBWQkFDICsgR2VzdGF0aW9uYWwgRGlhYmV0ZXMsIEdCUyAmIEFkdmFuY2VkIE1hdGVybmFsIEFnZSIsInBsYXlhYmlsaXR5Ijp7InBsYXlhYmxlIjp0cnVlLCJyZWFzb24iOiJQTEFZQUJMRSJ9LCJwbGF5ZWRTdGF0ZSI6eyJwbGF5UG9zaXRpb25NaWxsaXNlY29uZHMiOjAsInN0YXRlIjoiTk9UX1NUQVJURUQifSwicG9kY2FzdFYyIjp7Il9fdHlwZW5hbWUiOiJQb2RjYXN0UmVzcG9uc2VXcmFwcGVyIiwiZGF0YSI6eyJfX3R5cGVuYW1lIjoiUG9kY2FzdCIsImNvdmVyQXJ0Ijp7InNvdXJjZXMiOlt7ImhlaWdodCI6NjQsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMGY2OGRiYjVmNzZiYTQzMmRmYzMwM2YzN2Y4MDYiLCJ3aWR0aCI6NjR9LHsiaGVpZ2h0IjozMDAsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMDVmMWZiYjVmNzZiYTQzMmRmYzMwM2YzN2Y4MDYiLCJ3aWR0aCI6MzAwfSx7ImhlaWdodCI6NjQwLCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDBiYThhYmI1Zjc2YmE0MzJkZmMzMDNmMzdmODA2Iiwid2lkdGgiOjY0MH1dfSwibmFtZSI6IlRoZSBWQkFDIExpbmsiLCJzaG93VHlwZXMiOltdLCJ1cmkiOiJzcG90aWZ5OnNob3c6MzZiVnhxT0dkMUVZY1Iwb0p0ZUY1biJ9fSwicmVsZWFzZURhdGUiOnsiaXNvU3RyaW5nIjoiMjAyNC0wNC0yMlQwNzoxMDowMFoifSwicmVzdHJpY3Rpb25zIjp7InBheXdhbGxDb250ZW50IjpmYWxzZX0sInVyaSI6InNwb3RpZnk6ZXBpc29kZTo2M1JyNE1Pb1FWWDJwNkFRMFdjYk92In0seyJfX3R5cGVuYW1lIjoiRXBpc29kZSIsImF1ZGlvIjp7Iml0ZW1zIjpbeyJmaWxlSWQiOiI3OTZhZDgzZTc0NjIwZTZiYjVhNzI0MDJjODFmZmRkZTk3ZTRmZjQyIiwiZm9ybWF0IjoiTVA0XzEyOF9EVUFMIiwidXJsIjoiaHR0cHM6Ly9wLnNjZG4uY28vbXAzLXByZXZpZXcvNzk2YWQ4M2U3NDYyMGU2YmI1YTcyNDAyYzgxZmZkZGU5N2U0ZmY0MiJ9LHsiZmlsZUlkIjoiYzUyMjFkMTgxNTFmNjE1MzZkNjc5OTE2NjFmMDRkMWQzY2ViMTg3MiIsImZvcm1hdCI6Ik1QNF8xMjgiLCJ1cmwiOiJodHRwczovL3Auc2Nkbi5jby9tcDMtcHJldmlldy9jNTIyMWQxODE1MWY2MTUzNmQ2Nzk5MTY2MWYwNGQxZDNjZWIxODcyIn0seyJmaWxlSWQiOiI5MjdhY2I4MTQ2ZTZiNGI1M2M2NzRlYTAxY2ZjYzM0NWE1NWUzYzlkIiwiZm9ybWF0IjoiTVA0XzEyOF9DQkNTIiwidXJsIjoiaHR0cHM6Ly9wLnNjZG4uY28vbXAzLXByZXZpZXcvOTI3YWNiODE0NmU2YjRiNTNjNjc0ZWEwMWNmY2MzNDVhNTVlM2M5ZCJ9LHsiZmlsZUlkIjoiMTA1NGFlN2NmMWY3NzU0YjYyZGYxN2U5OTkwOTdlMGNmNzEzY2VhMSIsImZvcm1hdCI6IkFBQ18yNCIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3LzEwNTRhZTdjZjFmNzc1NGI2MmRmMTdlOTk5MDk3ZTBjZjcxM2NlYTEifSx7ImZpbGVJZCI6Ijg5YWQxOGQ4YTYyY2ZhNDFjMWE5YTY3NGM5OTAyZTAyMTY0MjFkMGYiLCJmb3JtYXQiOiJPR0dfVk9SQklTXzk2IiwidXJsIjoiaHR0cHM6Ly9wLnNjZG4uY28vbXAzLXByZXZpZXcvODlhZDE4ZDhhNjJjZmE0MWMxYTlhNjc0Yzk5MDJlMDIxNjQyMWQwZiJ9XX0sImNvbnRlbnRSYXRpbmciOnsibGFiZWwiOiJOT05FIn0sImNvdmVyQXJ0Ijp7InNvdXJjZXMiOlt7ImhlaWdodCI6NjQsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMGY2OGRiYjVmNzZiYTQzMmRmYzMwM2YzN2Y4MDYiLCJ3aWR0aCI6NjR9LHsiaGVpZ2h0IjozMDAsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMDVmMWZiYjVmNzZiYTQzMmRmYzMwM2YzN2Y4MDYiLCJ3aWR0aCI6MzAwfSx7ImhlaWdodCI6NjQwLCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDBiYThhYmI1Zjc2YmE0MzJkZmMzMDNmMzdmODA2Iiwid2lkdGgiOjY0MH1dfSwiZGVzY3JpcHRpb24iOiJBc2hsZXkncyBWQkFDIHN0b3J5IGlzIGZ1bGwgb2Ygc3VzcGVuc2UgYXMgc2hlIG5hdmlnYXRlcyB0aHJvdWdoIHRyeWluZyB0byBrZWVwIGJhYnkgaW4gZHVyaW5nIGh1cnJpY2FuZSBJUk1BIGFuZCBhIGNvdW50eS13aWRlIGV2YWN1YXRpb24gZWZmb3J0LiBZb3VyIGhlYXJ0IHdpbGwgYWNoZSB3aXRoIGhlciBhcyBzaGUgZGVzY3JpYmVzIGhlciBkaWZmaWN1bHRpZXMgd2l0aCB3YXRjaGluZyB0aGUgY2xvY2sgdGljayBkb3duIHRvIGhlciBzY2hlZHVsZWQgY2VzYXJlYW4gZGF0ZSBhcyBoZXIgaG9zcGl0YWwgd2lsbCBub3QgYWxsb3cgVkJBQyBpbmR1Y3Rpb25zISBZb3Ugd2lsbCBORVZFUiBndWVzcyBob3cgY2xvc2Ugc2hlIGdvdCB0byBhIHJlcGVhdCBjZXNhcmVhbiBiZWZvcmUgaGVyIGJvZHkga2lja3MgaW50byBmdWxsLWJsb3duIGxhYm9yISBUaGlzIGpvdXJuZXkgaXMgZnVsbCBvZiB0d2lzdHMgYW5kIHR1cm5zIHdpdGggdGhlIGhhcHBpZXN0IGVuZGluZyEgVGhlbiwgTWVhZ2FuIGRpc2N1c3NlcyBzYWZldHkgZm9yIGluZHVjdGlvbiBvZiBWQkFDLiBZb3UgY2FuIGZpbmQgdGhlIHJlZmVyZW5jZWQgaW5mb3JtYXRpb24gb24gb3VyIFZCQUMgYmxvZyBhdCB3d3cudGhldmJhY2xpbmsuY29tL2Jsb2cgZmIubWUvdGhldmJhY2xpbmsgZm9yIEZhY2Vib29rIEB0aGV2YmFjbGluayBvbiBJbnN0YWdyYW0gRm9sbG93IGFuZCBzdWJzY3JpYmUhISBNb3JlIFZCQUMgaW5mb3JtYXRpb24gd3d3LnRoZXZiYWNsaW5rLmNvbSBQbGVhc2Ugbm90ZSwgdG8gZ2V0IHN0b3JpZXMgZnJvbSBhbGwgb3ZlciB0aGUgY291bnRyeSBhbmQgZXZlbiBvdGhlciBjb3VudHJpZXMsIHdlIHJlY29yZCB1c2luZyBwaG9uZSBsaW5lcy4gRm9yIHRoaXMgcmVhc29uLCBhdWRpbyBxdWFsaXR5IG1heSB2YXJ5IGJldHdlZW4gZXBpc29kZXMgYW5kIHNwZWFrZXJzLlN1cHBvcnQgdGhpcyBwb2RjYXN0IGF0IOKAlCBodHRwczovL3JlZGNpcmNsZS5jb20vdGhlLXZiYWMtbGluay9kb25hdGlvbnNBZHZlcnRpc2luZyBJbnF1aXJpZXM6IGh0dHBzOi8vcmVkY2lyY2xlLmNvbS9icmFuZHMiLCJkdXJhdGlvbiI6eyJ0b3RhbE1pbGxpc2Vjb25kcyI6NDIyNTY0NX0sImlkIjoiM2VNbjN1RjJWNUVSamp6aGgzc0xYWSIsIm1lZGlhVHlwZXMiOlsiQVVESU8iXSwibmFtZSI6IjEwIEFzaGxleSdzIFZCQUMgKyBWQkFDIEluZHVjdGlvbiBGYWN0cyIsInBsYXlhYmlsaXR5Ijp7InBsYXlhYmxlIjp0cnVlLCJyZWFzb24iOiJQTEFZQUJMRSJ9LCJwbGF5ZWRTdGF0ZSI6eyJwbGF5UG9zaXRpb25NaWxsaXNlY29uZHMiOjAsInN0YXRlIjoiTk9UX1NUQVJURUQifSwicG9kY2FzdFYyIjp7Il9fdHlwZW5hbWUiOiJQb2RjYXN0UmVzcG9uc2VXcmFwcGVyIiwiZGF0YSI6eyJfX3R5cGVuYW1lIjoiUG9kY2FzdCIsImNvdmVyQXJ0Ijp7InNvdXJjZXMiOlt7ImhlaWdodCI6NjQsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMGY2OGRiYjVmNzZiYTQzMmRmYzMwM2YzN2Y4MDYiLCJ3aWR0aCI6NjR9LHsiaGVpZ2h0IjozMDAsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMDVmMWZiYjVmNzZiYTQzMmRmYzMwM2YzN2Y4MDYiLCJ3aWR0aCI6MzAwfSx7ImhlaWdodCI6NjQwLCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDBiYThhYmI1Zjc2YmE0MzJkZmMzMDNmMzdmODA2Iiwid2lkdGgiOjY0MH1dfSwibmFtZSI6IlRoZSBWQkFDIExpbmsiLCJzaG93VHlwZXMiOltdLCJ1cmkiOiJzcG90aWZ5OnNob3c6MzZiVnhxT0dkMUVZY1Iwb0p0ZUY1biJ9fSwicmVsZWFzZURhdGUiOnsiaXNvU3RyaW5nIjoiMjAxOC0wNy0xMVQwOTowMDowMFoifSwicmVzdHJpY3Rpb25zIjp7InBheXdhbGxDb250ZW50IjpmYWxzZX0sInVyaSI6InNwb3RpZnk6ZXBpc29kZTozZU1uM3VGMlY1RVJqanpoaDNzTFhZIn0seyJfX3R5cGVuYW1lIjoiRXBpc29kZSIsImF1ZGlvIjp7Iml0ZW1zIjpbeyJmaWxlSWQiOiJkYThkNGY1NWQxZjBmYTU5YTlmMDgxMjIxY2RlNDc3MzYxZWUxNzdiIiwiZm9ybWF0IjoiT0dHX1ZPUkJJU185NiIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3L2RhOGQ0ZjU1ZDFmMGZhNTlhOWYwODEyMjFjZGU0NzczNjFlZTE3N2IifSx7ImZpbGVJZCI6IjcxMmU1MjU5MWZkZTI4YWEzMjIwODNiZTYxZTU4MWUxNTRhZWUyNDciLCJmb3JtYXQiOiJNUDRfMTI4X0RVQUwiLCJ1cmwiOiJodHRwczovL3Auc2Nkbi5jby9tcDMtcHJldmlldy83MTJlNTI1OTFmZGUyOGFhMzIyMDgzYmU2MWU1ODFlMTU0YWVlMjQ3In0seyJmaWxlSWQiOiI4NTcxZmQ2ZGEyNjc3Nzg3MzEwYjVmZmVhODZlY2E4YjgzMWFmMDVhIiwiZm9ybWF0IjoiTVA0XzEyOF9DQkNTIiwidXJsIjoiaHR0cHM6Ly9wLnNjZG4uY28vbXAzLXByZXZpZXcvODU3MWZkNmRhMjY3Nzc4NzMxMGI1ZmZlYTg2ZWNhOGI4MzFhZjA1YSJ9LHsiZmlsZUlkIjoiZDhjNzkzOWYzYTYyZmE3OGExOWUxMTYwOTQ1ZGMxMjA1YTM5Yzk4YSIsImZvcm1hdCI6Ik1QNF8xMjgiLCJ1cmwiOiJodHRwczovL3Auc2Nkbi5jby9tcDMtcHJldmlldy9kOGM3OTM5ZjNhNjJmYTc4YTE5ZTExNjA5NDVkYzEyMDVhMzljOThhIn0seyJmaWxlSWQiOiJhMWU2NWFlZjZkMjg1NTg4MDg1ZjAyNDA3NjY5MTgyNGUzODdhMmYyIiwiZm9ybWF0IjoiQUFDXzI0IiwidXJsIjoiaHR0cHM6Ly9wLnNjZG4uY28vbXAzLXByZXZpZXcvYTFlNjVhZWY2ZDI4NTU4ODA4NWYwMjQwNzY2OTE4MjRlMzg3YTJmMiJ9XX0sImNvbnRlbnRSYXRpbmciOnsibGFiZWwiOiJOT05FIn0sImNvdmVyQXJ0Ijp7InNvdXJjZXMiOlt7ImhlaWdodCI6NjQsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMGY2OGQ0NTFlN2ExZTExMjc0ZjM4NzA3NGE2YmMiLCJ3aWR0aCI6NjR9LHsiaGVpZ2h0IjozMDAsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMDVmMWY0NTFlN2ExZTExMjc0ZjM4NzA3NGE2YmMiLCJ3aWR0aCI6MzAwfSx7ImhlaWdodCI6NjQwLCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDBiYThhNDUxZTdhMWUxMTI3NGYzODcwNzRhNmJjIiwid2lkdGgiOjY0MH1dfSwiZGVzY3JpcHRpb24iOiLigJxJIGRpZCBpdC4gVGhleSBzYWlkIEkgY291bGRu4oCZdCwgYnV0IEkgZGlkIGl0LuKAnVdoZW4gcGxhbm5pbmcgZm9yIGhlciBWQkEzQywgU2hhbm5vbiBnb3QganVzdCBhYm91dCBhcyBtdWNoIGtpY2tiYWNrIGFzIHNvbWVvbmUgY2FuIGdldC4gU2hlIHdhcyBhbWJ1c2hlZC4gU2hlIHdhcyBjb2VyY2VkLiBTaGUgd2FzIGdpdmVuIHRoZSBzY2FyaWVzdCBpbmZvcm1hdGlvbi7CoFNoYW5ub24gam9pbnMgdXMgZnJvbSBFbmdsYW5kIHRvZGF5IGFuZCB0YWxrcyBhYm91dCBob3cgZWFjaCBvZiBoZXIgZm91ciBiaXJ0aHMgYnJvdWdodCBoZXIgdG8gd2hlcmUgc2hlIGlzIHRvZGF5LiBCeSB0aGUgdGltZSBzaGUgd2FzIHByZWduYW50IHdpdGggaGVyIGZvdXJ0aCwgc2hlIHdhcyByZWFkeSB0byBhZHZvY2F0ZS4gU2hlIHdhcyByZWFkeSB0byBmaWdodCBmb3Igc29tZXRoaW5nIHNoZSBoYWQgbmV2ZXIgZ290dGVuIHRvIGV4cGVyaWVuY2UuwqBUaG91Z2ggbm9uZSBvZiBoZXIgcHJvdmlkZXJzIHdlcmUgc3VwcG9ydGl2ZSwgU2hhbm5vbiBzdGF5ZWQgZ3JvdW5kZWQuIFNoZSBtYWRlIGhlciBkZXNpcmVzIGtub3duIGFuZCBzdG9vZCBieSB0aGVtLsKgU2hhbm5vbiBsYWJvcmVkIHVubWVkaWNhdGVkIGZvciBqdXN0IG92ZXIgMTQgaG91cnMuIFRoZW4gdG8gZXZlcnlvbmXigJlzIHN1cnByaXNlLCBzaGUgcHVzaGVkIGhlciBmb3VydGggYmFieSBnaXJsIG91dCB2YWdpbmFsbHkgaW4gMTQgbWludXRlcyFUaGUgVkJBQyBMaW5rIEJsb2c6IElzIFZCQTNDIFJpZ2h0IGZvciBZb3U/VGhlIFZCQUMgTGluayBCbG9nOiBWQkFNQ0hvdyB0byBWQkFDOiBUaGUgVWx0aW1hdGUgUHJlcCBDb3Vyc2UgZm9yIFBhcmVudHNGdWxsIFRyYW5zY3JpcHQgdW5kZXIgRXBpc29kZSBEZXRhaWxzwqAwNDowNCBGaXJzdCBwcmVnbmFuY3kgYW5kIGJpcnRoMDg6MzEgU2Vjb25kIHByZWduYW5jeSBhbmQgc2NoZWR1bGVkIHJlcGVhdCBDZXNhcmVhbjEwOjU2IFRoaXJkIHByZWduYW5jeTE0OjA0IEEgaGVhcnRicmVha2luZyB0aGlyZCBDZXNhcmVhbjE3OjQyIFBvc3RwYXJ0dW0gZHVyaW5nIENPVklEMTk6NTUgRm91cnRoIHByZWduYW5jeTI0OjM3IEdldHRpbmcgYW1idXNoZWQyODo0MCBTaGFubm9u4oCZcyBWQkEzQyBiaXJ0aDM2OjMyIOKAnFdlIGFyZSBhbGwgc28gcHJvdWQu4oCdMzg6MzAgVkJBQyBhZnRlciB0aHJlZSBDZXNhcmVhbnNNZWFnYW46IEhlbGxvLCBoZWxsby4gWW91IGFyZSBsaXN0ZW5pbmcgdG8gVGhlIFZCQUMgTGluay4gV2UgaGF2ZSBvdXIgZnJpZW5kLCBTaGFubm9uLiBBcmUgeW91IGZyb20gRW5nbGFuZD8gV2hlcmUgYXJlIHlvdT9TaGFubm9uOiBFbmdsYW5kLCB5ZWFoLiBOZXcgQ2FtYnJpZGdlLsKgTWVhZ2FuOiBPa2F5LCBzZWU/IEnigJltIHNvIGdsYWQgbXkgbWluZCBpcyByZW1lbWJlcmluZy4gWW91IGFyZSBpbiBFbmdsYW5kIGFuZCB5b3UgZ3V5cywgc2hlIGlzIHJlY29yZGluZy4gSXQgaXMgcXVpdGUgbGF0ZSB0aGVyZS4gU2hlIGlzIHN1Y2ggYSBnZW0gdG8gc3RheSB1cCBhbmQgcmVjb3JkIGFuZCBzaGFyZSBoZXIgVkJBQyBhZnRlciB0aHJlZSBDLXNlY3Rpb25zLsKgU2hhbm5vbjogVGhyZWUuwqBNZWFnYW46IFllcy4gSGVyIGZvdXJ0aCB3YXMgYSB2YWdpbmFsIGJpcnRoLiBVbm8sIGRvcywgdHJlcy4gSSBjYW7igJl0IGV2ZW4gc2F5LiBJIGNhbuKAmXQgZXZlbiBwcmV0ZW5kIHRoYXQgSSBrbm93IFNwYW5pc2guIExldOKAmXMgYmUgaG9uZXN0LiBTbyB0aHJlZSwgeW91IGd1eXMuIEFmdGVyIHRocmVlIENlc2FyZWFucyBhbmQgd2Uga25vdyBpbiBvdXIgY29tbXVuaXR5IHRoYXQgdGhpcyBpcyBkZWZpbml0ZWx5IHNvbWV0aGluZyB0aGF0IHBlb3BsZSB3YW50IHRvIGhlYXIuIFBlb3BsZSB3YW50IHRvIGhlYXIgdGhlc2Ugc3RvcmllcyBiZWNhdXNlIGl0IGlzIGhhcmRlciB0byBmaW5kIHRoZSBzdXBwb3J0LiBUaGV5IHdhbnQgdG8gaGVhciB3aGF0IHBlb3BsZSBhcmUgZG9pbmcsIGhvdyB0aGV5IGFyZSBuYXZpZ2F0aW5nIHRocm91Z2gsIHdoZXJlIHRoZXkgYXJlIGZpbmRpbmcgc3VwcG9ydCwgYW5kIHdoYXQgdGhleSBhcmUgZG9pbmcgdG8gaGF2ZSB0aGVpciB2YWdpbmFsIGJpcnRoIGFmdGVyIG11bHRpcGxlIENlc2FyZWFucy7CoFdlIGFyZSBleGNpdGVkLCBTaGFubm9uLCBmb3IgeW91IHRvIHNoYXJlIHlvdXIgc3RvcmllcyB0b2RheS7CoDAxOjA3IFJldmlldyBvZiB0aGUgV2Vla01lYWdhbjogV2UgZG8gaGF2ZSBhIFJldmlldyBvZiB0aGUgV2VlayBzbyB3ZeKAmXJlIGdvaW5nIHRvIGdldCBpbnRvIHRoYXQgYW5kIHRoZW4gd2XigJlsbCBkaXZlIHJpZ2h0IGluLiBPa2F5LCBzbyB0aGlzIGlzIGZyb20gbW9yZ2FuZSBhbmQgaXQgc2F5cywg4oCcSeKAmW0gTm90IEFsb25lLuKAnSBJIGxvdmUgdGhhdCB0aXRsZSBiZWNhdXNlIFdvbWVuIG9mIFN0cmVuZ3RoLCB5b3UgYXJlIG5vdCBhbG9uZS4gVGhpcyBjb21tdW5pdHkgaXMgc28gaW5jcmVkaWJsZSBhbmQgd2XigJlyZSBhbGwgaGVyZSBmb3IgeW91LiBJdCBzYXlzLCDigJxUaGlzIHBvZGNhc3QgaGFzIHByb3ZpZGVkIHNvIG11Y2ggY29tZm9ydCBmb3IgbWUgaW4gY29waW5nIHdpdGggbXkgdW5wbGFubmVkIENlc2FyZWFuIGFuZCBub3cgcGxhbm5pbmcgZm9yIFZCQUMgaW4gTWFyY2guIFRoZSB0cmFuc2l0aW9uIHRvIG1vdGhlcmhvb2QgaGFzIGJlZW4gc29tZXdoYXQgbG9uZWx5IGZvciBtZSBzaW5jZSBtb3N0IG9mIG15IGZyaWVuZHMgYXJlIG5vdCBtb3RoZXJzIGFuZCBoZWxsbz8gUGFuZGVtaWMu4oCdIFNvIHRoaXMgaXMgYSBsaXR0bGUgYml0IGFnbywgcmlnaHQ/wqBJdCBzYXlzLCDigJxJIGFtIGFsc28gYW4gYXNwaXJpbmcgZG91bGEgYW5kIHNwdXJyZWQgb24gYnkgdGhlc2UgbGFkaWVzIGFuZCB0aGVpciB3b3JrLiBTbyB0aGFua2Z1bCBJIHN0dW1ibGVkIGFjcm9zcyB0aGlzIGdyb3VwLuKAncKgT2ggbXkgZ29zaC4gSXQgc2F5cywg4oCcVXMgd29tZW4gcmVhbGx5IGFyZSBzdHJvbmcu4oCdIEkgbG92ZSB0aGF0LiBVcyB3b21lbiByZWFsbHkgYXJlIHN0cm9uZy4gSSBjb3VsZCBub3QgYWdyZWUgbW9yZS4gWW91IGd1eXMsIHlvdSBhcmUgc3Ryb25nLiBZb3UgYXJlIGNhcGFibGUgYW5kIHlvdSBoYXZlIG9wdGlvbnMuIElmIHRoYXQgaXMgbm90IGFueXRoaW5nIGFuZCBldmVyeXRoaW5nIHRoYXQgd2UgdGFsayBhYm91dCBvbiB0aGlzIHBvZGNhc3QsIHRoZW4gSeKAmW0gZG9pbmcgaXQgd3JvbmcgYW5kIHlvdSBuZWVkIHRvIGxldCBtZSBrbm93IG9uIHlvdXIgbmV4dCByZXZpZXcuwqBBcyBqdXN0IGEgY29uc3RhbnQgcmVtaW5kZXIsIGlmIHlvdSB3b3VsZG7igJl0IG1pbmQgbGVhdmluZyB1cyBhIHJldmlldywgdGhhdCB3b3VsZCBiZSBzbyBncmVhdC4gWW91IGNhbiBsZWF2ZSBpdCBvbiBBcHBsZSBQb2RjYXN0cywgR29vZ2xlLCBvciB5b3UgY2FuIGV2ZW4gZW1haWwgdXMuwqAwNDowNCBGaXJzdCBwcmVnbmFuY3kgYW5kIGJpcnRoTWVhZ2FuOiBPa2F5LCBTaGFubm9uLiBVbm8sIGRvcywgdHJlc+KAkyB0aHJlZS4gSeKAmW0gc2F5aW5nIGl0IGNvcnJlY3RseSBub3cuIEFmdGVyIHRocmVlIENlc2FyZWFucywgeW91IGhhdmUgaGFkIHF1aXRlIHRoZSBkaWZmZXJlbnQgam91cm5leSB3aXRoIGVhY2ggYmlydGguwqBTaGFubm9uOiBZZWFoLiBJIHRoaW5rIGVhY2ggb25lIHRhdWdodCBtZSBhIGxpdHRsZSBiaXQgbW9yZSBhbmQgSSBwcm9iYWJseSB3YXNu4oCZdCByZWFkeSBmb3IgYSB2YWdpbmFsIGJpcnRoIHdpdGggbXkgZmlyc3QgdGhyZWUuIEkgdGhpbmsgdGhhdCB3aGlsZSBsb29raW5nIGJhY2sgb24gbXkgam91cm5leSBpdOKAmXMgZGlmZmljdWx0LCBJIHRoaW5rIGl0IGxlZCBtZSB0byB3aGVyZSBJIGFtIHRvZGF5LsKgTWVhZ2FuOiBNZSB0b28uIEnigJltIHJpZ2h0IHRoZXJlLiBBbWVuLiBTYW1lLiBJIGxvdmUgYmlydGggYW5kIEnigJl2ZSBhbHdheXMgbG92ZWQgYmlydGgsIGJ1dCBJIGRvIG5vdCB0aGluayB0aGF0IEkgd291bGQgYmUgaGVyZSByaWdodCBub3cgd2l0aCB5b3UgdG9kYXkgaWYgaXQgd2VyZW7igJl0IGZvciBteSBleHBlcmllbmNlcy7CoFNoYW5ub246IFllYWguIEkgdGhpbmsgdGhlIHNhbWUuIEnigJlsbCBnZXQgaW50byB3aGVyZSBJIGFtIG5vdyB3aGVuIHdl4oCZcmUgYWZ0ZXIgbXkgZm91cnRoLCBidXQgaGFkIGl0IG5vdCBoYXBwZW5lZCB0aGUgd2F5IGl0IGRpZCwgSSB3b3VsZG7igJl0IGJlIHdoZXJlIEkgYW0gbm93LsKgTWVhZ2FuOiBXaG8geW91IGFyZSB0b2RheS4gV2UgZ3JvdyBhbmQgd2UgbGVhcm4gYW5kIHdlIGluc3BpcmUgYW5kIGhlcmUgeW91IGFyZSBzaGFyaW5nIHlvdXIgc3RvcnkuIFNvIGxldOKAmXMgdGFsayBhYm91dCBiYWJ5IG51bWVyIG9uZS5TaGFubm9uOiBPa2F5LCBzbyBJIHdhcyAxOSB3aGVuIEkgaGFkIGhpbS4gSSBqdXN0IGFzc3VtZWQgdGhhdCBoZSB3YXMgZ29pbmcgdG8gY29tZSBvdXQgdGhhdCB3YXksIHRoYXQgaGUgd2FzIGdvaW5nIHRvIGNvbWUgb3V0IHZhZ2luYWxseS4gSXQgd2FzIGdvaW5nIHRvIGdvIHdlbGwuIFRoZXJlIHdlcmUgZ29pbmcgdG8gYmUgbm8gY29tcGxpY2F0aW9ucyBhbmQgaXQgZGlkbuKAmXQgdHVybiBvdXQgbGlrZSB0aGF0LiBJIHdhcyBkdWUgaW4gdGhlIGVuZCBvZiBNYXkgYW5kIEkgdGhpbmsgSSB3YXMgYWJvdXQgYSB3ZWVrIG92ZXIgZHVlLiBJIHdlbnQgaW50byB0aGUgZGF5IHVuaXQgaGVyZS4gSXQgd291bGQgYmUganVzdCB3aGVyZSB5b3Ugd291bGQgZ28gaWYgeW91IGhhZCBjb25jZXJucyB0aGF0IHdlcmUgc2xpZ2h0bHkgbW9yZSB0aGFuIHlvdSB3b3VsZCBnbyB0byB5b3VyIG1pZHdpZmUgZm9yIGJ1dCBub3QgZW5vdWdoIHRoYXQgeW91IHdvdWxkIG5lZWQgdG8gZ28gdG8gdGhlIGxhYm9yIHdhcmQgZm9yLsKgTWVhZ2FuOiBLaW5kIG9mIGluIGJldHdlZW4/wqBTaGFubm9uOiBZZWFoLiBIZXJlLCB5b3UgaGF2ZSBhIG1pZHdpZmUgd2hvIGlzIGFzc2lnbmVkIHRvIHlvdXIgR1Agc3VyZ2VyeSwgeW91ciBkb2N0b3JzLCBhbmQgdGhleSBhcmUgdXN1YWxseSB3aG8geW91IHNlZSB0aHJvdWdob3V0LiBJdOKAmXMgc3VwcG9zZWQgdG8gYmUgYSBjb250aW5vdXMgbWlkd2lmZSwgYnV0IGl0IGNhbiBjaG9wIGFuZCBjaGFuZ2UuIFlvdSBkb27igJl0IHNlZSB0aGF0IG1pZHdpZmUgdXN1YWxseSBpbiB0aGUgaG9zcGl0YWwgc28geW91IGRlbGl2ZXIgd2l0aCBzb21lb25lIGNvbXBsZXRlbHkgZGlmZmVyZW50LsKgTWVhZ2FuOiBPaCwgb2theS7CoFNoYW5ub246IFllYWgsIHNvIHlvdSBkb27igJl0IGdldCB0aGF0IGNvbnRpbnVpdHkgb2YgY2FyZSBpbiBsYWJvci4gU28gSSB3ZW50IHRvIHRoZSBkYXkgdW5pdCBiZWNhdXNlIEkgd2FzIGhhdmluZyBzb21lIGhpcCBwYWluLiBJdCB3YXMgcmVhbGx5IGRpZmZpY3VsdCB0byB3YWxrIGFuZCBiZWNhdXNlIEkgd2FzIG92ZXJkdWUgYW5kIEkgd2FzIGFscmVhZHkgYm9va2VkIGluIGZvciBhbiBpbmR1Y3Rpb24gcHVyZWx5IGJlY2F1c2UgSSB3YXMgb3ZlcmR1ZSwgdGhleSBicm91Z2h0IG15IGluZHVjdGlvbiBmb3J3YXJkLiBJIHRoaW5rIEkgd2FzIDggZGF5cyBvdmVyZHVlIHdoZW4gSSB3ZW50IGluLiBJIHdhcyBpbmR1Y2VkLiBJIGhhZCB0aGUgcGVzc2FyeSBpbmR1Y3Rpb24gYW5kIGl0IHdvcmtlZCBwcmV0dHkgcXVpY2tseS4gSXQgd29ya2VkIHdpdGhpbiBhYm91dCBhbiBob3VyLCBhbiBob3VyIGFuZCBhIGhhbGYuwqBNZWFnYW46IE9oIHdvdy7CoFNoYW5ub246IFRoZXkgZGlkbuKAmXQgYmVsaWV2ZSBtZS4gVGhleSB0b2xkIG1lIHRoYXQgaXQgY291bGRu4oCZdCBoYXBwZW4gdGhhdCBxdWlja2x5LsKgTWVhZ2FuOiBUaGF04oCZcyBub3Qgc3VwZXIgbm9ybWFsIGJ1dCBpdCBjYW4gaGFwcGVuLsKgU2hhbm5vbjogVGhleSBzZW50IG15IGh1c2JhbmQgaG9tZSBhbmQgbGVmdCBtZSBvbiBteSBvd24gZm9yIHRocmVlIGhvdXJzIGJlZm9yZSB0aGV5IHN1bW1vbmVkIG1lLiBJIHdhcyA1IGNlbnRpbWV0ZXJzIHdoaWNoIGlzIHdoZW4gdGhleSB0YWtlIHlvdSBvdmVyIHRvIGxhYm9yIHdhcmQuIEkgd2FzIHdoZWVsZWQgb3Zlci4gSSBjYWxsZWQgbXkgbXVtIGFuZCBteSBodXNiYW5kLsKgVGhlbiBpdOKAmXMga2luZCBvZiBhIGJpdCBmdXp6eS4gSSBkb27igJl0IHJlbWVtYmVyIGEgbG90IGZyb20gaGlzIGJpcnRoLiBJIHJlbWVtYmVyIHRoYXQgdGhleSBicm9rZSBteSB3YXRlcnMgYW5kIHRoZXJlIHdhcyBtZWNvbml1bS4gVGhleSBwdXQgdGhlIG1vbml0b3JpbmcgY2xpcCBvbiBoaXMgaGVhZC7CoE1lYWdhbjogVGhlIEZTQywgdGhlIGZldGFsIHNjYWxwIGVsZWN0cm9kZT/CoFNoYW5ub246IFllcy4gVGhleSBwdXQgdGhhdCBvbiBoaW0gYW5kIEkgd2FzIG1hbmFnaW5nIGZpbmUgb24gdGhlIGdhcyBhbmQgYWlyLsKgTWVhZ2FuOiBXYXMgaXQgbml0cmlvdXM/wqBTaGFubm9uOiBZZXMsIHllYWguwqBNZWFnYW46IE9rYXkuwqBTaGFubm9uOiBZZXMsIHRoZSBnYXMgYW5kIGFpci4gSXQgd2FzIGFib3V0IDM6MDAgaW4gdGhlIG1vcm5pbmcgYW5kIHRoZXkgdG9sZCBtZSB0aGF0IHRoZSBhbmVzdGhldGlzdCB3YXMgZ29pbmcgaG9tZSBhbmQgaWYgSSB3YW50ZWQgYW4gZXBpZHVyYWwgdGhlbiB0aGF0IHdhcyBteSBsYXN0IGNoYW5jZS4gSSBmZWx0IHByZXNzdXJlZCBzbyBJIGdvdCB0aGUgZXBpZHVyYWwuIEFsbCBzdGFsbGVkIGZyb20gdGhlcmUuIEkgZGlkbuKAmXQgbW92ZSBvZmYgdGhlIGJlZC4gSSB0aGluayBJIGdvdCB0byAxMCBjZW50aW1ldGVycyBhdCAxMDowMCB0aGUgbmV4dCBtb3JuaW5nIHNvIEnigJltIG5vdyA5IGRheXMgb3ZlcmR1ZS7CoEkgcHVzaGVkLiBOb3RoaW5nIGhhcHBlbmVkLiBUaGV5IHdoZWVsZWQgbWUgdG8gdGhlYXRyZS4gSSB0aGluayBJIHN0YXJ0ZWQgcHVzaGluZyBhdCAxMTowMCBhbmQgaGUgd2FzIGJvcm4gYXQgaGFsZiAxMjowMCBzbyBsdW5jaHRpbWUuIEhlIHdhcyBhIGJpZyBiYWJ5LiBIZSB3YXMgOSBwb3VuZHMsIDEzLsKgTWVhZ2FuOiBPa2F5LsKgMDg6MzEgU2Vjb25kIHByZWduYW5jeSBhbmQgc2NoZWR1bGVkIHJlcGVhdCBDZXNhcmVhblNoYW5ub246IFRoYXQgd2FzIHRoYXQuIEkgcmVjb3ZlcmVkIGFuZCBkaWRu4oCZdCB0aGluayBhbnl0aGluZyBvZiBpdC4gMTggbW9udGhzIGxhdGVyLCB3ZSBkZWNpZGVkIHRvIGhhdmUgb3VyIHNlY29uZC4gSSBmZWxsIHByZWduYW50IEkgdGhpbmsgd2l0aGluIHRoZSBmaXJzdCBtb250aC4gSXQgaGFwcGVuZWQgcXVpdGUgcXVpY2tseS4gSSBkaWQgbXkgcmVzZWFyY2guIEkgd2FudGVkIGEgVkJBQy4gSSBhY3R1YWxseSBnb3Qgc2lnbmVkIG9mZiBmb3IgYW4gSEJBQy5NZWFnYW46IEhvbWUgYmlydGg/wqBTaGFubm9uOiBZZXAuIEl0IHdhcyBhbGwgZ29pbmcgZmluZS4gVGhlbiBJIGdvdCB0byAzMiB3ZWVrcyBhbmQgSSBwYW5pY2tlZCBiZWNhdXNlIG15IG1vbSBpcyBvdXIgb25seSBjaGlsZGNhcmUgYW5kIHNoZSBsaXZlcyBhYm91dCBhbiBob3VyLiBJIGRpZG7igJl0IGtub3cgaG93IHF1aWNrbHkgSSB3b3VsZCBsYWJvciBiZWNhdXNlIEkgaGFkIG5ldmVyIGxhYm9yZWQgc3BvbnRhbmVvdXNseS4gSSBkaWRu4oCZdCBrbm93IHdoYXQgd2FzIGdvaW5nIHRvIGhhcHBlbi4gU28gSSBib29rZWQgYSByb3V0aW5lIHNlY3Rpb24uIFRoYXQgd2FzIGJvb2tlZCBmb3IgMzkgd2Vla3MuwqBBdCAzOCB3ZWVrcyBhbmQgMyBkYXlzLCBJIHdlbnQgaW50byBhZ2FpbiwgdGhlIGRheSB1bml0IGJlY2F1c2UgSSBoYWQgcmVkdWNlZCBtb3ZlbWVudHMuIFRoZXkgcHV0IG1lIG9uIHRoZSBtb25pdG9ycyBhbmQgaGlzIGhlYXJ0IHJhdGUgd2FzIHF1aXRlIGVycmF0aWMuIEl0IHdhc27igJl0IHNldHRsaW5nLiBJdCB3YXMgZWl0aGVyIHF1aXRlIGhpZ2ggb3IgcXVpdGUgbG93LiBUaGVyZSB3YXMgbm8gbWlkZGxlIGdyb3VuZC4gSSB0aGluayB0aGV5IHB1dCBtZSBvbiB0aGVyZSBmb3IgYWJvdXQgNCBob3VycyBhbmQgdGhleSBqdXN0IHdlcmVu4oCZdCBoYXBweSBzbyB0aGV5IGJyb3VnaHQgbXkgc2VjdGlvbiBmb3J3YXJkIHRvIHRoZSBuZXh0IGRheS7CoE1lYWdhbjogV2hlbiBJIHJlYWQgeW91ciBub3RlLCBJ4oCZbSBsaWtlLCBJIGRvbuKAmXQga25vdyB3aHksIGJ1dCB0aGF0IGdvdCBtZS4gSWYgYmFieeKAmXMgaGVhcnQgcmF0ZSBpcyB0aGF0IGVycmF0aWMgYW5kIHRoZXkgYXJlIHRoYXQgY29uY2VybmVkLCBpdCB3b3VsZCBiZSB0aGF0IGRheSBhbmQgdGhlbi7CoFNoYW5ub246IFllcCwgYnV0IHRoZXkgd2VyZSBoYXBweSBmb3IgbWUgdG8gZ28gaG9tZSBhbmQgY29tZSBiYWNrIHRoZSBuZXh0IGRheS7CoE1lYWdhbjogWWVhaC4gWWVhaC4gSXTigJlzIGp1c3QgY29udmVuaWVuY2UuIEl0IHNlZW1zLCBJIGFtIG5vdCBnb2luZyB0byBzYXksIGJ1dCBpdCBzZWVtcyBsaWtlIGl0IHdhcyBtb3JlIG9mIGxpa2UsIFdlbGwsIGl04oCZcyBhbHJlYWR5IGdvaW5nIHRvIGhhcHBlbiBzbyB3ZSB3aWxsIG1ha2UgaXQgZm9yIHRvbW9ycm93LiBXZeKAmWxsIGdpdmUgeW91IHRoaXMgYXMgYSBnb29kIHJlYXNvbiB3aHkgdG8gdmFsaWRhdGUgaXQuwqBTaGFubm9uOiBZZWFoLCBubyBJIGFncmVlIG5vdy4gQXQgdGhlIHRpbWUsIEkgZG9u4oCZdCB0aGluayBJIHRob3VnaHQgYWJvdXQgaXQgbGlrZSB0aGF0LsKgTWVhZ2FuOiBPZiBjb3Vyc2Ugbm90LCBuby7CoFNoYW5ub246IFllYWgsIGJlY2F1c2Ugd2l0aCBteSBmb3VydGgsIHdpdGggbXkgVkJBQywgSSB3ZW50IHRocm91Z2ggYSBsb3Qgb2Ygd2hhdCBoYXBwZW5lZCBiZWZvcmUuIEkgZGVmaW5pdGVseSB0aGluayBpdCB3YXMgYSBjYXNlIG9mIHRoZXkgZGlkbuKAmXQgd2FudCBtZSB0byBjb21lIGJhY2sgd2l0aCBtb3JlIHJlZHVjZWQgbW92ZW1lbnRzIGFuZCBqdXN0IHNpdCB0aGVyZSBzbyBiZWNhdXNlIHRoZSBzZWN0aW9uIHdhcyBnb2luZyB0byBoYXBwZW4gYW55d2F5LCB0aGV5IGp1c3QgdGhvdWdodOKAk8KgTWVhZ2FuOiBNaG1tLCBsZXTigJlzIGRvIGl0LiBMZXTigJlzIG1vdmUgaXQgdXAuwqBTaGFubm9uOiBZZXMuIEhlIHdhcyBib3JuIGF0IDM4IGFuZCA0LiBIZSB3YXMgMTAgZGF5cyBlYXJseSBhbmQgaGUgd2VpZ2hlZCA4IHBvdW5kcywgMTEgb3VuY2VzLiBBZ2FpbiwgaGUgd2FzIHF1aXRlIGEgZ29vZCBzaXplLsKgTWVhZ2FuOiBBdCAzOCB3ZWVrcywgeWVhaC7CoDEwOjU2IFRoaXJkIHByZWduYW5jeVNoYW5ub246IFNvIHRoZW4gd2UgZGVjaWRlZCB0byBoYXZlIGEgdGhpcmQuIEl0IHRvb2sgdXMgYSBsb25nIHRpbWUgdG8gZ2V0IHByZWduYW50IHdpdGggaGVyLiBJdCB0b29rIHVzIDE0IG1vbnRocyB3aGljaCB3YXMgb3VyIGxvbmdlc3QgY29uY2VwdGlvbi4gT3VyIGZpcnN0IG9uZSB3YXMgZm91ciBtb250aHMgYW5kIHRoZW4gYSBtb250aCBzbyBpdCB0b29rIGEgd2hpbGUuIFNoZSB3YXMgZHVlIHRoZSAxMXRoIG9mIEFwcmlsLCAyMDIwLiBJIGdvdCB0bywgSSB0aGluayBpdCB3YXMgYWJvdXQgMzAgd2Vla3Mgd2hlbiB0YWxrIG9mIHRoZSBwYW5kZW1pYyB3YXMgcm9sbGluZyBpbi7CoFdlIHdlcmUgbGlrZSwgT2gsIGl04oCZcyBmaW5lLiBXZSBkb27igJl0IG5lZWQgdG8gd29ycnkgYWJvdXQgaXQuIEFuZCB0aGVuIGl0IGFsbCBibGV3IHVwLiBJIGhhZCB0byBnbyB0byBtaWR3aWZlIGFwcG9pbnRtZW50cyBhbG9uZSwgdGhlIGhvc3BpdGFsIHNjYW5zIGFsb25lIGJlY2F1c2UgSSBoYWQgdG8gaGF2ZSBncm93dGggc2NhbnMgYmVjYXVzZSBteSBiYWJpZXMgYXJlIGJpZy7CoEV2ZXJ5dGhpbmcgd2FzIGZpbmUuIEkgZGlkIHdhbnQgYSBob21lIGJpcnRoIGFnYWluIHdpdGggaGVyLCBidXQgdGhleSBrZXB0IG1lIHdhaXRpbmcuIEkgd2FzbuKAmXQgc2lnbmVkIG9mZiB1bnRpbCAzNyB3ZWVrcy4gVGhleSBrZXB0IG1lIHdhaXRpbmcgYSBsb25nIHRpbWUgdG8gc2lnbiBtZSBvZmYgZm9yIHRoYXQsIGJ1dCBpdCB3YXMgYWxsIHNpZ25lZCBvZmYgYW5kIHdlIHdlcmUgZ29vZCB0byBnby4gSSB3YXMgZmVlbGluZyBnb29kIGRlc3BpdGUgdGhlIHBhbmRlbWljIGJlY2F1c2Ugd2Ugd2VyZSBpbiBsb2NrZG93biBieSB0aGUgdGltZSBzaGUgd2FzIGR1ZS4gSSB0aGluayB0aGUgbG9ja2Rvd24gd2FzIGNhbGxlZCBhIG1vbnRoIGJlZm9yZSBzaGUgd2FzIGJvcm4uIExvY2tkb3duIGhlcmUgZm9yIHRoZSBmaXJzdCB0aW1lIHdhcyBjYWxsZWQgb24gdGhlIDIzcmQgb2YgTWFyY2ggYW5kIHNoZSB3YXMgYm9ybiBvbiB0aGUgMjNyZCBvZiBBcHJpbC7CoEkgcmVtZW1iZXIgSSB3ZW50IGludG8gaG9zcGl0YWwgYW5kIEkgaGFkIGEgZ3Jvd3RoIHNjYW4gYXQgNDAgd2Vla3MuIFNoZSB3YXMgYWJzb2x1dGVseSBmaW5lLCBubyBpc3N1ZXMuIFNoZSB3YXMgbWVhc3VyaW5nIGZpbmUuIFRoZSB3YXRlciBsZXZlbHMgd2VyZSBmaW5lLiBUaGUgcGxhY2VudGEgbG9va2VkIGdvb2QuIFRoZXkgZ2F2ZSBtZSBhIHN3ZWVwIGFuZCBzZW50IG1lIG9uIG15IHdheSBhbmQgc2FpZCwg4oCcSSBkb27igJl0IHRoaW5rIEnigJlsbCBzZWUgeW91IG5leHQgd2Vlay4gWW914oCZbGwgaGF2ZSB0aGlzIGJhYnkgYnkgdGhlIHdlZWtlbmQu4oCdIEl0IGRpZG7igJl0IGhhcHBlbi7CoEkgZ290IHRvIDQxIHdlZWtzIGFuZCBJIHdlbnQgYmFjayBmb3IgYW5vdGhlciByb3V0aW5lIGdyb3d0aCBzY2FuLiBJIHJlbWVtYmVyIGdvaW5nIGluIHRoZSBjYXIgb24gbXkgb3duIG9idmlvdXNseSBhbmQgSSBmZWx0IGdvb2QuIEkgdGhvdWdodCB0aGF0IHRoZXkgd2VyZSBnb2luZyB0byBzYXkgdGhhdCBldmVyeXRoaW5nIHdhcyBmaW5lIGFnYWluIGFuZCB0aGF0IHRoZXkgd2VyZSBxdWl0ZSBoYXBweSBmb3IgbWUgdG8ganVzdCBjYXJyeSBvbi4gSXQgZGlkbuKAmXQgZ28gbGlrZSB0aGF0LiBJIHNob3VsZCBwcm9iYWJseSBtZW50aW9uIHRoYXQgbXkgaG9zcGl0YWzigJlzIHBvbGljeSBpcyB0aGF0IGlmIHlvdSBoYXZlbuKAmXQgaGFkIHlvdXIgYmFieSBieSA0MSBhbmQgNCwgc28gNDEgd2Vla3MgYW5kIDQgZGF5cywgdGhleSBlaXRoZXIgaW5kdWNlIHlvdSBvciB0aGV5IGdpdmUgeW91IGEgc2VjdGlvbi4gVGhhdOKAmXMgdGhlaXIgcG9saWN5LsKgSSBoYWQgdGhpcyBncm93dGggc2NhbiBhdCA0MSszLiBJIHdlbnQgaW4sIGhhZCB0aGlzIGdyb3d0aCBzY2FuLCBhbmQgSSB3YXMgb24gbXkgb3duLiBJIGRpZG7igJl0IGhhdmUgYW55IHN1cHBvcnQuIEl0IHdhcyBhYm91dCAzOjAwIGluIHRoZSBhZnRlcm5vb24uIFNoZSBzY2FubmVkIG1lLiBJbiBhIHdlZWssIG15IHBsYWNlbnRhIGhhZCBhZ2VkLiBJdCBjYWxjaWZpZWQgYW5kIGl0IHdhcyBmYWlsaW5nLiBUaG9zZSB3ZXJlIHRoZSByZWFzb25zIHNoZSBnYXZlIG1lIHRoYXQgc2hlIG5lZWRlZCB0byBnZXQgbXkgYmFieSBvdXQgdGhlIG5leHQgZGF5LiBTaGUgZ2F2ZSBtZSB0aGUgcHJlLW9wIHN3YWJzLiBTaGUgdG9vayBteSBibG9vZCBhbmQgc2hlIGJhc2ljYWxseSB0b2xkIG1lIHRvIGNvbWUgYmFjayB0aGUgbmV4dCBkYXkgYXQgMTE6MDAuwqBJIGhhZCBubyB0aW1lIHRvIHByZXBhcmUuIEkgaGFkIG5vIHRpbWUgdG8gcmVzZWFyY2guIEkgaGFkIG5vIHRpbWUgdG8gYXNrIHF1ZXN0aW9ucy4gSXQgd2FzLCDigJxUaGlzIGlzIHdoYXTigJlzIGhhcHBlbmluZy4gWW914oCZcmUgZ29pbmcgdG8gZG8gaXQu4oCdwqBNZWFnYW46IFNlZSB5b3UgdG9tb3Jyb3cuwqBTaGFubm9uOiBZZXAsIGJhc2ljYWxseS7CoE1lYWdhbjogV2FzIGJhYnnigJlzIGhlYXJ0IHJhdGUgc3RydWdnbGluZz/CoFNoYW5ub246IE5vLCBzaGUgd2FzIGZpbmUuwqBNZWFnYW46IFNoZSB3YXMgZmluZS7CoFNoYW5ub246IFNoZSB3YXMgZmluZS4gVGhlcmUgd2FzIG5vIHJlYXNvbiBhdCBhbGwuwqBNZWFnYW46IFRoYXTigJlzIGludGVyZXN0aW5nLiBPa2F5LsKgMTQ6MDQgQSBoZWFydGJyZWFraW5nIHRoaXJkIENlc2FyZWFuU2hhbm5vbjogVGhlbiBpdCB3YXMgYSBtYWQgZGFzaCB0b28gYmVjYXVzZSBJIGFtIHRoZSBvbmx5IGRyaXZlciBpbiBteSBob3VzZS4gTXkgaHVzYmFuZCBkb2VzbuKAmXQgZHJpdmUuIE9idmlvdXNseSwgaGF2aW5nIGEgc2VjdGlvbiBtZWFucyB3ZSBjYW7igJl0IGdvIGFueXdoZXJlLsKgTWVhZ2FuOiBZZWFoLCBhbmQgZHVyaW5nIHRoZSBwYW5kZW1pYyBvbiB0b3Agb2YgYWxsIG9mIGl0LsKgU2hhbm5vbjogWWVhaC4gSXQgd2FzIGEgbWFkIGRhc2ggdGhhdCBuaWdodCB0byBnZXQgZW5vdWdoIGZvb2QgaW4uIEhvdXNlIGRlbGl2ZXJpZXMgd2VyZSBsaWtlIHVuaWNvcm4gZHVzdCBzbyB0byBnZXQgZW5vdWdoIGZvb2QgaW4sIEkgaGFkIHRvIGFycmFuZ2UgY2hpbGRjYXJlIHdpdGggbXkgbW9tLiBPdGhlcndpc2UsIEkgd2FzIGRlbGl2ZXJpbmcgYWxvbmUuIEFnYWluLCBzaGUgc3RpbGwgbGl2ZXMgYW4gaG91ciBhd2F5IGluIGEgZGlmZmVyZW50IGNvdW50eS4gV2Ugd2VyZSBzdXJlIHdoYXQgdGhlIHJ1bGVzIHdlcmUgYmVjYXVzZSBoZXJlLCB5b3Ugd2VyZW7igJl0IGFsbG93ZWQgdG8gY3Jvc3MgY291bnR5IGxpbmVzLsKgTWVhZ2FuOiBPaCBubyB3YXkuwqBTaGFubm9uOiBZZXAuIEl0IHdhcyBkaWZmaWN1bHQuIFNoZSBkaWQgY29tZSB1cCBhbmQgc2hlIGRpZCBsb29rIGFmdGVyIHRoZSBib3lzLiBJIGRpZCBzZWUgaGVyIGJlZm9yZSBJIHdlbnQgaW50byBkZWxpdmVyeSwgYnV0IEkgZGlkbuKAmXQgc2VlIGhlciBhZ2FpbiB1bnRpbCBiYWJ5IHdhcyA2IHdlZWtzIG9sZC4gU2hlIGhhZCBnb25lIGhvbWUgYnkgdGhlIHRpbWUgSSBjYW1lIGhvbWUgc28gdGhhdCB3YXMgZGlmZmljdWx0LsKgSSB3ZW50IGluLiBJIHRoaW5rIEkgZ290IHRvIHRoZSBob3NwaXRhbCBhdCAxMTowMC4gSSB3YXMgcHVsbGVkIGRvd24gdG8gdGhlYXRyZSBhdCAyOjAwIGFuZCBiYWJ5IHdhcyBib3JuIGF0IDMgbWludXRlcyBwYXN0IDM6MDAgaW4gdGhlIGFmdGVybm9vbi4gU2hlIHdlaWdoZWQgOSBwb3VuZHMsIDQgb3VuY2VzLCBzbyBhZ2Fpbiwgc2hlIHdhcyBhIGdvb2Qgc2l6ZS7CoEkgZ290IGJhY2sgdG8gdGhlIHJlY292ZXJ5IHdhcmQuIE15IGh1c2JhbmQgc3RheWVkIHdpdGggdXMgZm9yIGFuIGhvdXIgYW5kIHRoZW4gaGUgbGVmdC4gSGUgd2FzbuKAmXQgYWxsb3dlZCB0byBjb21lIGJhY2suIEkgc3RpbGwgaGFkIG15IGNhdGhldGVyIGluLiBJIHdhcyBzdGlsbCBudW1iLiBNeSBwaG9uZSB3YXMgZGVhZCBhbmQgSSB3YXMganVzdCBsZWZ0IGJlY2F1c2UgSSBjb3VsZG7igJl0IGdldCBhbnl0aGluZy4gRXZlcnkgdGltZSB5b3UgaGFkIHRvIGNhbGwgYSBtaWR3aWZlIGluLCB0aGV5IGhhZCB0byBwdXQgaW4gbmV3IFBQRSBvbiBhbmQgaXQganVzdCB0b29rIHNvIG11Y2ggbG9uZ2VyLsKgSSBkaWRu4oCZdCBnZXQgd2hlZWxlZCBhcm91bmQgdG8gdGhlIGFjdHVhbCByZWNvdmVyeSB3YXJkIHVudGlsIGFib3V0IDE6MDAgaW4gdGhlIG1vcm5pbmcuIFRoZXkgYWRtaXR0ZWQgdG8gbWUgdGhhdCB0aGV5IGhhZCBmb3Jnb3R0ZW4gYWJvdXQgbWUuIEkgd2FzIGp1c3QgaW4gdGhpcyByb29tIG9uIG15IG93bi7CoE1lYWdhbjogSeKAmW0gc28gc29ycnkuwqBTaGFubm9uOiBZZWFoLiBUaGV5IHdoZWVsZWQgbWUgaW50byByZWNvdmVyeS4gSSBzdGlsbCBoYWQgdGhlIGNhdGhldGVyIGluLiBUaGF0IGRpZG7igJl0IGNvbWUgb3V0IHVudGlsIDc6MDAgdGhlIG5leHQgbW9ybmluZyBzbyBJIHdhcyBiZWQtYm91bmQgd2l0aCB0aGlzIG5ldyBiYWJ5LiBUaGV5IGNhbWUgYXJvdW5kIGFuZCB0b29rIG15IG9ic2VydmF0aW9ucy4gTXkgdGVtcGVyYXR1cmUgd2FzIHJhaXNlZCB3aGljaCBpcyBub3JtYWwgYWZ0ZXIgYSBzZWN0aW9uLCBidXQgSSB3YXMgdG9sZCB0aGF0IEkgbWlnaHQgaGF2ZSBDT1ZJRCwgdGhhdCBteSBiYWJ5IG1pZ2h0IGhhdmUgQ09WSUQuIEkgd291bGQgbmVlZCB0byBiZSBzZXBhcmF0ZWQgZnJvbSBteSBiYWJ5IGFuZCB3ZSB3b3VsZG7igJl0IGJlIGFibGUgdG8gbGVhdmUgdGhlIGhvc3BpdGFsIGZvciAzIGRheXMuwqBNZWFnYW46IFN0b3AgaXQuwqBTaGFubm9uOiBObywgaG9uZXN0bHkuwqBNZWFnYW46IEkgYW0gZmVlbGluZyB2ZXJ5IGZydXN0cmF0ZWQgZm9yIHlvdSByaWdodCBub3cgYW5kIHZlcnkgc2FkZGVuZWQuIFllYWguIEkgZmVlbCBhIGxpdHRsZSBlbnJhZ2VkIGJlY2F1c2UgdGhpcyBzaG91bGRu4oCZdCBoYXZlIGhhcHBlbmVkLiBUaGVzZSB0aGluZ3MgZGlkbuKAmXQgbmVlZCB0byBoYXBwZW4gdG8gcGVvcGxlLsKgU2hhbm5vbjogSSBrbm93IGFuZCB0aGUgbW9yZSB0aGF0IEkgdGFsayB0byBvdGhlciBwZW9wbGUgd2hvIGhhdmUgaGFkIGJhYmllcyBkdXJpbmcgdGhlIHBhbmRlbWljLCBpdOKAmXMgbm90IHVudXN1YWwgZWl0aGVyLsKgTWVhZ2FuOiBObywgaXTigJlzIG5vdC4gSXTigJlzIG1hZGRlbmluZy7CoFNoYW5ub246IEl0IGlzLiBJdOKAmXMgc3RyYW5nZSBub3cgdG8gdGFsayBhYm91dCBpdCB3aXRob3V0IGVpdGhlciBmaWxsaW5nIHVwIG9yIGFjdHVhbGx5IGNyeWluZyBiZWNhdXNlIGl0IGhhcyB0YWtlbiBtZSBhIGxvbmcgdGltZSB0byBnZXQgdG8gdGhpcyBwb2ludC7CoE1lYWdhbjogVG8gcHJvY2Vzcy7CoFNoYW5ub246IFllYWguIFNoZSBzYWlkIHNoZSB3b3VsZCBjb21lIGJhY2sgaW4gYW4gaG91ci4gSSByZW1lbWJlciwgb2J2aW91c2x5LCBJIGhhZCBteSBjYXRoZXRlciBpbiBzbyBJIGRpZG7igJl0IGhhdmUgdG8gZ2V0IHVwIGFuZCBnbyB0byB0aGUgdG9pbGV0LiBJIHdhcyBqdXN0IGRvd25pbmcgd2F0ZXIgdHJ5aW5nIHRvIGdldCBteSB0ZW1wZXJhdHVyZSBkb3duLsKgU2hlIGNhbWUgYmFjayBhdCA0OjAwIGFuZCBJIGRpZCBnZXQgbXkgdGVtcGVyYXR1cmUgZG93biBiZWNhdXNlIEkgZGlkbuKAmXQgaGF2ZSBDT1ZJRC7CoEl0IHdhcyBhIHN0cmFuZ2UgZXhwZXJpZW5jZS4gVGhlcmUgd2VyZSBzaXggYmVkcyBpbiB0aGlzIHdhcmQsIGJ1dCBJIHdhcyBvbiB0aGUgZW5kIGJlZCBhbmQgdGhlcmUgd2FzIGEgd29tYW4gZGlhZ29uYWxseSB0byBtZSBhbmQgdGhlcmUgd2FzIGEgd29tYW4gdHdvIGJlZHMgb3ZlciBhbmQgdGhhdCB3YXMgaXQuIFRoZXJlIHdhcyBubyBvbmUgZWxzZSB0aGVyZS4gSXQgd2FzIGVlcmllLiBJdCBnb3QgdG8gdGhlIHBvaW50IHdoZXJlIEkgY291bGRu4oCZdCBkbyBpdCBhbnltb3JlIHNvIDI2IGhvdXJzIGFmdGVyIG15IGJhYnkgd2FzIGJvcm4sIEkgZGlzY2hhcmdlZCBteXNlbGYgYW5kIEkgd2VudCBob21lLiBJIHdhcyBub3Qgc3RheWluZyBpbiB0aGVyZSBhbnkgbG9uZ2VyLsKgMTc6NDIgUG9zdHBhcnR1bSBkdXJpbmcgQ09WSURTaGFubm9uOiBFdmVuIGFmdGVyIHRoYXQsIEkgZ290IGhvbWUgYW5kIEkgc3BlbnQgdGhlIGZpcnN0IHdlZWsgaW4gdGVhcnMuIE1vdGhlcmhvb2Qgd2FzbuKAmXQgbmV3IHRvIG1lLiBTaGUgd2FzIG15IHRoaXJkIGJhYnksIGJ1dCBnaXZpbmcgYmlydGggZHVyaW5nIGEgcGFuZGVtaWMgd2FzIGEgY29tcGxldGVseSBkaWZmZXJlbnQgZXhwZXJpZW5jZS4gSSBkb27igJl0IGtub3cgd2hhdCBpdOKAmXMgbGlrZSBvdmVyIHRoZXJlLCBidXQgaGVyZSB5b3UgaGF2ZSBhIG1pZHdpZmUgY2hlY2sgaW4gYXQgZGF5IDMgYW5kIGRheSA1IGFuZCB0aGVuIHlvdSBnZXQgc2lnbmVkIG9mZiBhdCBkYXkgMTAgYnkgdGhlIG1pZHdpZmUgdGhlbiB5b3UgZ2V0IHNlbnQgdG8gYSBoZWFsdGggdmlzaXRvciB3aG8gdGhlbiBsb29rcyBhZnRlciB5b3UgdW50aWwgeW91ciBiYWJ5IGlzIGFib3V0IDUgdGhlbiB0aGV5IGdvIHRvIHNjaG9vbC7CoE1lYWdhbjogV293LCBJIGxpa2UgdGhhdC4gV2UgZG8gbm90IGhhdmUgdGhhdC4gV2UgYXJlIGp1c3QgdG9sZCwg4oCcV2XigJlsbCBzZWUgeW91IGluIDYtOCB3ZWVrcy4gU2VlIHlhLuKAncKgU2hhbm5vbjogT2guwqBNZWFnYW46IFRoZW4geW91IGp1c3QgZ28gaG9tZS4gWWVhaC4gSXTigJlzIHZlcnkgZGlmZmVyZW50IGZvciBhIGxvdCBvZiBob21lLWJpcnRoIHBlb3BsZSwgYnV0IHRoYXTigJlzIGhvdyB0aGUgaG9zcGl0YWwgaXMuIEl04oCZcyBsaWtlLCDigJxXZeKAmWxsIHNlZSB5b3UgaW4gNi04IHdlZWtzIGFuZCB3ZeKAmWxsIHNlZSB5b3UgdGhlbi7igJ0gVGhhdOKAmXMgcmVhbGx5IGl0LsKgU2hhbm5vbjogVGhhdOKAmXMgaW50ZXJlc3RpbmcuIEkgZGlkbuKAmXQga25vdyB0aGF0LsKgTWVhZ2FuOiBZZWFoLiBJdOKAmXMgbm90IGdyZWF0LsKgU2hhbm5vbjogTm8uIFNvIG9uIGRheSAzIGFuZCBkYXkgNSwgSSBoYWQgdG8gZ28gdG8gYSBjbGluaWMuIFRoZXkgdXN1YWxseSBnbyB0byB5b3VyIGhvdXNlIGVzcGVjaWFsbHkgaWYgeW914oCZdmUgaGFkIGEgc2VjdGlvbiwgYnV0IGJlY2F1c2Ugb2YgdGhlIHBhbmRlbWljLCBJIGhhZCB0byBnbyB0aGVyZSwgYW5kIGJlaW5nIHRoZSBvbmx5IGRyaXZlcuKAkyBteSBodXNiYW5kIGNhbiBkcml2ZS7CoE1lYWdhbjogWW91IGNhbuKAmXQgZXZlbiBkcml2ZSBhZnRlciBhIHNlY3Rpb24sIHJlYWxseS7CoFNoYW5ub246IE15IGh1c2JhbmQgY2FuIGRyaXZlIGJ1dCB3ZSBoYWQgdG8gc3RpY2sgdGhlIG9sZCBwbGF0ZXMgb24uIFdlIG1hZGUgaXQgdGhlcmUgYnV0IGl0IHdhc27igJl0IGdyZWF0LsKgWWVhaCwgd2UgZGlkIHRoYXQuIFdlIGRvIGhhdmUgYSA2LXdlZWsgY2hlY2suIEl04oCZcyB3aXRoIGEgZG9jdG9yLiBUaGF0IHdhcyBvdmVyIHRoZSBwaG9uZSBhbmQgdGhlbiB5b3UgZ2V0IGludHJvZHVjZWQgdG8geW91ciBoZWFsdGggdmlzaXRvci4gTm9ybWFsbHksIHRoZXkgY29tZSBvdmVyIHRvIHlvdXIgaG91c2UuIFRoYXQgd2FzIG9uIHRoZSBwaG9uZS7CoEFuZCB0aGVuIHRoYXQgd2FzIGl0LiBXZSB3ZXJlIGp1c3QgbGVmdC4gTm8gb25lIG1ldCBoZXIgdW50aWwgc2hlIHdhcyA2IHdlZWtzIG9sZC4gU2hlIHdhcyB0aGUgZmlyc3QgZ3JhbmRkYXVnaHRlciBiZWNhdXNlIEnigJltIHRoZSBvbGRlc3QgYW5kIG15IGh1c2JhbmQgaXMgYW4gb25seSBjaGlsZC4gU2hlIHdhcyB0aGUgZmlyc3QgZ3JhbmRkYXVnaHRlciBhZnRlciB0d28gYm95cy4gTm8gb25lIG1ldCBoZXIgdW50aWwgc2hlIHdhcyA2IHdlZWtzIG9sZC4gSSBzcGVudCB0aGUgZmlyc3Qgd2VlayBpbiB0ZWFycyB0cnlpbmcgdG8gcHJvY2VzcyBldmVyeXRoaW5nIHRoYXQgaGFwcGVuZWQuIEl0IHdhcyBhIGRpZmZpY3VsdCB0aW1lLsKgQWZ0ZXIgdGhhdCwgd2Ugc2FpZCB3ZSBkaWRu4oCZdCB3YW50IGFub3RoZXIgb25lIHNvIHdlIGxvY2tlZCBpdCBhd2F5IHNvbWV3aGVyZSBhbmQgZGlkbuKAmXQgZGVhbCB3aXRoIGl0LsKgMTk6NTUgRm91cnRoIHByZWduYW5jeVNoYW5ub246IEFuZCB0aGVuIHdlIGRlY2lkZWQgdG8gaGF2ZSBhIGZvdXJ0aC4gSSBoYWQgdG8gY29tZSB0byB0ZXJtcyB3aXRoIGl0LsKgVGhpcyBpcyB0aGUgcmVhc29uIHdoeSBJ4oCZbSBoZXJlIG5vdy4gSSBmb3VuZCBvdXQgSSB3YXMgcHJlZ25hbnQgaW4gT2N0b2JlciAyMDIyLiBJdCB3YXMgYSBkaWZmaWN1bHQgam91cm5leSB0byBnZXQgbXkgVkJBQy4gSXQgd2FzIHRoZSBiaWdnZXN0IGZpZ2h0IHRoYXQgSeKAmXZlIGV2ZXIgaGFkIHRvIGRvLiBXaGVuIHlvdSBmaW5kIG91dCB5b3XigJlyZSBwcmVnbmFudCwgeW91IGNvbnRhY3QgeW91ciBHUCBzdXJnZXJ5IGFuZCB0aGVuIHlvdSBhcmUgYXNzaWduZWQgYSBtaWR3aWZlLsKgVGhlIG1pZHdpZmUgSSBoYWQgdGhpcyB0aW1lIHdhcyB0aGUgc2FtZSBvbmUgSSBoYWQgd2l0aCBteSB0aGlyZCBwcmVnbmFuY3ksIGJ1dCB0aGUgZmlyc3QgYXBwb2ludG1lbnQsIHNoZSB3YXMgYWN0dWFsbHkgb2ZmIHNvIEkgc2F3IHNvbWVvbmUgY29tcGxldGVseSBkaWZmZXJlbnQgYW5kIHNoZSB3YXMgaG9ycmlibGUuwqBJIG9ubHkgbGl2ZSA5IG1pbnV0ZXMgZnJvbSB0aGUgaG9zcGl0YWwuwqBNZWFnYW46IFRoYXTigJlzIHJlYWxseSBjbG9zZS7CoFNoYW5ub246IFdlbGwsIEkga25vdyBmcm9tIGxpc3RlbmluZyB0byB5b3VyIHBvZGNhc3QgdGhhdCB3b21lbiB0cmF2ZWwgZm9yIGhvdXJzLsKgTWVhZ2FuOiBXYXkgZmFyLCB5ZWFoLiBMaWtlIHRvIG90aGVyIGNvdW50cmllcyBzb21ldGltZXMgZXZlbi7CoFNoYW5ub246IFllcCwgYnV0IDkgbWludXRlcyB3YXMgdG9vIGZhciBmb3IgdGhlbS4gU2hlIHNhaWQgdGhhdCA5IG1pbnV0ZXMgd2FzIHRvbyBmYXIuIFRoZSBwYXJhbWVkaWNzIG1pZ2h0IG5vdCBnZXQgdG8gbWUgaW4gdGltZS4gSWYgSSBibGVlZCBvdXQsIEnigJltIGdvaW5nIHRvIGRpZS4gSWYgYmFieSBnZXRzIHN0dWNrLCBJ4oCZbSBnb2luZyB0byBkaWUuIEnigJltIHB1dHRpbmcgbXkgYmlydGggZXhwZXJpZW5jZSBvdmVyIGEgbGl2ZSBiYWJ5Lk9idmlvdXNseSwgdGhleSBrbm93IEkgY2FyZSBhYm91dCB0aGUgc2FmZXR5IG9mIG15IGJhYnkgYnV0IHRoYXTigJlzIG9idmlvdXNseSB0aGVpciBqb2IuIEkgbGVmdCB0aGF0IGFwcG9pbnRtZW50IGluIHRlYXJzLiBJdCB3YXMgYSBncmVhdCBzdGFydC4gSXQgZGlkbuKAmXQgaW1wcm92ZSBmcm9tIHRoZXJlLCByZWFsbHkuwqBJIHRoaW5rIHNwZW50IHRoZSBuZXh0LCBJIHRoaW5rIHlvdXIgYm9va2luZy1pbiBhcHBvaW50bWVudCBpcyBhYm91dCA4LTEwIHdlZWtzIHNvIEkgdGhlbiBzcGVudCB0aGUgbmV4dCAzMCB3ZWVrcyBsaXN0ZW5pbmcgdG8geW91ciBwb2RjYXN0LCBhbmQgcmVzZWFyY2hpbmcgc3RhdHMsIHJpc2tzLCBiZW5lZml0cywgYW5kIHBlcmNlbnRhZ2VzLiBJIGxpdmVkLCBicmVhdGhlZCwgYW5kIHNsZXB0IHN0YXRpc3RpY3MgZm9yIFZCQUNzIGJlY2F1c2Ugc2hlIHByb2JhYmx5IDk5JSBpcyBvdXIgbGFzdCBiYWJ5LiBXZeKAmXZlIG5vdyBnb3QgdHdvIG9mIGVhY2ggc28gd2UgZG9u4oCZdCBuZWVkIGFueSBtb3JlLsKgSSBrbmV3IHRoYXQgdGhpcyB3YXMgbXkgbGFzdCBjaGFuY2UgdG8gZ2V0IHRoZSBiaXJ0aCB0aGF0IEkgd2FudGVkLiBPZmYgdGhlIGJhY2sgb2YgbXkgYm9va2luZy1pbiBhcHBvaW50bWVudCwgdGhleSByZWZlcnJlZCBtZSB0byB0aGUgY29uc3VsdGluZyBtaWR3aWZlIGF0IHRoZSBob3NwaXRhbC4gU2hlIGlzIGhpZ2hlciB1cCB0aGFuIGEgY29tbXVuaXR5IG1pZHdpZmUgb3IganVzdCBhIG1pZHdpZmUgb24gdGhlIHdhcmQgYnV0IG5vdCBxdWl0ZSB0aGUgaGVhZCBvZiBtaWR3aWZlcnkuIFNoZeKAmXMga2luZCBvZiBzb21ld2hlcmUgaW4gdGhlIG1pZGRsZS4gSSBoYWQgYSBmZXcgYXBwb2ludG1lbnRzIHdpdGggaGVyIGFuZCB3aGlsZSBpdCB3YXMgYmVuZWZpY2lhbCwgaXQgc3RpbGwgZmVsdCBsaWtlIEkgd2FzIGJhbmdpbmcgbXkgaGVhZCBhZ2FpbnN0IGEgYnJpY2sgd2FsbCBiZWNhdXNlIHNoZSB3YXNu4oCZdCBsaXN0ZW5pbmcgdG8gd2hhdCBJIHdhbnRlZC7CoEV2ZXJ5IHRpbWUgSSB3b3VsZCBjb21lIGJhY2sgd2l0aCBhIHN0YXRpc3RpYyBvciBhIHJpc2sgdGhhdCBzaGUgaGFk4oCTIGxpa2UgaWYgSSBjb3JyZWN0ZWQgaGVyLCB0aGVuIEnigJlkIGp1c3QgZ2V0IGEg4oCcTWhtbSwgeWVhaC4gT2theSzigJ0gb3IgYSBwYXRyb25pemluZyBub2QuwqBNZWFnYW46IExpa2UsIFllYWgsIHN1cmUuIFlvdSB0aGluayB5b3Uga25vdyB3aGF0IHlvdeKAmXJlIHRhbGtpbmcgYWJvdXQgYnV0IHlvdSBkb27igJl0LsKgU2hhbm5vbjogWWVhaCwga2luZCBvZi4gQXQgdGhpcyBwb2ludCwgSSB3YXMgMjgsIGEgbW90aGVyIG9mIHRocmVlIGFuZCBJIHdhcyBhYm91dCB0byBoYXZlIG15IGZvdXJ0aC4gVGhleSB3ZXJlIHRyZWF0aW5nIG1lIGxpa2UgYSBjaGlsZCBvciB0aGF04oCZcyB3aGF0IGl0IGZlbHQgbGlrZSBhbnl3YXkuwqBTbyBJIHdlbnQgdG8gZXZlcnkgYXBwb2ludG1lbnQga25vd2luZyB0aGF04oCZcyB3aGF0IEkgd2FudGVkLiBJIHJlYWQgb2ZmIG15IHN0YXRzLCBteSByaXNrcywgbXkgcGVyY2VudGFnZXMgYW5kIHRvbGQgdGhlbSBJIHdhbnRlZCBhIGhvbWUgYmlydGguIFRoZXkgYWdhaW4gd2VyZW7igJl0IGZvciBpdC4gVGhleSB0cmllZCBldmVyeXRoaW5nIHRoZXkgY291bGQgdG8gZ2V0IG1lIGludG8gdGhlIGhvc3BpdGFsLsKgV2UgaGF2ZSBhIG1pZHdpZmUtbGVkIHVuaXQgYW5kIHdlIGhhdmUgdGhlIGxhYm9yIHdhcmQuIFRoZSBsYWJvciB3YXJkIGlzIG1vcmUgZm9yIG9yZGluYXJ5IGJpcnRocyBsaWtlIGlmIHlvdSBhcmUgZ29pbmcgZm9yIHRoZSBlcGlkdXJhbCBhbmQgeW91IHdhbnQgdGhlIG1vcmUgaG9zcGl0YWxpemVkIGJpcnRoIHdoZXJlYXMgdGhlIG1pZHdpZmUtbGVkIHVuaXQgaXMgbW9yZSBvZiBhIGhhbmRzLW9mZi4gVGhhdOKAmXMgdXN1YWxseSB3aGVyZSB0aGUgYmlydGggcG9vbCBpcy7CoE1lYWdhbjogSWYgeW91IHdhbnQgbW9yZSBvZiBhIG1lZGljYXRlZCB2ZXJzdXMgdW5tZWRpY2F0ZWQsIHRob3NlIGFyZSB0aGUgZGlmZmVyZW5jZXMgaGVyZS7CoFNoYW5ub246IEFzIGEgVkJBQyBhZnRlciB0aHJlZSBzZWN0aW9ucywgbm9ybWFsbHkgdGhlcmUgd291bGQgYmUgbm8gd2F5IG9uIGVhcnRoIHRoYXQgdGhleSB3b3VsZCBoYXZlIHNpZ25lZCBtZSBvZmYgZm9yIHRoZSBtaWR3aWZlLWxlZCB1bml0LiBJIHdhcyB0b28gaGlnaCByaXNrLiBIb3dldmVyLCB0byBnZXQgbWUgaW50byB0aGUgaG9zcGl0YWwsIHRoZXkgc2lnbmVkIG1lIG9mZiBmb3IgdGhlIG1pZHdpZmUtbGVkIHVuaXQuwqBNZWFnYW46IE51aC11aC7CoFNoYW5ub246IFllYWguIFRoYXTigJlzIHRoZSBvcHRpb24gdGhleSBnYXZlIG1lIGJlY2F1c2UgSSB3YXMgY2xvc2UgZW5vdWdoIGlmIHRoZXJlIHdhcyBhbiBlbWVyZ2VuY3ksIGJ1dCBJIHdhc27igJl0IHRvbyBmYXIgYXdheS4gVGhhdCB3YXMgdGhlaXIgdHJ1bXAgY2FyZC7CoE1lYWdhbjogT2theSwgb2theS7CoDI0OjM3IEdldHRpbmcgYW1idXNoZWRTaGFubm9uOiBJIHN0aWxsIHNhaWQgbm8uIEkgc3RpbGwgd2FudGVkIGEgaG9tZSBiaXJ0aCBiZWNhdXNlIHRoYXQgaG9zcGl0YWwgd2FzIHRoZSBvbmUgSSBoYWQgbXkgZGF1Z2h0ZXIgYXQgZHVyaW5nIHRoZSBwYW5kZW1pYyBhbmQgSSBkaWQgbm90IHRydXN0IGFueSBvZiB0aGVtIGFmdGVyIGJlaW5nIGxpZWQgdG8gYnkgdGhlIGNvbnN1bHRhbnQgYW5kIGNvZXJjZWQgaW50byBoYXZpbmcgdGhhdCB0aGlyZCBzZWN0aW9uLiBJIGp1c3QgZGlkbuKAmXQgdHJ1c3QgdGhlbSB0byBkbyB3aGF0IEkgd2FudGVkLsKgTWVhZ2FuOiBZZWFoLiBJdCBtYWtlcyBzZW5zZS7CoFNoYW5ub246IFBhcmRvbj/CoE1lYWdhbjogSSBzYWlkIGl0IG1ha2VzIHNlbnNlIHRoYXQgeW91IGRpZG7igJl0IGZlZWwgdGhhdCB0aGV5IHdlcmUgY29tcGxldGVseSB0cnVzdHdvcnRoeS7CoFNoYW5ub246IFNvIHRoZW4gSSBnb3QgdG8gMzYgd2Vla3MgYW5kIEkgaGFkIGEgcm91dGluZSBtaWR3aWZlIGFwcG9pbnRtZW50IGF0IDM2IHdlZWtzLiBJIHdhbGtlZCBpbnRvIHRoZSByb29tIGFuZCBteSBtaWR3aWZlIHdhcyB0aGVyZSBidXQgc28gd2FzIHRoZSBoZWFkIG9mIGNvbW11bml0eSBtaWR3aWZlcnkuIEkgd2FzbuKAmXQgdG9sZCBzaGUgd2FzIGdvaW5nIHRvIGJlIHRoZXJlLiBJIHdhcyBhbWJ1c2hlZC7CoFNoZSBiYXNpY2FsbHkgc2FpZCB0byBtZSB0aGF04oCTIEkgaGF2ZSBpdCB3cml0dGVuIGRvd24gYmVjYXVzZSBJIG1hZGUgYSBwb3N0IGF0IHRoZSB0aW1lLiBTaGUgc2FpZCB0aGF0IGJhc2ljYWxseSwgbXkgYmFieSB3b3VsZCBkaWUgaWYgSSBjYXJyaWVkIG9uIHdpdGggbXkgcGxhbnMgdG8gaG9tZSBiaXJ0aCwgdGhhdCB0aGVyZSB3YXMgYSByaXNrIG9mIHNob3VsZGVyIGR5c3RvY2lhLCBhbmQgaGVtb3JyaGFnZSB0aGF0IHdvdWxkIGJvdGggcmVzdWx0IGluIGRlYXRoLiBBIGRlbGF5IGluIHRoZSBwYXJhbWVkaWNzIGdldHRpbmcgdG8gbWUgc28gdGhhdCB3b3VsZCBiZSBkZWF0aC4gSSBkaWRu4oCZdCB3YW50IGEgY2FubnVsYSBpbnNlcnRlZCBhcyBhIHJvdXRpbmUgYXQgdGhlIGhvc3BpdGFsIHNvIHRoYXQgd291bGQgYmUgYSByaXNrIGZhY3Rvci4gSSBoYXZlIGEgaGlnaCBCTUkgc28gYWdhaW4sIHRoYXQgZ29lcyBhZ2FpbnN0IG1lIGFuZCB0aGV5IHNhaWQgSSBoYWQgbG93IGlyb24gYmVjYXVzZSBJIHdhcyByZWZ1c2luZyBibG9vZCB0ZXN0cyBzbyB0aGF0IGFnYWluIHdhcyBzb21ldGhpbmcgdGhhdCB3ZW50IGFnYWluc3QgbWUuwqBJIHdhcyB0b2xkIHRoYXQgaWYgSSBoZW1vcnJoYWdlZCBhbmQgbG9zdCBhcm91bmQgdHdvIHBpbnRzIG9mIGJsb29kIHRoYXQgSSB3b3VsZCBkaWUsIHRoYXQgbXkgdmVpbnMgd291bGQgaGF2ZSBzaHJ1bmsgc28gdGhleSB3b3VsZG7igJl0IGJlIGFibGUgdG8gZ2V0IGEgY2FubnVsYSBpbiBtZS4gSSB3YXMgdG9sZCB0aGF0IHRoZXkgd2FudGVkIHRvIHNlbmQgdGhyZWUgbWlkd2l2ZXMgdG8gbXkgYmlydGguIFRoZXkgbm9ybWFsbHkgc2VuZCB0d28gYnV0IGZvciBzb21lIHJlYXNvbiwgdGhleSB3YW50ZWQgdGhyZWUuwqBJIHdhcyB0b2xkIHRoYXQgbXkgcHJldmlvdXMgZXhwZXJpZW5jZSBzaG91bGQgYmUgcHV0IHRvIG9uZSBzaWRlIGJlY2F1c2UgaXQgaGFwcGVuZWQgZHVyaW5nIENPVklEIGFuZCBpdOKAmXMgbm90IHJlcHJlc2VudGF0aXZlIG9mIGhvdyBpdCBpcyBub3cuIEkgd2FzIHRvbGQgdGhhdCBJIHdhcyBtYWtpbmcgdGhlIGVudGlyZSBtaWR3aWZlcnkgdHdpdGNoeS7CoE1lYWdhbjogT2ggbXkuwqBTaGFubm9uOiBPaCwgdGhlIG1pZHdpZmUgSSBzYXcgYXQgdGhlIGZpcnN0IGFwcG9pbnRtZW50LCB0aGUgb25lIHdobyBtYWRlIG1lIGNyeSwgc2hlIHdhcyBvbmUgb2YgdGhlIG9uZXMgd2hvIHdhcyBvbiBjYWxsIGFuZCB0aGV5IHRvbGQgbWUgaWYgc2hlIHdhcyBvbiBjYWxsLCB3b3VsZCBJIGdvIHRvIGhvc3BpdGFsIGFuZCBJIHNhaWQsIOKAnE1heWJlLuKAnSBJbiBteSBtaW5kLCBJ4oCZbSB0aGlua2luZyB0aGF0IHRoZXkgd2VyZSB0cnlpbmcgdG8gcHV0IGhlciBvbiByb3RhdGlvbiB0byBnZXQgbWUgaW50byBob3NwaXRhbC7CoE1lYWdhbjogU25lYWt5LsKgU2hhbm5vbjogWWVwLiBJIHdhcyB0b2xkIHRoYXQgdGhlIGhlYWQgb2YgY29tbXVuaXR5IG1pZHdpZmVyeeKAmXMgcmVzcG9uc2liaWxpdHkgaXMgdG8gbWFrZSBzdXJlIEnigJltIGNvbWZvcnRhYmxlIHdpdGggdGhlIHJpc2tzIGJ1dCBpdOKAmXMgYWxzbyBoZXIgcmVzcG9uc2liaWxpdHkgdG8gbWFrZSBzdXJlIGhlciBtaWR3aWZlcnkgdGVhbSBpc27igJl0IHRyYXVtYXRpemVkIGJ5IG15IGJpcnRoLiBJIHdhcyBhbHNvIHRvbGTigJMgb2gsIHRoZXkgd2FudGVkIG15IGh1c2JhbmQgdG8gYmUgYXQgdGhlIGhvbWUgYmlydGggYXNzZXNzbWVudCBhcyBpdOKAmXMgdGhlaXIgcmVzcG9uc2liaWxpdHkgdG8gbWFrZSBzdXJlIGhlIGlzIGF3YXJlIG9mIHRoZSByaXNrcyBvZiBkZWF0aCBzbyBoZSBpcyBub3QgdHJhdW1hdGl6ZWQgbGlrZSBJIGhhZG7igJl0IHNwb2tlbiB0byBoaW0gYWJvdXQgYW55IG9mIHRoaXMuwqBNZWFnYW46IE9oIG15IGdvc2guIE9oIG15IGdvc2guwqBTaGFubm9uOiBPbiBteSB3YXkgb3V0IG9mIHRoYXQgYXBwb2ludG1lbnQsIG15IG1pZHdpZmUsIHRoZSBvbmUgd2hvIGhhZCBzdXBwb3J0ZWQgbWUgYXMgYmVzdCBhcyBzaGUgY291bGQgc2FpZCB0byBtZSB0aGF0IHNoZSBjYW7igJl0IHdhaXQgdW50aWwgSSBnaXZlIGJpcnRoIHNvIHRoYXQgaXTigJlzIGFsbCBvdmVyLsKgVGhhbmsgeW91LsKgTWVhZ2FuOiBPaCBteSBnb3NoLsKgU2hhbm5vbjogWWVhaC4gU28gdGhhdCB3YXMgdGhhdC7CoE1lYWdhbjogV293LiBXaGF0IGEgd2F5IHRvIGZlZWwgbG92ZWQuwqBTaGFubm9uOiBJIGtub3cuIEFnYWluLCBJIGhhZCB0byBnbyB0byB0aGVzZSBhcHBvaW50bWVudHMgYWxvbmUgYmVjYXVzZSBteSBodXNiYW5kIHdhcyBob21lIHdpdGggdGhlIHRocmVlIGtpZHMsIGFuZCBteSBtb20sIGFnYWluLCBsaXZlcyBhbiBob3VyIGF3YXkuIEkgZG9u4oCZdCBoYXZlIHRoZSBzdXBwb3J0IGhlcmUgc28gSSBoYWQgdG8gZ28gdG8gdGhlc2UgYXBwb2ludG1lbnRzIG9uIG15IG93biBhbmQgdG8gYmUgZmFjZWQgd2l0aCB0d28gbWlkd2l2ZXMgd2hvIGFyZSBqdXN0IGNvbWluZyBhdCB5b3Ugd2l0aCB0aGVzZSBzY2FyeSBzdGF0aXN0aWNzLCBpdCBmZWx0IGxpa2UgSSB3YXMgYW1idXNoZWQuSSB0aGluayBJIHNlbnQgYW4gZW1haWwgdGhlbiBhbmQgY29tcGxhaW5lZC4gSSBnb3QgdGhpcyByZWFsbHkgbGVuZ3RoeSBlbWFpbCBiYWNrIGJ1dCBpdCB3YXMgYmFzaWNhbGx5IGZpbGxlciBidXQgaXQgaGFkIGhhcHBlbmVkIGFscmVhZHkuwqAyODo0MCBTaGFubm9u4oCZcyBWQkEzQyBiaXJ0aFNoYW5ub246IFllcy4gU28sIG15IGJpcnRoLiBTaGUgd2FzIGR1ZSBvbiB0aGUgMXN0IG9mIEp1bHkgYnV0IEkgYWx3YXlzIHRob3VnaHQgc2hlIHdvdWxkIGJlIGR1ZSBzb21ld2hlcmUgYmV0d2VlbiB0aGUgMjV0aCBvZiBKdW5lIGFuZCB0aGUgMjh0aCBvZiBKdW5lLiBJIHJlbWVtYmVyIHRoZSAyN3RoIG9mIEp1bmUsIEkgbmVlZGVkIHRvIGdvIGFuZCBnZXQgbmV3IGJyYWtlIHBhZHMgYW5kIGRpc2NzIHB1dCBvbiBteSBjYXIuIEl0IHdhcyB0aGUgbGFzdCB0aGluZyBJIG5lZWRlZCB0byBkby4gSSBzYXQgaW4gdGhlIG1lY2hhbmlj4oCZcyBmZWVsaW5nIGEgbGl0dGxlIGJpdCB1bmNvbWZvcnRhYmxlIGFuZCBhIGxvdCBvZiBwcmVzc3VyZS4gSSB0aGluayBJIHdhcyBhYm91dCAzOSszIGF0IHRoYXQgcG9pbnQuwqBJIHdhcyBqdXN0IHJlYWxseSB1bmNvbWZvcnRhYmxlLiBJIHNhdCB0aGVyZSBmb3IgYWJvdXQgdHdvIGhvdXJzIGFuZCBJIHdhcyBqdXN0IGxpa2UsIFVnaCwgd2h5IGlzIHRoaXMgdGFraW5nIHNvIGxvbmc/wqBNZWFnYW46IFlvdSB3ZXJlIHJlYWR5IHRvIG1vdmUgb24uwqBTaGFubm9uOiBZZWFoLiBUaGUgbmV4dCBkYXksIG15IGh1c2JhbmQgd2VudCBpbnRvIHRoZSBvZmZpY2UgYW5kIEkgcmVtZW1iZXIgbWVzc2FnaW5nIGhpbSwgSSB0aGluayB5b3Ugc2hvdWxkIGhhdmUgc3RheWVkIGF0IGhvbWUgdG9kYXkuIFNvbWV0aGluZyBqdXN0IGRvZXNu4oCZdCBmZWVsIHJpZ2h0LiBJIGZlZWwgYSBiaXQgb2ZmLkkgd29rZSB1cCBvbiB0aGUgbW9ybmluZyBvZiB0aGUgMjl0aCBvZiBKdW5lIGFuZCBJIGhhZCBoaXAgYW5kIGxlZyBwYWluIHdoaWNoIGlzbuKAmXQgdW51c3VhbCBmb3IgbWUuIEnigJl2ZSBnb3QgaHlwZXItbW9iaWxpdHkgc3luZHJvbWUgc28gbXkgam9pbnRzIGFyZSBleHRyYSBiZW5keSBhbnl3YXkgc28gdG8gd2FrZSB1cCB3aXRoIHBhaW4gaXMgcXVpdGUgbm9ybWFsLCBlc3BlY2lhbGx5IGluIHByZWduYW5jeS7CoEl0IHdhcyBoYWxmLTc6MDAgaW4gdGhlIG1vcm5pbmcgYW5kIG15IGh1c2JhbmQgdGhvdWdodCBpdCB3b3VsZCBiZSBhIHJlYWxseSBnb29kIGlkZWEgdG8gY3V0IGhpcyBoYWlyIGZvciBoaW0uIEl04oCZcyBoYWxmLTc6MDAgaW4gdGhlIG1vcm5pbmcuIEnigJltIG5lYXJseSA0MCB3ZWVrcyBwcmVnbmFudCBhbmQgSSB3YXMgZG9pbmcgaGlzIGhhaXIuIFRoZW4gSSBmZWx0IGEgdHdpbmdlLiBJIHdhcyBsaWtlLCBJIGRvbuKAmXQgcmVjb2duaXplIHRoYXQgcGFpbi4gSeKAmWxsIGtlZXAgYW4gZXllIG9uIGl0LsKgVGhleSB0dXJuZWQgaW50byBjb250cmFjdGlvbnMuIEkgaGFkIG15IGZpcnN0IGNvbnRyYWN0aW9uIGF0IGhhbGYtNzowMCBpbiB0aGUgbW9ybmluZyBhbmQgdGhleSBnb3Qgc3Ryb25nZXIuIEkgc2FpZCB0byBteSBodXNiYW5kLCDigJxJIHRoaW5rIHlvdSBuZWVkIHRvIHNpZ24gb2ZmIG5vdy4gVGhpcyBpcyBpdC4gSXTigJlzIGhhcHBlbmluZy4gSeKAmW0gZ29pbmcgZm9yIGEgYmF0aCB0byBzZWUgaWYgdGhleSBnbyBhd2F5IG9yIGlmIHRoZXkgc3RheS7igJ3CoFdlIGhhZCBhIGZvb2QgZGVsaXZlcnkgY29tZSBpbiB0aGF0IGRheS4gV2UgaGFkIGFuIEFtYXpvbiBkZWxpdmVyeSBjb21lIGluIGFuZCB3ZSBoYWQgSSB0aGluayB0aGUgY2Fyc2VhdCBiYXNlIHdhcyBjb21pbmcgaW4gYXMgd2VsbCB0aGF0IGRheS4gU28gaW4gYmV0d2VlbiBteSBjb250cmFjdGlvbnMsIEkgd2FzIGhhdmluZyB0byBnbyB0byB0aGUgZG9vciBhIGRlYWwgd2l0aCBhbGwgb2YgdGhpcyBzdHVmZiB0aGF0IHdhcyBnb2luZyBvbiBhcm91bmQgbWUuwqBUaGUgY29udHJhY3Rpb25zIHN0YXllZCBhbmQgdGhleSBkaWRu4oCZdCBwZXRlciBvZmYuIFRoZXkganVzdCBzdGF5ZWQuIEF0IHRoaXMgcG9pbnQsIEkgd2FzIG9uIGFsbCBmb3VycyBpbiB0aGUgbGl2aW5nIHJvb20gbW9vaW5nIGxpa2UgYSBjb3cgd2hpY2ggaXMgYml6YXJyZSBiZWNhdXNlLCB3aXRoIG15IGZpcnN0IG9uZSB3aG8gd2FzIG15IG9ubHkgZXhwZXJpZW5jZSBvZiBsYWJvciwgbXkgbXVtIHNhaWQgdGhhdCBJIHdhcyBlZXJpbHkgcXVpZXQuIEl0IHdhcyBkaWZmZXJlbnQgdG8gbWFrZSBub2lzZSB0aGlzIHRpbWUuwqBNeSBodXNiYW5kIHJhbmcgbXkgbW9tIGFuZCBsZXQgaGVyIGtub3cgd2hhdCB3YXMgaGFwcGVuaW5nIGFuZCB0aGVuIGhlIHJhbmcgdGhlIGhvc3BpdGFsLiBUaGV5IHRvbGQgbWUgdGhhdCB0aGUgaG9tZSBiaXJ0aCBzZXJ2aWNlIHdhc27igJl0IGF2YWlsYWJsZSB0aGF0IGRheSBzbyBJ4oCZZCBoYXZlIHRvIGNvbWUgaW50byBob3NwaXRhbC4gSXQgd2FzIG9ubHkgYWZ0ZXIgaGUgdG9sZCB0aGVtIG15IG5hbWUgdGhhdCB0aGF0IGhhcHBlbmVkLsKgV2XigJlsbCBsZWF2ZSB0aGF0IGp1c3QgaGFuZ2luZyB0aGVyZS7CoE1lYWdhbjogWWVhaC7CoFNoYW5ub246IFRoZW4gSSBidXJzdCBpbnRvIHRlYXJzIGJlY2F1c2UgSSB0aG91Z2h0IHRoYXQgYXMgc29vbiBhcyBJIGdvIGludG8gaG9zcGl0YWwsIHRoYXTigJlzIGl0LiBJ4oCZbSBub3QgZ29pbmcgdG8gZ2V0IG15IHZhZ2luYWwgYmlydGguIFRoZXnigJlyZSBnb2luZyB0byBmaW5kIHNvbWUgcmVhc29uIHRvIHNlY3Rpb24gbWUgYW5kIHRoYXTigJlzIGl0LsKgTXkgbW9tIGNhbWUgYW5kIGRyb3ZlIHVzIHRvIHRoZSBob3NwaXRhbC4gU2hlIHdhcyBzdGF5aW5nIHdpdGggdGhlIGtpZHMgYW55d2F5LiBJIHRoaW5rIEkgZ290IHRvIHRoZSBob3NwaXRhbCBhdCBhYm91dCAzOjAwIGluIHRoZSBhZnRlcm5vb24uIFRoZXkgZXhhbWluZWQgbWUgYW5kIEkgd2FzIDQgY2VudGltZXRlcnMgc28gSSB3YXMgYWxsb3dlZCB0byBzdGF5LsKgVGhleSB0b29rIG1lIGludG8gdGhlIHJvb20gYW5kIEkgc3RheWVkIHRoZXJlIHVudGlsIEkgaGFkIG15IGJhYnkuIEkganVzdCBsYWJvcmVkLiBJIGRvbuKAmXQgcmVtZW1iZXIgYSBsb3Qgb2YgaXQgdG8gYmUgaG9uZXN0LiBXaGVuIHRoZXkgc2F5IHlvdSBnbyB0byBhbm90aGVyIHBsYWNlLCB5b3UgZ28gdG8gYW5vdGhlciBwbGFjZS7CoE1lYWdhbjogWW91IGRvLsKgU2hhbm5vbjogVGhlIGdhcyBhbmQgYWlyIHdlcmUgYW1hemluZy4gSSBkaWQgdHJ5IHRoZSBiaXJ0aCBwb29sIGJ1dCB3ZSBoYWQgYW4gaXNzdWUgaGVyZSB3aGVyZSB0aGV5IGhhZCB0byBoYXZlIGFpciB2ZW50cyBmaXR0ZWQgaW4gdGhlIHJvb21zIHdpdGggdGhlIGdhcyBhbmQgYWlyIGFuZCB0aGV5IHdlcmVu4oCZdCBkb25lIGluIHRoZSBiaXJ0aCBwb29sLiBJIHdhcyBpbiB0aGUgYmlydGggcG9vbCBmb3IgYWJvdXQgYW4gaG91ciwgYnV0IEkgd2FzbuKAmXQgYWxsb3dlZCB0aGUgZ2FzIGFuZCBhaXIuwqBUaGUgcG9vbCB3YXMgYWxsIHJpZ2h0LCBidXQgdGhlIGdhcyBhbmQgYWlyIHdlcmUgaGVscGluZyBtZSBtb3JlLsKgSSB3ZW50IGJhY2sgaW50byB0aGUgcm9vbSB3aXRoIHRoZSBiZWQgYW5kIGV2ZW4gdGhvdWdoIEkgc2FpZCB0byBteSBodXNiYW5kLCDigJxJIGRvbuKAmXQgd2FudCB0byBiZSBvbiBteSBiYWNrLOKAnSBJIHdhcyBvbiBteSBiYWNrIGZvciBtb3N0IG9mIHRoZSB0aW1lLiBUaGF04oCZcyB3aGVyZSBJIHdhcyBjb21mb3J0YWJsZS7CoFdoZW4gSSB3YXMgaW4gdGhlIHBvb2wsIEkgc2FpZCBubyB0byB0aGUgY29udGludW91cyBtb25pdG9yaW5nLiBJIGp1c3Qgd2FudGVkIGludGVybWl0dGVudCB3aXRoIHRoZSBtb25pdG9yLiBXZSBkaWRu4oCZdCBrbm93IHdoYXQgc2hlIHdhcy4gQXQgdGhpcyBwb2ludCwgd2UgaGFkIG5vIGlkZWEgd2hhdCBzaGUgd2FzIGJ1dCB0aGV5IGNvdWxkbuKAmXQgZmluZCBoZXIgd2l0aCB0aGUgRG9wcGxlci4gVGhleSBhc2tlZCBtZSB0byBnZXQgb3V0IG9mIHRoZSBwb29sIGFuZCBwdXQgbWUgb24gdGhlIGJlZCBhbmQgdGhleSB3ZXJlIGdvaW5nIHRvIHNjYW4gdG8gc2VlIHdoZXJlIHNoZSB3YXMuwqBJIGNvdWxkbuKAmXQgcm9sbCBvbnRvIG15IGJhY2sgYXQgdGhpcyBwb2ludC4gSSB3YXMgb24gbXkgc2lkZSBhbmQgSSBjb3VsZG7igJl0IHJvbGwgb24gbXkgYmFjayB0byBnZXQgdGhlbSB0byBzY2FuIG1lIHRvIHNlZSB3aGVyZSBzaGUgd2FzLiBUaGVuIEkgb3BlbmVkIG15IGV5ZXMgYW5kIHRoZSBjb25zdWx0YW50IHRoYXQgaGFkIGxpZWQgYW5kIGNvZXJjZWQgbWUgaW50byBteSB0aGlyZCBzZWN0aW9uIHdhcyBpbiB0aGUgcm9vbSBhbmQgSSBzcGVjaWZpY2FsbHkgc2FpZCBJIGRvbuKAmXQgd2FudCB0byBzZWUgaGVyLsKgU2hlIHdhcyBzdGFuZGluZyBhdCB0aGUgZW5kIG9mIHRoZSBiZWQgYW5kIHNoZSBzYWlkIHRvIG1lLCDigJxIb3cgbG9uZyBhcmUgeW91IGdvaW5nIHRvIHB1c2ggZm9yP+KAnSBJIHNhaWQsIOKAnEFzIGxvbmcgYXMgSSBuZWVkIHRvLiBBcyBsb25nIGFzIG1lIGFuZCBteSBiYWJ5IGFyZSBzYWZlLOKAnSBhbmQgc2hlIGxlZnQuIFRoYXQgd2FzIHRoZSBlbmQgb2YgaXQuIEkgZGlkbuKAmXQgc2VlIGhlciBhZ2Fpbi7CoE1lYWdhbjogT2ggbXkgZ29zaC7CoFNoYW5ub246IFllYWguIFRoYXQgd2FzIHRoYXQuIFRoZXkgbWFuYWdlZCB0byBzY2FuIG1lIGFuZCB0aGV5IGZvdW5kIGhlci4gU2hlIHdhcyBqdXN0IHJlYWxseSBsb3cuIFRoYXTigJlzIHRoZSBvbmx5IHJlYXNvbiB0aGV5IGNvdWxkbuKAmXQgZmluZCBoZXIuIFNoZSB3YXMgZmluZS4gU2hlIHdhcyBoYXBweS7CoEl0IHdlbnQgb24gYWdhaW4gZm9yIGFib3V0IGFub3RoZXIgY291cGxlIG9mIGhvdXJzIG9mIG1vdmluZyBmcm9tIGFsbCBmb3VycyBvbiB0aGUgYmVkIHRvIG15IGJhY2sgYW5kIEkgcmVtZW1iZXIgc2l0dGluZyB1cCBvbiBteSBrbmVlcyB1cHJpZ2h0IGFuZCBJIGZlbHQgc29tZXRoaW5nIGdvLiBJIHdhcyBsaWtlLCDigJxPa2F5LCBJIHRoaW5rIG15IHdhdGVycyBoYXZlIGdvbmUu4oCdIFRoZXkgaGFkIGEgbG9vayBhbmQgdGhleSBoYWQgZ29uZSBvbiB0aGVpciBvd24uIEkgZGlkbuKAmXQgaGF2ZSB0byBoYXZlIHRoZW0gcG9wIGxpa2UgbGFzdCB0aW1lLiBUaGVyZSB3YXMgbm8gbWVjb25pdW0uIEl0IHdhcyBhbGwgZ29vZC5JIHJlbWVtYmVyIHNwYWNpbmcgb3V0IGZvciBhIHdoaWxlIGdvaW5nIHRvIHRoYXQgb3RoZXIgcGxhY2UuIEkgY2FtZSB0byBhbmQgaXQgd2FzIGJ1cm5pbmcuIFRoYXQgcmluZyBvZiBmaXJlIGlzIHJlYWwuIEl0IHdhcyByZWFsLiBJIHNhaWQsIOKAnE9rYXksIGl0IHJlYWxseSBzdGluZ3MuIFNvbWV0aGluZyBoYXMgY2hhbmdlZC7igJ0gVGhlIG1pZHdpZmUgbGlmdGVkIHVwIHRoZSBzaGVldCBhbmQgc2hlIHNhaWQsIOKAnE9oLCB0aGVyZSBpcyB0aGUgaGVhZC4gUXVpY2sh4oCdIFRoZXkgaGFkIHRvIHNjcmFtYmxlIHRvIGdldCBldmVyeXRoaW5nIHRoZXkgbmVlZGVkLsKgTXkgaHVzYmFuZCB3YXMgdGV4dGluZyBteSBtdW0gc28gSSBnb3QgYWxsIHRoZSB0aW1lIHN0YW1wcy4gVGhleSBzYXcgaGVyIGhlYWQgYXQgMyBtaW51dGVzIHBhc3QgMTA6MDAgYXQgbmlnaHQgYW5kIHNoZSB3YXMgYm9ybiBhdCAxNCBtaW51dGVzIHBhc3QgMTA6MDAuIFNoZSBzbGlkIG91dCBhbmQgd2UgZm91bmQgb3V0IHNoZSB3YXMgYSBnaXJsIHdoaWNoIG15IGh1c2JhbmQgdG9sZCBtZSB3aGljaCB3YXMgd2hhdCBJIHdhbnRlZC7CoEkgcmVtZW1iZXIgc2F5aW5nLCDigJxJIGRpZCBpdC4gVGhleSBzYWlkIEkgY291bGRu4oCZdCwgYnV0IEkgZGlkIGl0LuKAnSBUaGV5IHdhbnRlZCB0byBnZXQgaGVyIGEgeWVsbG93IGhhdCBiZWNhdXNlIHdlIGRpZG7igJl0IGtub3cgd2hhdCBzaGUgd2FzIGJ1dCBiZWNhdXNlIHNoZSBjYW1lIG91dCBzbyBxdWlja2x5LCB0aGV5IG9ubHkgaGFkIGEgYmx1ZSBvbmUgc28gc2hl4oCZcyBnb3QgYSBsaXR0bGUgYmx1ZSBoYXQgYW5kIHllYWgsIHNoZSB3YXMgaGVyZS4gSXQgd2FzIGFtYXppbmcuwqBJIGRpZCBoYXZlIHR3byBzZWNvbmQtZGVncmVlIHRlYXJzLiBUaGV5IGRpZCBvbmx5IHJlcGFpciBvbmUgYW5kIEkgd2lzaCB0aGV5IGhhZCByZXBhaXJlZCBib3RoIGJlY2F1c2UgZ29pbmcgZm9yIGEgd2VlIGFmdGVyd2FyZCB3aXRoIHRoZSBvcGVuIG9uZSB3YXMgaGVsbC7CoE1lYWdhbjogWWVzLCBub3QgZnVuLsKgU2hhbm5vbjogQnV0IEkgd291bGQgdGFrZSB0aGF0IG92ZXIgYSBzZWN0aW9uIHJlY292ZXJ5IGFueSBkYXkuIEkgd2FzIGdvaW5nIHRvIHRoZSBwYXJrIHdpdGggdGhlIGtpZHMgMyBkYXlzIHBvc3QtYmlydGguIEkgd2FzIHdhbGtpbmcgYXJvdW5kIHRoZSBob3VzZS4gSSB3YXMgYWJsZSB0byBnbyB1cCB0aGUgc3RhaXJzLiBJdCB3YXMgYW1hemluZy7CoFllYWgsIEkgZGlkIGl0LiBUaGV5IHRvbGQgbWUgSSBjb3VsZG7igJl0IGFuZCB0aGF0IEkgd291bGQgZGllIG9yIHNoZSB3b3VsZCBkaWUuwqBNZWFnYW46IFRoZXkgcmVhbGx5IHB1dCB1cCBhIGZpZ2h0IGFuZCB0cmllZCBzbyBoYXJkLiBMZXQgbWUgdGVsbCB5b3UgdG9vLCBJIGRvbuKAmXQga25vdyB0aGUgcmlnaHQgd29yZCBidXQgdG8gc3RhbmQgdXAgdG8gdGhhdCB0eXBlIG9mIHByZXNzdXJlLCBvaCBteSBnb29kbmVzcy4gVGhhdCBpcyBoYXJkLiBUaGF0IGlzIHZlcnksIHZlcnkgaGFyZC4gVGhlIGZhY3QgdGhhdCB5b3UgZGlkIGFuZCBpdOKAmXMgbm90IGxpa2UgaXQgZGlkbuKAmXQgYWZmZWN0IHlvdS4gT2YgY291cnNlLCBpdCBhZmZlY3RlZCB5b3UgYnV0IHlvdSB3ZXJlIGFibGUgdG8gZ28gYW5kIHlvdSB3ZXJlIGxpa2UsIOKAnExpc3RlbiwgSSBrbm93IHRoZSByZXNlYXJjaC4gSXTigJlzIGluIG15IGZhdm9yLiBJ4oCZbSBva2F5LiBJIGJlbGlldmUgdGhhdCBpdOKAmXMgdGhlIGJlc3QgY2hvaWNlIGJlY2F1c2UgSSByZWFsbHkgaGF2ZSByZXNlYXJjaGVkIGl0IGFuZCB0cnVseSBiZWxpZXZlIHRoYXQgaXTigJlzIHRoZSBiZXN0IGNob2ljZSBmb3IgbWUgYW5kIG15IGJhYnku4oCdwqBUaGV5IGp1c3QgdHJpZWQgc28gaGFyZCB0byBub3QgbGV0IHRoYXQgaGFwcGVuLsKgMzY6MzIg4oCcV2UgYXJlIGFsbCBzbyBwcm91ZC7igJ1TaGFubm9uOiBUaGV5IGRpZC4gSSB0aGluayBpdCB3YXMgdGhlIG5leHQgbW9ybmluZyBhbmQgSSB3YXMganVzdCBzaXR0aW5nIGluIG15IHJvb20gd2l0aCBteSBiYWJ5IHF1aXRlIGhhcHB5LiBUaGUgaGVhZCBvZiBtaWR3aWZlcnkgY2FtZSBpbnRvIHRoZSByb29tIGFuZCBJIGhhZCBtZXQgaGVyIG9uY2UgYmVmb3JlLiBTaGUgc2FpZCB0byBtZSwg4oCcV2VsbCBkb25lLCB5b3UgZGlkIGl0LiBBbGwgb2Ygb3VyIHBob25lcyB3ZXJlIGdvaW5nIG9mZiBsYXN0IG5pZ2h0IGJlY2F1c2UgaXQgd2FzIGZsYWdnZWQgdGhhdCB5b3UgaGFkIGdvbmUgaW50byBsYWJvciBhbmQgd2Ugd2VyZSBhbGwgd2FpdGluZyB0byBzZWUgd2hhdCBoYWQgaGFwcGVuZWQuIEJ1dCB5b3UgZGlkIGl0IHZhZ2luYWxseSBhbmQgd2UgYXJlIGFsbCBzbyBwcm91ZC4gV2VsbCBkb25lLuKAncKgSSB3YXMgbGlrZSwg4oCcV2VsbCwgeW91IGRpZG7igJl0IHRlbGwgbWUgdGhhdCBhdCB0aGUgdGltZSwgZGlkIHlvdT/igJ3CoE1lYWdhbjogWW914oCZcmUgbGlrZSwg4oCcSSB3aXNoIHlvdSBoYWQgY2hlZXJlZCBmb3IgbWUgaW4gbXkgcHJlZ25hbmN5IGFuZCBub3QgbWFkZSBtZSBmZWVsIGxpa2UgSSB3YXMgY3Jhenkgb3Igc2NoZW1pbmcgbXkgaHVzYmFuZCzigJ0gb3IgYWxsIG9mIHRoYXQuIE9oIG15IGdvb2RuZXNzLsKgU2hhbm5vbjogWWVhaC7CoE1lYWdhbjogWW91IGhhdmUgZ29uZSB0aHJvdWdoIGEgbG90IG9uIHRvcCBvZiB5b3VyIGJpcnRoIGFuZCB0cmF1bWEgdGhlcmUgYW5kIHJlY292ZXJpbmcgZnJvbSBhbGwgb2YgdGhhdC4gWW91IGhhdmUgZ3Jvd24gc28gbXVjaCBhbmQgYWNoaWV2ZWQgc28gbXVjaC4gWW91IHNob3VsZCBiZSByZWFsbHkgcHJvdWQgb2YgeW91cnNlbGYuwqBTaGFubm9uOiBUaGFuayB5b3UuIEkgYW0uIEkgdGhpbmsgdGhhdCBsaWtlIEkgc2FpZCBhdCB0aGUgYmVnaW5uaW5nLCBpZiBpdCBoYWRu4oCZdCBoYXBwZW5lZCB0aGUgd2F5IHRoYXQgaXQgaGFwcGVuZWQsIEnigJltIGdvaW5nIHRvIHRyYWluIHRvIGJlIGEgZG91bGEgaW4gTWF5IGFuZCBKdW5lLsKgTWVhZ2FuOiBZYXkhU2hhbm5vbjogQmVjYXVzZSBJIGRvbuKAmXQgd2FudCBvdGhlciB3b21lbiB0byBnbyB0aHJvdWdoIHdoYXQgSSB3ZW50IHRocm91Z2guIExpa2UgSSBzYWlkLCBpZiBpdCBoYWRu4oCZdCBoYXBwZW5lZCB0aGUgd2F5IGl0IGhhcHBlbmVkIHRoZW4gSSB3b3VsZG7igJl0IGJlIGhlcmUgdG9kYXkuIEnigJltIGdyYXRlZnVsIGZvciB0aGUgZXhwZXJpZW5jZSwgYnV0IEkgd2lzaCB0aGF0IEkgaGFkIG1vcmUgc3VwcG9ydCBhdCB0aGUgdGltZS7CoE1lYWdhbjogUmlnaHQsIHRvdGFsbHkuIEkgbWVhbiwgdGhhdOKAmXMgZGVmaW5pdGVseSBzb21ldGhpbmcgdGhhdCBsZWQgbWUgdG8gdGhlIGRvdWxhIGFuZCBvYnZpb3VzbHkgaGVyZSB3aGVyZSBJ4oCZbSBhdCB0b28uIEkgdGhpbmsgdGhyb3VnaCB0aGVzZSBiaXJ0aCBleHBlcmllbmNlcywgaXTigJlzIGhhcmQgdG8gZGVueSB0aGF0IGZpcmUgaW5zaWRlIG9mIHlvdSB3aGVuIHlvdSBmZWVsIGl0LiBSaWdodD8gWW914oCZcmUgbGlrZSwgSSB3YW50IHRvIGhlbHAgcGVvcGxlIG5vdCBoYXZlIHRoZSBleHBlcmllbmNlIHRoYXQgSSBoYWQgYW5kIGhhdmUgYSBiZXR0ZXIgZXhwZXJpZW5jZSB0byB0aGUgYmVzdCBvZiBteSBhYmlsaXR5LsKgSeKAmW0gc3VyZSB0aGF0IHlvdSB3aWxsIGRvIGl0IGFuZCB5b3XigJlyZSBnb2luZyB0byB0YWtlIHRoaXMgcGFzc2lvbiBhbmQgeW914oCZcmUganVzdCBnb2luZyB0byBmbG91cmlzaCBhbmQgdG91Y2ggc28gbWFueSBsaXZlcy4gSeKAmW0gc28gZXhjaXRlZCBmb3IgeW91LsKgU2hhbm5vbjogVGhhbmsgeW91LsKgMzg6MzAgVkJBQyBhZnRlciB0aHJlZSBDZXNhcmVhbnNNZWFnYW46IE9rYXksIHNvIGxldOKAmXMgdGFsayBhYm91dCBWQkFDIGFmdGVyIHRocmVlIEMtc2VjdGlvbnMuIEkgdGhpbmsgdGhpcyBpcyBzb21ldGltZXMgYSBoYXJkIG9uZSBiZWNhdXNlIHdlIGRvIGhhdmUgcHJvdmlkZXJzIHRocm93aW5nIG91dCB0aGluZ3MgYW5kIGJsYW5rIHN0YXRlbWVudHMgbGlrZSwg4oCcSWYgeW91IGhlbW9ycmhhZ2UsIGlmIHRoaXMsIGlmIHRoaXMsIGFuZCBpZiB0aGlzLCB5b3UgYW5kIHlvdXIgYmFieSB3aWxsIGRpZS7igJ0gV2hlbiB3ZSBoZWFyIHRob3NlIHRoaW5ncywgaXQgaXMgdmVyeSBzY2FyeSBhbmQgdmVyeSBvdmVyd2hlbG1pbmcuwqBXaGVuIGl0IGNvbWVzIHRvIFZCQUMgbW9yZSB0aGFuIHR3byBhZnRlciBtdWx0aXBsZSBDZXNhcmVhbnMgYW5kIG1vcmUgdGhhbiB0d28sIHRoZSBzdGF0cyBhcmUgaGFyZGVyIHRvIGZpbmQuIERpZCB5b3UgZmluZCB0aGF0IGl0IHdhcyByZWFsbHkgaGFyZGVyIHRvIGZpbmQ/IFRoZXJlIGFyZSBub3QgYSBsb3Qgb2YgaHVnZSBDb2NocmFuZSBzdHVkaWVzIGF0IGxlYXN0IHRoYXQgSSBrbm93IGFib3V0IHdoZXJlIHRoZXkgaGF2ZSBzdHVkaWVkIFZCQUMgYWZ0ZXIgdGhyZWUgQ2VzYXJlYW5zIHNwZWNpZmljYWxseS7CoFNoYW5ub246IFllcC7CoE1lYWdhbjogV2UgYXJlIG9mdGVuIHRvbGQgYnkgcHJvdmlkZXJzIHRoYXQgdGhlIGNoYW5jZXMgb2YgdXRlcmluZSBydXB0dXJlIGFyZSBhc3Ryb25vbWljYWxseSBoaWdoZXIgdGhhbiBvdXIgdHlwaWNhbCBWQkFDIG9yIFZCQUMgYWZ0ZXIgdHdvIENlc2FyZWFucy4gRm9yIHBlb3BsZSBpbiB5b3VyIGFyZWEgaW4gRW5nbGFuZCwgd2hhdCBkaWQgeW91IGZpbmQgbG9jYWwgc3R1ZHktd2lzZSBmb3IgeW91ciBzdGF0cz8gSeKAmW0gY3VyaW91cyB0byBzZWUgdGhlIGRpZmZlcmVuY2UuwqBTaGFubm9uOiBJIGRpZG7igJl0LiBUaGVyZSB3YXNu4oCZdCBhbnl0aGluZywgbm8uIEkgcmVtZW1iZXIgSSBoYWQgdG8gcmVsYXkgYXMgbXVjaCBpbmZvcm1hdGlvbiBhcyBJIGNvdWxkIG9uIFZCQUMgYWZ0ZXIgbXVsdGlwbGUgQ2VzYXJlYW5zIGJlY2F1c2UgSSByZW1lbWJlciB0aGVtIHNheWluZyB0byBtZSB0aGF0IGFmdGVyIHR3byBDZXNhcmVhbnMsIHRoZSByaXNrIG9mIHV0ZXJpbmUgcnVwdHVyZSBkb3VibGVzIGFuZCB3aGVuIHRoZXkgc2F5IHRoYXQgdG8geW91LCB5b3XigJlyZSBsaWtlLCBPaCBteSBnb2QsIHRoYXQgc291bmRzIHJlYWxseSBzY2FyeS4gV2hhdCB0aGV5IGRvbuKAmXQgdGVsbCB5b3UgaXMgdGhhdCBpdCBvbmx5IGRvdWJsZXMgZnJvbSAxJSB0byAyJS4gVGhlcmXigJlzIG5vdCBtdWNoIGhlcmUgdGhhdCBpcyBkaWZmZXJlbnQgYmVjYXVzZSB0aGVyZSByZWFsbHkgaXNu4oCZdCBhIGxvdC4gVGhlcmUgd2FzIG5vdCBzdXBwb3J0IGVzcGVjaWFsbHkgbm90IGZyb20gbXkgaG9zcGl0YWwgb3IgYW55d2hlcmUgbGlrZSB0aGF0IGZvciBtZS4gSSBqdXN0IGhhZCB0byBkbyBpdCBvbiBteSBvd24uIFRoZSBpbnRlcm5ldCBpcyB5b3VyIGJlc3QgZnJpZW5kLsKgTWVhZ2FuOiBZZWFoLCBJIGtub3cuIFRoaXMgZGFybiBpbnRlcm5ldCBjYW4gYmUgeW91ciBiZXN0IGZyaWVuZCBhbmQgeW91ciBlbmVteSBhdCB0aGUgc2FtZSB0aW1lLiBUaGF04oCZcyB3aHkgd2UgYXJlIGhlcmUgYW5kIHdoeSB3ZSBoYXZlIG91ciBibG9nIGFuZCBhbGwgb2YgdGhlIHRoaW5ncyBiZWNhdXNlIHdlIHdhbnQgcGVvcGxlIHRvIGJlIGFibGUgdG8gZmluZCB0aGF0IGJlc3QgZnJpZW5kIHNpZGUgb2YgdGhlIGludGVybmV0IGFuZCByZWFsbHkgZGl2ZSBpbi7CoFdlIGRvIGhhdmUgYSBibG9nIG9uIHZhZ2luYWwgYmlydGggYWZ0ZXIgdGhyZWUgQ2VzYXJlYW5zLiBJdCBpcyB0aXRsZWQsIElzIFZCQUMgQWZ0ZXIgVGhyZWUgQy1zZWN0aW9ucyB0aGUgUmlnaHQgQ2hvaWNlIEZvciBNZT8gV2Ugd2lsbCBoYXZlIGl0IGhlcmUgaW4gdGhlIHNob3cgbm90ZXMgc28gZGVmaW5pdGVseSBjaGVjayBpdCBvdXQuIEluIGl0LCB3ZSB0YWxrIGFib3V0IGhvdyB1dGVyaW5lIHJ1cHR1cmUgbWFrZXMgdGhlIGlkZWEgb2YgVkJBQyB2ZXJ5IHNjYXJ5LiBUaGUgd29yZCBpdHNlbGYsIOKAnHJ1cHR1cmXigJ0gbWFrZXMgaXQgdmVyeSwgdmVyeSBzY2FyeS4gV2hlbiBJIHRoaW5rIG9mIHNvbWV0aGluZyBydXB0dXJpbmcsIGl0IGRvZXNu4oCZdCBsb29rIHByZXR0eS4gSXTigJlzIHNvbWV0aGluZyB0aGF0IHdlIHdhbnQgdG8gdGFsayBhYm91dCBpbiBpdHMgcmVhbCBmb3JtLsKgVXRlcmluZSBydXB0dXJlIGhhcHBlbnMuIFdoZW4gaXQgZG9lcywgaXQgaXMgdHlwaWNhbGx5IGFuIGVtZXJnZW50IHNpdHVhdGlvbi4gSG93ZXZlciwgaXQgZG9lc27igJl0IGhhcHBlbiB2ZXJ5IG9mdGVuIGFuZCB3aGVuIHdl4oCZcmUgdGFsa2luZyBhYm91dCBWQkFDLCB0aGUgd29ybGQgZmVlbHMgbGlrZSwgYW5kIEnigJltIHRhbGtpbmcgYWJvdXQgd29ybGQgYXMgaW4gb3RoZXIgY291bnRyaWVzIHRvbywgaXQgaXMgYmlnZ2VyIHRoYW4gaXQgaXMgbGlrZSB5b3Ugd2VyZSBzYXlpbmcuwqBJdCBoYXBwZW5zIGluIHJlYWxseSBsZXNzIHRoYW4gMSUgb2YgcGVvcGxlIHNvIHRoZXkgYXJlIHNob3dpbmcgdGhhdCB3aXRoIFZCQUMgYWZ0ZXIgbXVsdGlwbGUgQ2VzYXJlYW5zLCBpdCBtaWdodCBiZSBzbGlnaHRseSBoaWdoZXIgYXJvdW5kIDEuMiUuIEl04oCZcyBqdXN0IHNvIGhhcmQuIFdoYXQgSSB0aGluayBpcyB1bmZvcnR1bmF0ZSBpcyB0aGF0IGl04oCZcyBub3QgYmVpbmcgb2ZmZXJlZCBlbm91Z2ggdG8gc2hvdyB0aGUgcmVhbCBzdGF0cywgYnV0IHdoYXQgdGhpcyBwb2RjYXN0IGFuZCB3aGF0IEZhY2Vib29rIGFuZCBhbGwgb2YgdGhlIGdyb3VwcyBvdXQgdGhlcmUsIHRoZSBWQkFDIGdyb3VwcyBhcmUgc2hvd2luZywgaXMgdGhhdCBWQkFDIGFmdGVyIHRocmVlIENlc2FyZWFucyBpcyBwb3NzaWJsZS4gSXQgaXMgcG9zc2libGUuwqBEbyB5b3VyIHJlc2VhcmNoLiBGaW5kIHRoZSBzdXBwb3J0IGFuZCB5b3UgZGlkIGl0LiBJIG1lYW4sIEnigJltIGdvaW5nIHRvIHNheSB0aGF0IHlvdSBkaWQgaXQgd2l0aG91dCBzdXBwb3J0LiBJIG1lYW4sIHlvdSBoYWQgc3VwcG9ydCBmcm9tIHlvdXIgaHVzYmFuZCBhbmQgc3R1ZmYsIGJ1dCB0byB0aGUgZmFjdCB0aGF0IHRoZXkgd2VyZSBzaG93aW5nIHVwIGF0IHRoZSBlbmQgb2YgeW91ciBiZWQgbGlrZSwg4oCcSG93IGxvbmcgYXJlIHlvdSBnb2luZyB0byBwdXNoIGZvcj/igJ0gVGhhdCB0eXBlIG9mIHN0dWZmIGlzIG5vdCBjb21iaW5lZCB3aXRoIHRoZSBkZWZpbml0aW9uIG9mIHN1cHBvcnQgZm9yIG1lIGJ5IHRoZSB3YXkgYW5kIGFtYnVzaGluZyB5b3UgYW5kIHRob3NlIHRoaW5ncy4gWW91IGdvdCB0aHJvdWdoIGl0IHdpdGhvdXQgdGhhdCBtdWNoIHN1cHBvcnQgYmFja2luZyB5b3UgdXAgaW4gdGhpcyBkZWNpc2lvbi7CoFRoYXQgaXMgd2hlcmUgd2UgYXJlIHNoeSBoZXJlLiBJIHRoaW5rIHRoYXQgd2UgZG9u4oCZdCBvZmZlciB0aGUgc3VwcG9ydC7CoE9uZSwgaWYgeW914oCZcmUgbGlzdGVuaW5nIGFuZCB5b3XigJlyZSBhIHByb3ZpZGVyIGFuZCB5b3Ugb2ZmZXIgVkJBQyBhZnRlciB0aHJlZSBDZXNhcmVhbnMsIHBsZWFzZSBsZXQgdXMga25vdyBzbyB0aGF0IHdlIGNhbiBjaGF0IHdpdGggeW91IGFuZCBnZXQgeW91IGFkZGVkIHRvIG91ciBsaXN0LiBJZiB5b3XigJl2ZSBoYWQgYSBWQkFDIGFmdGVyIHRocmVlIENlc2FyZWFucyBhbmQgeW91IGFyZSBsaXN0ZW5pbmcgYW5kIGhhZCBzdXBwb3J0LCBwbGVhc2UgbWVzc2FnZSB1cyBzbyB3ZSBjYW4gYWRkIHlvdXIgcHJvdmlkZXIgdG8gdGhlIGxpc3QgYmVjYXVzZSBWQkFDIGFmdGVyIHRocmVlLCBmb3VyLCBhbmQgYWxsIG9mIHRoZSBDZXNhcmVhbnMgbWF5IG5vdCBiZSB0aGUgYmVzdCBjaG9pY2UgZm9yIGV2ZXJ5b25lLCBidXQgZm9yIHRob3NlIHdobyB3YW50IGl0LCBsZXTigJlzIHRyeSB0byBnZXQgdGhlIGluZm9ybWF0aW9uIG91dCB0aGVyZS4gUmVhZCB1cC4gR2V0IHRoZSBpbmZvcm1hdGlvbi4gTGlrZSBJIHNhaWQsIGl04oCZcyBnb2luZyB0byBiZSBpbiB0aGUgc2hvdyBub3RlcyBhbmQgdGhlIGJsb2cuIFdlIGhhdmUgb3VyIGNvdXJzZS7CoFRoZXJl4oCZcyBub3QgYSB0b24gb3V0IHRoZXJlIG9uIHZhZ2luYWwgYmlydGggYWZ0ZXIgbXVsdGlwbGUgQ2VzYXJlYW5zIHNvIGZpbmQgd2hhdCB5b3UgY2FuLiBSZWFkIHdoYXQgeW91IGNhbi4gRmluZCB0aGUgc3RhdHMgYW5kIGRvIHdoYXTigJlzIGJlc3QgZm9yIHlvdS7CoENsb3NpbmdXb3VsZCB5b3UgbGlrZSB0byBiZSBhIGd1ZXN0IG9uIHRoZSBwb2RjYXN0PyBUZWxsIHVzIGFib3V0IHlvdXIgZXhwZXJpZW5jZSBhdCB0aGV2YmFjbGluay5jb20vc2hhcmUuIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGFsbCB0aGluZ3MgVkJBQyBpbmNsdWRpbmcgb25saW5lIGFuZCBpbi1wZXJzb24gVkJBQyBjbGFzc2VzLCBUaGUgVkJBQyBMaW5rIGJsb2csIGFuZCBNZWFnYW7igJlzIGJpbywgaGVhZCBvdmVyIHRvIHRoZXZiYWNsaW5rLmNvbS4gQ29uZ3JhdHVsYXRpb25zIG9uIHN0YXJ0aW5nIHlvdXIgam91cm5leSBvZiBsZWFybmluZyBhbmQgZGlzY292ZXJ5IHdpdGggVGhlIFZCQUMgTGluay5TdXBwb3J0IHRoaXMgcG9kY2FzdCBhdCDigJQgaHR0cHM6Ly9yZWRjaXJjbGUuY29tL3RoZS12YmFjLWxpbmsvZG9uYXRpb25zQWR2ZXJ0aXNpbmcgSW5xdWlyaWVzOiBodHRwczovL3JlZGNpcmNsZS5jb20vYnJhbmRzIiwiZHVyYXRpb24iOnsidG90YWxNaWxsaXNlY29uZHMiOjI3Mjg1MTV9LCJpZCI6IjRiRVJwTHhFZXpEWmJlb1ZaRk9ZV3MiLCJtZWRpYVR5cGVzIjpbIkFVRElPIl0sIm5hbWUiOiJFcGlzb2RlIDMwOCBTaGFubm9uJ3MgVkJBM0MgKyBEb3VidCBGcm9tIEhlciBEZWxpdmVyeSBUZWFtIiwicGxheWFiaWxpdHkiOnsicGxheWFibGUiOnRydWUsInJlYXNvbiI6IlBMQVlBQkxFIn0sInBsYXllZFN0YXRlIjp7InBsYXlQb3NpdGlvbk1pbGxpc2Vjb25kcyI6MCwic3RhdGUiOiJOT1RfU1RBUlRFRCJ9LCJwb2RjYXN0VjIiOnsiX190eXBlbmFtZSI6IlBvZGNhc3RSZXNwb25zZVdyYXBwZXIiLCJkYXRhIjp7Il9fdHlwZW5hbWUiOiJQb2RjYXN0IiwiY292ZXJBcnQiOnsic291cmNlcyI6W3siaGVpZ2h0Ijo2NCwidXJsIjoiaHR0cHM6Ly9pLnNjZG4uY28vaW1hZ2UvYWI2NzY1NjMwMDAwZjY4ZGJiNWY3NmJhNDMyZGZjMzAzZjM3ZjgwNiIsIndpZHRoIjo2NH0seyJoZWlnaHQiOjMwMCwidXJsIjoiaHR0cHM6Ly9pLnNjZG4uY28vaW1hZ2UvYWI2NzY1NjMwMDAwNWYxZmJiNWY3NmJhNDMyZGZjMzAzZjM3ZjgwNiIsIndpZHRoIjozMDB9LHsiaGVpZ2h0Ijo2NDAsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMGJhOGFiYjVmNzZiYTQzMmRmYzMwM2YzN2Y4MDYiLCJ3aWR0aCI6NjQwfV19LCJuYW1lIjoiVGhlIFZCQUMgTGluayIsInNob3dUeXBlcyI6W10sInVyaSI6InNwb3RpZnk6c2hvdzozNmJWeHFPR2QxRVljUjBvSnRlRjVuIn19LCJyZWxlYXNlRGF0ZSI6eyJpc29TdHJpbmciOiIyMDI0LTA2LTEyVDA3OjEwOjAwWiJ9LCJyZXN0cmljdGlvbnMiOnsicGF5d2FsbENvbnRlbnQiOmZhbHNlfSwidXJpIjoic3BvdGlmeTplcGlzb2RlOjRiRVJwTHhFZXpEWmJlb1ZaRk9ZV3MifSx7Il9fdHlwZW5hbWUiOiJFcGlzb2RlIiwiYXVkaW8iOnsiaXRlbXMiOlt7ImZpbGVJZCI6IjNmZjIwYjdhZTdhNTUxODU1MjY2YjY1YzEyNjc5NjE4MzlkODgxNjAiLCJmb3JtYXQiOiJNUDRfMTI4IiwidXJsIjoiaHR0cHM6Ly9wLnNjZG4uY28vbXAzLXByZXZpZXcvM2ZmMjBiN2FlN2E1NTE4NTUyNjZiNjVjMTI2Nzk2MTgzOWQ4ODE2MCJ9LHsiZmlsZUlkIjoiMzJlZTNjMzkxNzhhZTZkZGE2ZDBlOGNkOWYyNTJhYWIxZGNlNDhhNyIsImZvcm1hdCI6IkFBQ18yNCIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3LzMyZWUzYzM5MTc4YWU2ZGRhNmQwZThjZDlmMjUyYWFiMWRjZTQ4YTcifSx7ImZpbGVJZCI6IjlmZWMyMTkzYzI1MDc0OTk4ODZhNjA3MTQ5YzRjNjUzNzg4OTkyYzYiLCJmb3JtYXQiOiJNUDRfMTI4X0RVQUwiLCJ1cmwiOiJodHRwczovL3Auc2Nkbi5jby9tcDMtcHJldmlldy85ZmVjMjE5M2MyNTA3NDk5ODg2YTYwNzE0OWM0YzY1Mzc4ODk5MmM2In0seyJmaWxlSWQiOiJhNzE3MzI1ZjFkMDc1NDk1YjkyODU4YWM1ZjViZmNkZjQxOWJmMzIxIiwiZm9ybWF0IjoiTVA0XzEyOF9DQkNTIiwidXJsIjoiaHR0cHM6Ly9wLnNjZG4uY28vbXAzLXByZXZpZXcvYTcxNzMyNWYxZDA3NTQ5NWI5Mjg1OGFjNWY1YmZjZGY0MTliZjMyMSJ9LHsiZmlsZUlkIjoiODhhNjExYjgwMTU4OGYwYjZkZWRiODcwMTIxMmQ4NzBkYzUxMDZmNSIsImZvcm1hdCI6Ik9HR19WT1JCSVNfOTYiLCJ1cmwiOiJodHRwczovL3Auc2Nkbi5jby9tcDMtcHJldmlldy84OGE2MTFiODAxNTg4ZjBiNmRlZGI4NzAxMjEyZDg3MGRjNTEwNmY1In1dfSwiY29udGVudFJhdGluZyI6eyJsYWJlbCI6Ik5PTkUifSwiY292ZXJBcnQiOnsic291cmNlcyI6W3siaGVpZ2h0Ijo2NCwidXJsIjoiaHR0cHM6Ly9pLnNjZG4uY28vaW1hZ2UvYWI2NzY1NjMwMDAwZjY4ZGZiM2VlOTVlMDEwMDI0NDY5ZTk1ODkzYiIsIndpZHRoIjo2NH0seyJoZWlnaHQiOjMwMCwidXJsIjoiaHR0cHM6Ly9pLnNjZG4uY28vaW1hZ2UvYWI2NzY1NjMwMDAwNWYxZmZiM2VlOTVlMDEwMDI0NDY5ZTk1ODkzYiIsIndpZHRoIjozMDB9LHsiaGVpZ2h0Ijo2NDAsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMGJhOGFmYjNlZTk1ZTAxMDAyNDQ2OWU5NTg5M2IiLCJ3aWR0aCI6NjQwfV19LCJkZXNjcmlwdGlvbiI6IlRvZGF54oCZcyBlcGlzb2RlIGhhcyBhIHdlYWx0aCBvZiBpbmZvcm1hdGlvbiB5b3Ugd29u4oCZdCB3YW50IHRvIG1pc3MhIERyLiBLZW5kcmEgT2hvcmEgaXMgYSBMaWNlbnNlZCBDbGluaWNhbCBNYXJyaWFnZSAmIEZhbWlseSBUaGVyYXBpc3QgYW5kIGFsc28gYSBWQkFDIG1vbS4gRnJvbSBiZWluZyB0b2xkIHNoZSB3b3VsZCBuZXZlciBoYXZlIGNoaWxkcmVuIHRvIGN1cnJlbnRseSBleHBlY3RpbmcgaGVyIHRoaXJkIGJhYnkgYm95LCBLZW5kcmEgc2hhcmVzIGhvdyBwcmlvcml0aXppbmcgaGVyIG1lbnRhbCBoZWFsdGggaGVscGVkIGhlciB0aHJvdWdoIHNvbWUgcmVhbGx5IHRvdWdoIHllYXJzLsKgS2VuZHJh4oCZcyBmaXJzdCBiaXJ0aCB3YXMgYSBwbGFubmVkIGJyZWVjaCBob21lIGJpcnRoIHdpdGggYW4gZW1wb3dlcmluZyBsYWJvci4gQnV0IHdoZW4gYmFieSB3YXMgbm90IGRlc2NlbmRpbmcgYWZ0ZXIgaG91cnMgb2YgcHVzaGluZywgc2hlIGZlbHQgYXQgcGVhY2UgdHJhbnNmZXJyaW5nIHRvIHRoZSBob3NwaXRhbC4gVW5mb3J0dW5hdGVseSwgS2VuZHJh4oCZcyBob3NwaXRhbCBleHBlcmllbmNlIHdhcyB0cmF1bWF0aWMgYW5kIHJlc3VsdGVkIGluIGEgQy1zZWN0aW9uIHVuZGVyIGFuZXN0aGVzaWEuwqBUaHJvdWdoIHByb2Nlc3NpbmcgYW5kIGhlYWxpbmcsIEtlbmRyYSB3YXMgYWJsZSB0byBwcmVwYXJlIGZvciBhbmQgYWNoaWV2ZSB0aGUgaG9tZSBiaXJ0aCBzaGUgaG9wZWQgZm9yIHRoZSBmaXJzdCB0aW1lIHdpdGggaGVyIHNlY29uZCBiYWJ5IHdobyB3YXMgYm9ybiBvbmx5IDE0IG1vbnRocyBhZnRlciBoZXIgZmlyc3QuwqBUaWEsIGEgVkJBQyBkb3VsYSBmcm9tIHRoZSBDaGljYWdvIGFyZWEsIGpvaW5zIE1lYWdhbiBhcyBoZXIgY29ob3N0IHRvZGF5IGFuZCBmaW5pc2hlcyB0aGUgZXBpc29kZSB3aXRoIHRoZSB0b3AgdGhyZWUgcGllY2VzIG9mIGFkdmljZSB0aGF0IHNoZSBnaXZlcyB0byBhbGwgb2YgaGVyIGNsaWVudHMuwqBLZW5kcmEncyBXZWJzaXRlVGlhJ3MgV2Vic2l0ZUluZm9ybWVkIFByZWduYW5jeSAtIGNvZGU6IHZiYWNsaW5rNDI0TmVlZGVkIFdlYnNpdGVIb3cgdG8gVkJBQzogVGhlIFVsdGltYXRlIFByZXAgQ291cnNlIGZvciBQYXJlbnRzRnVsbCBUcmFuc2NyaXB0IHVuZGVyIEVwaXNvZGUgRGV0YWlsc8KgMDM6MjQgUmV2aWV3IG9mIHRoZSBXZWVrMDY6MDcgS2VuZHJh4oCZcyBwcm9mZXNzaW9uYWwgYmFja2dyb3VuZDA5OjAwIEtlbmRyYeKAmXMgc3VycHJpc2UgcHJlZ25hbmN5MTA6NTQgRmlyc3QgYmlydGgxMzoxNCBTdXJyZW5kZXJpbmcxNjoxNSBTdXJwcmlzZSBiYWJ5IG51bWJlciB0d28yMTowMCBLZW5kcmHigJlzIFZCQUMyOTozMCBQcm9jZXNzaW5nIGJpcnRoczMzOjMxIEVyaW7igJlzIGUtY291cnNlczM2OjE2IEJlbmVmaXRzIG9mIHRoZXJhcHk0MTozOSBTaG9ydCBpbnRlcnZhbCBiZXR3ZWVuIHByZWduYW5jaWVzNDU6NTEgVGlh4oCZcyB0b3AgdGhyZWUgdGlwczQ4OjU0IEhpcmUgYSBncmVhdCBzdXBwb3J0IHRlYW3CoDUxOjM4IFByZXBhcmUgeW91ciBtaW5kTWVhZ2FuOiBIZWxsbywgaGVsbG8uIFdlIGhhdmUgYW5vdGhlciBhbWF6aW5nIGVwaXNvZGUgZm9yIHlvdSBndXlzIHRvZGF5IGFuZCBndWVzcyB3aGF0PyBXZSBkaWQgdGhpcyBhIGNvdXBsZSBvZiB3ZWVrcyBhZ28gYW5kIEkgdGhvdWdodCBpdCB3b3VsZCBiZSBmdW4gdG8gZG8gaXQgYWdhaW4uIFdlIGhhdmUgYSBjby1ob3N0IHdpdGggdXMgdG9kYXkuIEl04oCZcyBub3QgSnVsaWUsIGJ1dCBpdCBpcyBUaWEuIEhlbGxvLCBUaWEuwqBUaWE6IEhpLiBUaGFuayB5b3Ugc28gbXVjaCBmb3IgaGF2aW5nIG1lLsKgTWVhZ2FuOiBBYnNvbHV0ZWx5LiBUaWEgaXMgYW1hemluZyBhbmQgc2hlIGlzIGFjdHVhbGx5IG9uZSBvZiBvdXIgVkJBQyBjZXJ0aWZpZWQgZG91bGFzLiBJIHdhbnQgdG8gdHVybiB0aGUgdGltZSBhIGxpdHRsZSBiaXQgb3ZlciB0byB5b3UgYW5kIHRlbGwgdXMgd2hlcmUgY2FuIHBlb3BsZSBmaW5kIHlvdS4gV2hhdCBpcyB5b3VyIGJ1c2luZXNzIG5hbWU/IEFsbCBvZiB0aGF0LsKgVGlhOiBZZWFoLiBJIGFtIGluIHRoZSBDaGljYWdvbGFuZCBhcmVhIHNvIEkgc2VydmUgYSB3aWRlIHJhZGl1cyBhYm91dCBhbiBob3VyIGZyb20gbXkgaG9tZXRvd24gb2YgTW91bnQgUHJvc3BlY3QuIE15IGJ1c2luZXNzIGlzIENoaWNhZ29sYW5kIEJpcnRoIGFuZCBCYWJ5LiBNb3N0IHBlb3BsZSBjYW4gZmluZCBtZSBvbiBteSB3ZWJzaXRlLiBJdCBpcyBDaGljYWdvbGFuZGJpcnRoYW5kYmFieS5jb20gb3IgdGhleSBjYW4gZW1haWwgbWUgYXQgY2hpYmlydGhhbmRiYWJ5QGdtYWlsLmNvbS4gWWVhaC4gSSB3b3VsZCBsb3ZlIGZvciBwZW9wbGUgdG8gcmVhY2ggb3V0IHRvIG1lIGlmIHRoZXkgYXJlIGluIG15IGFyZWEuwqBNZWFnYW46IEF3ZXNvbWUuIFdlIHdpbGwgbWFrZSBzdXJlIHRvIGhhdmUgaGVyIGxpbmsgYW5kIGV2ZXJ5dGhpbmcgYWxzbyBpbiB0aGUgc2hvdyBub3Rlcy4gWW91IGNhbiBlYXNpbHkgZmluZCBoZXIuIElmIHlvdeKAmXJlIGluIGhlciBhcmVhIGxvb2tpbmcgZm9yIGEgZG91bGEsIGRlZmluaXRlbHkgZ2l2ZSBoZXIgYSBjYWxsLk9rYXksIHlvdSBndXlzLiBXZSBoYXZlIGEgZ3Vlc3QgdG9kYXkuIEkgbWVhbiwgeW91IGFyZSBhbGwgc3BlY2lhbC4gRXZlcnkgZ3Vlc3QgaXMgc28gc3BlY2lhbCwgYnV0IERyLiBLZW5kcmEgT2hvcmEgaXMgd2l0aCB1cyB0b2RheS4gU2hlIGlzIGEgVkJBQyBtb20gYW5kIHRoZW4gc2hlIGFsc28gb2ZmZXJzIHNvbWV0aGluZyB2ZXJ5IHNwZWNpYWwgdGhhdCBJIHRoaW5rIGNvbm5lY3RzIG9yIGNhbiBjb25uZWN0IGEgbG90IHdpdGggb3VyIGF1ZGllbmNlIGJlY2F1c2Ugd2UgZ28gdGhyb3VnaCBhIGxvdCBvZiBzdHVmZiBhcyBWQkFDIG1vbXMgYW5kIEMtc2VjdGlvbiBtb21zIGFuZCBhbGwgb2YgdGhpcy4gU2hlIGFjdHVhbGx5IG93bnMgYSB3ZWxsbmVzcyBjb21wYW55IGFuZCBzaGUgaXMgYSBtZW50YWwgaGVhbHRoIGFuZCB3ZWxsbmVzcyBwcmFjdGljZSBpbiBIYXJ0Zm9yZCBDb3VudHkuwqBLZW5kcmE6IE1obW0uwqBNZWFnYW46IEF3ZXNvbWUsIG9rYXksIGluIE1hcnlsYW5kLiBTaGUgc3BlY2lhbGl6ZXMgaW4gY291cGxlcyB0aGVyYXB5IGFuZCBwZXJpbmF0YWwgbWVudGFsIGhlYWx0aC4gSW4gaGVyIGJyaWVmIHllYXJzIGFzIGEgbW9tLCBzaGUgaGFzIGxlYXJuZWQgdG8gbG92ZSBhbmQgYXBwcmVjaWF0ZSBzbG93aW5nIGRvd24gd2hpY2ggSSBrbm93IHdlIGFsbCBuZWVkIHRvIGRvIGluIGxpZmUsIGFsbCB0aGluZ3MgbmV1dHJhbCwgYW5kIGxvdHMgb2YgdGltZSBvdXRkb29ycy4gSGVyIFZCQUMgam91cm5leSBpcyBvbmUgb2YgaGVyIG1vc3QgcHJvdWQgbW9tZW50cyBhcyBhIHdvbWFuIGFuZCBhIG1vbS7CoEkgYW0gZXhjaXRlZCBmb3IgaGVyIHRvIGNvbWUgdG8gdGFsayBhYm91dCBoZXIgVkJBQyBzdG9yeSBidXQgdGhlbiBhbHNvIGEgbGl0dGxlIGJpdCBtb3JlIG9mIHdoYXQgc2hlIG9mZmVycyBiZWNhdXNlIEkgZG8uIExpa2UgSSBzYWlkLCBJIHRoaW5rIGl0IGFwcGxpZXMgdmVyeSB3ZWxsIHRvIG91ciBjb21tdW5pdHkuwqAwMzoyNCBSZXZpZXcgb2YgdGhlIFdlZWtNZWFnYW46IEJ1dCBvZiBjb3Vyc2UsIHdlIGhhdmUgYSBSZXZpZXcgb2YgdGhlIFdlZWsgc28gSeKAmW0gZ29pbmcgdG8gdHVybiB0aGUgdGltZSBiYWNrIG92ZXIgdG8gVGlhIHJlYWxseSBxdWlja2x5IGFuZCB0aGVuIHdl4oCZbGwgZGl2ZSByaWdodCBpbi7CoFRpYTogWWVhaC4gSSBoYXZlIGEgcmV2aWV3IGZyb20gZG1pbGxlcjIxMzk1IGZyb20gU2VwdGVtYmVyIDE4LCAyMDIzLiBUaGUgc3ViamVjdCBpcywg4oCcRW1wb3dlcmluZyBhbmQgTW90aXZhdGluZy7igJ0gVGhpcyBpcyBmcm9tIEFwcGxlIFBvZGNhc3RzLiBJdCBzYXlzLCDigJxJIGp1c3QgaGFkIG15IHN1Y2Nlc3NmdWwgVkJBMkMgYW5kIHdvdWxkIGxvdmUgdG8gdGhhbmsgVGhlIFZCQUMgTGluayBQb2RjYXN0IGZvciBtb3RpdmF0aW5nLCBlZHVjYXRpbmcsIGFuZCB1cGxpZnRpbmcgbXkgc3Bpcml0IHRvIGhlbHAgcHJlcGFyZSBteXNlbGYgZm9yIG15IFZCQTJDLiBJIGxpc3RlbmVkIHRvIFRoZSBWQkFDIExpbmsgUG9kY2FzdCBvbiBteSBkcml2ZXMgdG8gd29yayBhbmQgd2hpbGUgY2xlYW5pbmcgYXJvdW5kIHRoZSBob3VzZS4gRWFjaCBiaXJ0aCBzdG9yeSBicm91Z2h0IHNvIG1hbnkgZW1vdGlvbnMgYmFjayB0byBtZSByZWxhdGluZyB0byBvdGhlciBtYW1hcyByZWxhdGluZyB0byBiaXJ0aCB0cmF1bWEgZnJvbSBvdXIgcHJpb3IgYmlydGhzIGFuZCBob3cgZGVlcGx5IHdlIGRyZWFtIG9mIGEgVkJBQy4gSSByZWNvbW1lbmQgdGhpcyBwb2RjYXN0IHRvIGFueW9uZSB3aG8gd2lzaGVzIGZvciBhIFZCQUMgYW5kIGFsc28gdG8gYW55IHByZWduYW50IG1vbXMgd2hvIGp1c3Qgd291bGQgbG92ZSB0byBoZWFyIGJpcnRoIHN0b3JpZXMgYW5kIHRvIGVkdWNhdGUgdGhlbXNlbHZlcyBtb3JlIG9uIGJpcnRoIGZhY3RzLuKAncKgTWVhZ2FuOiBBd3csIHRoYW5rIHlvdSBmb3IgdGhhdCByZXZpZXcuIFRoYXQgd2FzIGFtYXppbmcuIE9uY2UgaW4gYSB3aGlsZSwgd2Ugd2lsbCBoYXZlIGEgcmV2aWV3IHRoYXQgdGFsa3MgYWJvdXQgcmVjb21tZW5kaW5nIGl0IHRvIGFsbCBWQkFDIG1vbXMgb3IgY2xpZW50cyBvciBhbnlvbmUgd2FudGluZyB0byBrbm93IHRoZWlyIG9wdGlvbnMgZm9yIGJpcnRoIGFmdGVyIENlc2FyZWFuLCBidXQgSSByZWFsbHkgZG8gbG92ZSBpdCB3aGVuIHBlb3BsZSBhbHNvIHJlY29nbml6ZSB0aGF0IHRoaXMgcG9kY2FzdCBjYW4gaGVscCB0aG9zZSBmaXJzdC10aW1lIHBhcmVudHMgdG9vLsKgSSBtZWFuLCBvdXIgQ2VzYXJlYW4gcmF0ZSBpcyBhc3Ryb25vbWljYWxseSBoaWdoIGFuZCBpdOKAmXMgYW4gaXNzdWUuIEkgdGhpbmsgb25lIG9mIHRoZSB3YXlzIHRoYXQgd2UgY2FuIGhlbHAgaGVyZSBpbiBvdXIgc21hbGwgY29tbXVuaXR5LCBidXQgYWxzbyB2ZXJ5IGJpZyBjb21tdW5pdHkgaXMgdG8gaGVscCBlZHVjYXRlIHRob3NlIGZpcnN0LXRpbWUgbW9tcyBhYm91dCB0aGVpciBvcHRpb25zIGFuZCB3aHkgQ2VzYXJlYW5zIGFyZSBoYXBwZW5pbmcgYW5kIHdoYXQgaXMgYmVpbmcgZG9uZSBvdXQgdGhlcmUgYW5kIHNhaWQgb3V0IHRoZXJlIHRoYXQgbWF5IGJlIGNhdXNpbmcgdGhlIHdob2xlIHJvb3QgcHJvYmxlbSBvZiB0aGUgQ2VzYXJlYW4gcmlzZS7CoFNvIEkgbG92ZSB0aGF0IHNoZSBwb2ludGVkIHRoYXQgb3V0LsKgMDY6MDcgS2VuZHJh4oCZcyBwcm9mZXNzaW9uYWwgYmFja2dyb3VuZE1lYWdhbjogT2theSwgY3V0ZSBLZW5kcmEuIFRoYW5rIHlvdSBzbyBtdWNoIGZvciBqb2luaW5nIHVzIHRvZGF5LsKgS2VuZHJhOiBUaGFua3MgZm9yIGhhdmluZyBtZS7CoE1lYWdhbjogSSB3YW50IHRvIHR1cm4gdGhlIHRpbWUgb3ZlciB0byB5b3UuIEnigJltIGV4Y2l0ZWQgdG8gaGVhciBtb3JlIGFib3V0IHlvdXIgc3RvcmllcyBhbmQgeW91ciBqb3VybmV5IGFuZCB3aGF0IHlvdSBkbyBldmVyeSBkYXkuIEkgYWxzbyBob3BlIHRoYXQgd2UgY2FuIHRhbGsgYSBsaXR0bGUgYml0IGFib3V0IHlvdXIgZS1jb3Vyc2VzLCBzcGVjaWZpY2FsbHkgdHdvIG9mIHRoZW3igJMgdGhlIGJpcnRoIHRyYXVtYSBhbmQgdGhlIHJlYmlydGguIEkgbG92ZSB0aGF0IHRpdGxlIGJ5IHRoZSB3YXkuwqBLZW5kcmE6IFBlcmZlY3QsIHRoYW5rIHlvdS7CoEkgZmVlbCBsaWtlIG15IHN0b3J5IGludGVydHdpbmVzIHdpdGggbWVudGFsIGhlYWx0aCBpbiBhIHJlYWxseSBpbXBvcnRhbnQgd2F5IGJlY2F1c2Ugb2YgbXkgYnVzaW5lc3MgYnV0IGl0IGFsc28gaXMgbGlrZSBldmVyeSBzdGVwIG9mIG15IHByb2Zlc3Npb25hbCBqb3VybmV5IGhhcyBqdXN0IGJlZW4gYSBjb3VwbGUgc3RlcHMgYWhlYWQgb2YgbXkgcGVyc29uYWwgam91cm5leSBhbmQgcHJlcGFyZWQgbWUgaW4gYSByZWFsbHkgYmVhdXRpZnVsIGFuZCBpbXBvcnRhbnQgd2F5LsKgSeKAmWxsIHByb2JhYmx5IHN0YXJ0IHRoZXJlIGJlY2F1c2UgdGhhdOKAmXMgbWF5YmUgd2hlcmUgaXQgbWFrZXMgdGhlIG1vc3Qgc2Vuc2UuIEkgZ290IGludG8gcHJpdmF0ZSBwcmFjdGljZSB5ZWFycyBhZ28sIG1heWJlIDggb3IgOSB5ZWFycyBhZ28gYW5kIEkgYWN0dWFsbHkgaGFkIHF1aXRlIGEgZmV3IGNsaWVudHMgd2hvIGNhbWUgdG8gbWUgd2hvIGhhZCBpbmZlcnRpbGl0eSBhcyBhIHBhcnQgb2YgdGhlaXIgc3RvcnkuIFRoYXQgd2FzbuKAmXQgc29tZXRoaW5nIHRoYXQgd2FzIHNwZWNpZmljIHRvIG15IHRyYWluaW5nIGluIGdyYWQgc2Nob29sLiBJdCB3YXMgYSBsb3Qgb2YgY291cGxlc+KAmSB3b3JrLCBzbyBJIGtpbmQgb2YgZ290IGEgY3Jhc2ggY291cnNlIG9uIHRoZSBlbW90aW9uYWwgaGVhdmluZXNzIGFuZCBsb3NzIGFzc29jaWF0ZWQgd2l0aCBhbiBpbmZlcnRpbGl0eSBqb3VybmV5LsKgQXQgdGhhdCBwb2ludCBpbiBteSBzdG9yeSwgbXkgaHVzYmFuZCBhbmQgSSB3ZXJlbuKAmXQgdHJ5aW5nIHRvIGhhdmUga2lkcy4gSXQganVzdCB3YXNu4oCZdCBhIHBpZWNlIG9mIHRoZSBwdXp6bGUgeWV0LiBJIGp1c3Qgd29ya2VkIGFsb25nc2lkZSBvZiB0aGVtLCBzdXBwb3J0ZWQgdGhlbSwgYW5kIGxlYXJuZWQgYSB0b24gZnJvbSB0aGVtLiBJIG9wZW5lZCBteSBvd24gYnVzaW5lc3MgYW5kIGRpZCB0aGF0IGZvciBhIHllYXIgb3IgdHdv4oCTIHRoYXTigJlzIEVyaW4uIFRoZSBlLWNvdXJzZXMgYXJlIGFjdHVhbGx5IGRvbmUgYnkgRXJpbiBOZXd0b24uIFNoZSBpcyBvdXIgZXhwZXJ0IHBlcmluYXRhbCBtZW50YWwgaGVhbHRoIHNwZWNpYWxpc3QgYW5kIHNoZSBzdXBlcnZpc2VzIGFsbCBvZiB0aGUgY2xpbmljaWFucyBhdCBteSBwcmFjdGljZS4gU2hlIGlzIGZhbnRhc3RpYy7CoFdoZW4gSSBicm91Z2h0IGhlciBvbiwgc2hlIGhhZCBhIGdlbmVyaWMgc2tpbGwgc2V0IGJ1dCByZWFsbHkgd2FudGVkIHRvIHNwZWNpYWxpemUgaW4gdGhlIHBlcmluYXRhbCByZWFsbS4gVGhpcyB3YXMgcmlnaHQgd2hlbiBJIGdvdCBteSBpbmZlcnRpbGl0eSBkaWFnbm9zaXMuIFdlIGhhZCBiZWVuIHRyeWluZyBmb3IgYSBjb3VwbGUgb2YgeWVhcnMuIEkgaGFkIGxlYXJuZWQgd2hlbiB0byBnZXQgc29tZSBtZWRpY2FsIHRlc3RpbmcgYW5kIGFsbCBvZiB0aGF0IGRvbmUuIFRoZXkgc2FpZCwg4oCcRXNzZW50aWFsbHkgd2l0aCB5b3VyIGFnZSBhbmQgYWxzbyB3aXRoIGEgY291cGxlIG90aGVyIGZhY3RvcnMsIHdlIGRvbuKAmXQgdGhpbmsgbGlrZWx5IHRoYXQgeW914oCZcmUgZ29pbmcgdG8gaGF2ZSBjaGlsZHJlbi7igJ3CoEl0IHdhcyByaWdodCBhdCB0aGUgYmVnaW5uaW5nIG9mIENPVklEIGluIEZlYnJ1YXJ5IDIwMjAgYW5kIEkganVzdCByZW1lbWJlciBiZWluZyB0YWtlbiBhYmFjayBpbiBhIHdheSBJ4oCZdmUgbmV2ZXIgZXhwZXJpZW5jZWQgYmVmb3JlLiBDb21wbGV0ZSBhbmQgdG90YWwgZ3JpZWYgb3ZlciBzb21ldGhpbmcgSSBkaWRu4oCZdCBrbm93IGhvdyB0byBncmlldmUgZGVzcGl0ZSBteSBwcm9mZXNzaW9uLCBkZXNwaXRlIG15IHRlYW0gYW5kIGFsbCBvZiB0aGF0LiBJdCB3YXMgd2VpcmQuIEl0IHdhcyBhIHdlaXJkIHNlYXNvbiBvZiBqdXN0IG5vdCBldmVuIGJlaW5nIHN1cmUuIFdoYXQgZG8geW91IGRvIHdpdGggdGhpcyBsb3NzIHRoYXQgaGFzIG5vdCBldmVuIGhhcHBlbmVkIHlldD8gSXTigJlzIHRoaXMgdGhpbmcgdGhhdCB5b3UgY2Fu4oCZdCByZWNvbmNpbGUgb3IgbWFrZSBzZW5zZSBvZi5JIHNhdCB3aXRoIGl0IGZvciBhIHdoaWxlLiBNeSBodXNiYW5kIGFuZCBJIGFjdHVhbGx5IGVuZGVkIHVwIGRvaW5nIHNvbWUgb3RoZXIgdGhpbmdzIHByb2Zlc3Npb25hbGx5IHRvIGtlZXAgb3Vyc2VsdmVzIGJ1c3kgaWYgeW91IHdpbGwsIHRvIGZpbmQgbmV3IGVuZXJneSBhbmQgZXhjaXRlbWVudCwgc28gd2UgYm91Z2h0IGEgaG9tZSB0byByZW5vdmF0ZSwgYSB2YWNhdGlvbiBwcm9wZXJ0eSB0byByZW5vdmF0ZS4gTXkgaHVzYmFuZCBpcyBpbiBjb25zdHJ1Y3Rpb24uIFRoYXQgcmVhbGx5IHRvb2sgYSBsb3Qgb2Ygb3VyIHRpbWUgYW5kIGV4Y2l0ZW1lbnQuwqAwOTowMCBLZW5kcmHigJlzIHN1cnByaXNlIHByZWduYW5jeUtlbmRyYTogSSBldmVudHVhbGx5IHdyb3RlIGEgYmxvZy4gSSBkZWNpZGVkLCDigJxPa2F5LiBJIGNhbiBzaGFyZSBteSBzdG9yeSB3aXRoIHRoZSB3b3JsZC7igJ0gSSB3cm90ZSB0aGlzIGJsb2cg4oCcMTMgVHJ1dGhzIEFib3V0IEluZmVydGlsaXR54oCdLiBJdCB3YXMgZXNzZW50aWFsbHkgYSBxdWljayBzdW1tYXJ54oCTIG5vdCBxdWljaywgYSB2ZXJ5IGxvbmcgYmxvZ+KAkyBhIHN1bW1hcnkgb2YgbXkgam91cm5leSB3aXRoIGluZmVydGlsaXR5IGFuZCBzZWVpbmcgaXQgdGhyb3VnaCBteSBodXNiYW5k4oCZcyBleWVzIGFuZCBzZWVpbmcgaXQgZmlyc3RoYW5kIGluIG15IG93biBleHBlcmllbmNlLiBTb21ldGhpbmcgaW4gbWUgd2FzIGxpa2UsIOKAnFRoaXMgaXMgbm90IHRoZSBmdWxsIHN0b3J5IHlldC4gVGhlcmUgaXMgbW9yZSB0byBjb21lLuKAnSBUaGUgY2xpZW50cyB0aGF0IEkgaGFkIHdvcmtlZCB3aXRoLCB0aGlzIGNvbm5lY3Rpb24gdGhhdCBJIGhhZCB3aXRoIEVyaW4sIGhlciBkZXNpcmUgdG8gc2hhcmUgdGhlIGJpcnRoIHRyYXVtYSByZWNvdmVyeSB3aXRoIHRoZSB3b3JsZCwgYW5kIGFsbCBvZiB0aGVzZSBmYWN0b3JzIGp1c3QgZmVsdCBsaWtlIHRoZXJlIHdhcyBtb3JlIGluIHRoaXMgc3RvcnkuwqBFdmVudHVhbGx5LCBpbiBKYW51YXJ5IDIwMjEsIEkgZm91bmQgb3V0IHRoYXQgSSB3YXMgcHJlZ25hbnQgd2l0aCBteSBmaXJzdCBzb24gYW5kIGl0IHdhcyBhIGNvbXBsZXRlIGFuZCB0b3RhbCBzdXJwcmlzZS4gSXQgd2FzIGp1c3Qgc3VjaCBhIGZhaXRoIG1vbWVudCBmb3IgdXMgdGhhdCB3ZSBhY3R1YWxseSBmb3VuZCBvdXQgYXQgb3VyIGJlYWNoIGhvdXNlIHRoYXQgd2Ugd2VyZSByZW5vdmF0aW5nLiBJdCB3YXMgcmVhbGx5IHNlcmVuZGlwaXRvdXMuIEkgZG9u4oCZdCBrbm93LiBJdCB3YXMgbWFnaWNhbCBpZiB5b3Ugd2lsbC4gSSBoYXZlIGl0IG9uIHZpZGVvLiBJdCB3YXMgcmVhbGx5IGp1c3Qgc3VwZXIgc3dlZXQuwqBBdCB0aGUgdGltZSwgSSByZWFsbHkgZGlkbuKAmXQga25vdyBhbnlvbmUgd2hvIHdhcyBkb2luZyBob21lIGJpcnRocywgVkJBQyB3YXNu4oCZdCBwYXJ0IG9mIG15IGpvdXJuZXkgeWV0LCBzbyBJIGp1c3QgdGhvdWdodCwg4oCcTWFuLCBJIG5ldmVyIHRob3VnaHQgSSB3YXMgZ29pbmcgdG8gYmUgYSBtb20uIEkgbmVlZCB0byBkbyBldmVyeXRoaW5nIEkgY2FuIHRvIG1ha2UgdGhpcyB0aGUgbW9zdCBzYWNyZWQgam91cm5leSBwb3NzaWJsZS4gVGhlIG1vc3QgZW1wb3dlcmluZywgYW5kIGltcG9ydGFudC4gSSB3YW50IGhlYWx0aHkga2lkcy4gSSB3YW50IGVtb3Rpb25hbGx5IGhlYWx0aHnigJPigJ0gYW5kIGFsbCBvZiB0aGF0LsKgSSB0b29rIGEgbG90IG9mIGNhcmUgYW5kIGVuZXJneSBpbiB0aGUgcHJlZ25hbmN5IHRvIHJlYWQgdGhlIHJlc291cmNlcyBvbiBoYXZpbmcgYSB2YWdpbmFsIGJpcnRoIGFuZCBhbGwgb2YgdGhlIHRoaW5ncyB0aGF0IHdvdWxkIGhlbHAgbWUgYW5kIGxlYWQgdG8gc3VjY2VzcyBpbiB0aGF0IHJvdXRlIGFzIG5hdHVyYWxseSBhcyBwb3NzaWJsZSBpcyB3aGF0IEkgd2FudGVkLCB0aGUgbGVhc3QgaW50ZXJ2ZW50aW9uIHBvc3NpYmxlLiBJIHJlYWQgYWxsIG9mIHRoZSBzdG9yaWVzIGFuZCBsaXN0ZW5lZCB0byB0aGUgcG9kY2FzdCBlcGlzb2Rlcy4gSSBqdXN0IGZlbHQgb24gdG9wIG9mIHRoZSB3b3JsZCBsaWtlLCDigJxJ4oCZbSBnb2luZyB0byBkbyB0aGlzLiBUaGlzIGlzIGl0LiBJIGNhbiBkbyB0aGlzLiBNeSBib2R5IGNhbiBkbyB0aGlzLiBJ4oCZdmUgZG9uZSBoYXJkIHRoaW5ncy4gSeKAmXZlIG92ZXJjb21lIGhhcmQgdGhpbmdzLiBJIGFic29sdXRlbHkgY2FuIGRvIHRoaXMu4oCdwqAxMDo1NCBGaXJzdCBsYWJvcktlbmRyYTogVG93YXJkcyB0aGUgZW5kIG9mIG15IHByZWduYW5jeSwgbWF5YmUgYXQgMjYgd2Vla3MsIEkgZW5kZWQgdXAgZ2V0dGluZyBDT1ZJRCBhbmQgZm91bmQgb3V0IG15IGZpcnN0IHdhcyBicmVlY2guwqBNZWFnYW46IFdlcmUgeW91IHBsYW5uaW5nIGEgaG9tZSBiaXJ0aD/CoEtlbmRyYTogWWVzLCBpbiBNYXJ5bGFuZC4gTWhtbS4gTXkgcHJvdmlkZXLigJMgaW4gTWFyeWxhbmQsIHRoZXJlIGFyZSBkaWZmZXJlbnQgbGV2ZWxzIG9yIHN0YXR1c2VzIG9mIG1pZHdpdmVzIHR5cGljYWwgdG8gbG90cyBvZiBzdGF0ZXMuIE15IHByb3ZpZGVyIHdhcyBhbiBMUE0sIGEgbGljZW5zZWQgcHJvZmVzc2lvbiBtaWR3aWZlIHdobyB3YXMgY29tZm9ydGFibGUgd2l0aCBhdHRlbmRpbmcgYSBicmVlY2ggYnV0IHdhcyBub3QgbGVnYWxseSBhbGxvd2VkIHRvIGF0dGVuZCBhIGJyZWVjaC7CoEFyb3VuZCBtYXliZSAzMiB3ZWVrcyBlbnRlcnMgdGhlIHdob2xlIGVxdWF0aW9uIG9mLCB3aGF0IGRvIHdlIGRvIGFib3V0IHRoZSBmYWN0IHRoYXQgdGhpcyBpcyBub3QgbGVnYWw/IEluIG15IHBhcnRpY3VsYXIgYXJlYSwgdGhlcmUgcmVhbGx5IHdlcmUgbm90IGEgbG90IG9mIExOTXMsIGxpY2Vuc2VkIG51cnNlIG1pZHdpdmVzLCB0byBvdmVyc2VlIG15IGNhc2UuIFNoZSBoYWQgY2FsbGVkIGEgY291cGxlIG9mIHBlb3BsZSBhbmQgdGhleSBlc3NlbnRpYWxseSBkZWNsaW5lZC4gVGhleSB3ZXJlIGxpa2UsIOKAnEl04oCZcyB0b28gbGF0ZSBpbiB0aGUgcHJlZ25hbmN5LiBXZSBkb27igJl0IGtub3cgbXVjaCBhYm91dCB0aGlzIGNhc2UuIFdl4oCZcmUgbm90IHdpbGxpbmcgdG8gYXR0ZW5kIGl0LsKgV2UgZm91bmQgc29tZWJvZHkgb3V0IG9mIHN0YXRlIHdobyB3YXMgc3VwcG9ydGl2ZSwgZXhwbGFpbmVkIHRoZSB3aG9sZSBicmVlY2ggcHJvY2VzcywgYW5kIGZlbHQgdmVyeSBjb21mb3J0YWJsZSBkb2luZyBpdC4gTXkgZHJlYW0gb2YgaG9tZSBiaXJ0aCB3YXMgc2xpZ2h0bHkgYWx0ZXJlZCB0bywg4oCcT2theSwgbm93IEkgaGF2ZSB0byBsYWJvciBhdCBhIGJpcnRoIGNlbnRlciwgYnV0IEnigJlsbCBzdGlsbCBiZSBhYmxlIHRvIGRvIGl0IHZhZ2luYWxseS4gSeKAmWxsIHN0aWxsIGJlIGFibGUgdG8gZG8gYWxsIG9mIHRoZSB0aGluZ3Mu4oCdIFRoYXQgd2FzIHRoZSBtb3N0IGVtcG93ZXJpbmcsIGJlYXV0aWZ1bCBiaXJ0aCBvciBsYWJvciBleHBlcmllbmNlIGV2ZXIuIEkgZmVsdCBzbywg4oCcSSBhbSB3b21hbiwgaGVhciBtZSByb2FyLuKAnSBJIGp1c3QgZmVsdCBpbiBteSBlbGVtZW50LiBJIGZlbHQgcG93ZXIuIEkgZmVsdCBlbmVyZ3kgYW5kIGV4Y2l0ZW1lbnQuIEkgbGFib3JlZCBzbyBsb25nLCBmb3IgMjQgaG91cnMuIE15IHdhdGVyIGJyb2tlIGFuZCBhbGwgb2YgdGhlIHRoaW5ncy4gTXkgc2lzdGVycyB3ZXJlIHRoZXJlLiBJIGxhYm9yZWQgYWxsIG92ZXIgdGhpcyBiaXJ0aCBjZW50ZXLigJMgb3V0c2lkZSwgaW5zaWRlLCBkaWZmZXJlbnQgcm9vbXMsIGFuZCBpdCB3YXMganVzdCBhbWF6aW5nLsKgQXQgdGhlIGVuZCBvZiB0aGUgZGF5LCBJIHB1c2hlZCBmb3IgMyBob3VycyBhbmQgbXkgbGl0dGxlIGd1eSBqdXN0IHdvdWxkbuKAmXQgZHJvcC4gVGhleSB3ZXJlIGxpa2UsIOKAnEhl4oCZcyBlbmdhZ2VkLiBZb3XigJlyZSBkaWxhdGVkLiBBbGwgZ29vZCBzdHVmZizigJ0gYnV0IGhlIGp1c3Qgd2FzbuKAmXQgY29taW5nIG91dC4gVGhlcmUgd2FzIGEgc3VycmVuZGVyIGZvciBtZS4gVGhlcmUgd2FzIHRoaXPigJMgSSBrbmV3IHRoZSBzdGF0cy4gSSBrbmV3IHRoZSBtb3N0IGNvbW1vbiByZWFzb24gd29tZW4gdHJhbnNmZXIgaXMgZXhoYXVzdGlvbiBhbmQgSSBjZXJ0YWlubHkgd2FzIHRpcmVkLCBidXQgbXkgc3RhbWluYSBmb3IgdGhpcywg4oCcSSBoYXZlIHRvIGRvIHRoaXPigJ0gd2FzIHNvIHN0cm9uZy7CoE15IG1pZHdpZmUgd2FzIGdyZWF0LiBTaGUganVzdCBsb29rZWQgYXQgbWUgYW5kIHdhcyBqdXN0IGxpa2UsIOKAnEtlbmRyYSwgSSB0aGluayB5b3UgY291bGQga2VlcCBwdXNoaW5nIGZvciBob3VycyBhbmQgaG91cnMsIGJ1dCBJIGRvbuKAmXQgdGhpbmsgeW91ciBiYWJ54oCZcyBnb2luZyB0byBjb21lIG91dCBhbmQgSSB0aGluayB3ZSBuZWVkIHRvIGNvbnNpZGVyIGdvaW5nIHRvIHRoZSBob3NwaXRhbC7igJ3CoDEzOjE0IFN1cnJlbmRlcmluZ0tlbmRyYTogSXQgd2FzIGEgcmVhbGx5IHBhaW5mdWwgc3VycmVuZGVyIGZvciBtZSwgYnV0IEkganVzdCBmZWx0IGF0IGVhc2UgdG9vIGxpa2UsIOKAnE9rYXkuIFllYWguIFlvdeKAmXJlIHJpZ2h0LiBIZeKAmXMgbm90IGdvaW5nIHRvIGNvbWUgb3V0LuKAnSBUaGVyZSB3YXNu4oCZdCBhIHBhcnQgb2YgbWUgdGhhdCB0aG91Z2h0IEkgY291bGQgaGF2ZSBtYWRlIGl0IGhhcHBlbiBpZiBJIHB1c2hlZCBsb25nZXIuIEl0IGp1c3QgZmVsdCBsaWtlIHRoaXMgd2FzIHdoYXQgaGFkIHRvIGhhcHBlbi7CoFRoZSB1bmZvcnR1bmF0ZSBwYXJ0IGlzIGV2ZXJ5dGhpbmcgdXAgdW50aWwgdGhhdCBwb2ludOKAkyB0aGUgcHJlZ25hbmN5LCB0aGUgbGFib3IsIHdhcyBwZXJmZWN0LiBFeGFjdGx5IHdoYXQgSSB3YW50ZWQgYW5kIHRoZW4gd2UgdHJhbnNmZXJyZWQgdG8gdGhlIGhvc3BpdGFsIGFuZCBiZWNhdXNlIEkgd2FzIG91dC1vZi1zdGF0ZSBhbmQgSSB3YXNu4oCZdCBlc3RhYmxpc2hlZCB3aXRoIGEgcHJvdmlkZXIgYXQgdGhpcyBob3NwaXRhbCwgdGhlaXIgcmVhY3Rpb24gd2FzIGxpa2UsIOKAnFRoaXMgaXMgYW4gZW1lcmdlbmN5LiBUaGlzIHdvbWFuIG5lZWRzIHRvIGdvIG9uIHRoZSB0YWJsZSBpbiBzZWNvbmRzLuKAnSBJIHdhcyBqdXN0IGxpa2UsIOKAnEnigJl2ZSBiZWVuIGxhYm9yaW5nIGZvciBob3Vycy4gSeKAmXZlIGJlZW4gZG9pbmcgaGlwIHN3YXlzLiBJ4oCZdmUgYmVlbiB3b3JraW5nIHRocm91Z2ggbXkgY29udHJhY3Rpb25zLiBJ4oCZbSBnb29kLiBJIGNhbiB3YWxrIGJhY2sgdG8gdGhlIHJvb20u4oCdwqBUaGV5IHdlcmUgbGlrZSwg4oCcTm8sIHlvdSBuZWVkIHRvIGJlIGluIGEgd2hlZWxjaGFpci7igJ0gQWdhaW4sIGxvbmcgc3Rvcnkgc2hvcnQsIGEgbG90IG9mIGJhZCB0aGluZ3MgaGFwcGVuZWQgYXQgdGhlIGhvc3BpdGFsLiBUaGUgc3RhbmRhcmQgb2YgY2FyZSB3YXMgbm90IGlkZWFsLiBCYWJ5IG1hZGUgaXQgb3V0IHNhZmVseSBhbmQgZXZlcnl0aGluZyB3YXMgb2theSwgYnV0IG15IGh1c2JhbmTigJlzIGV4cGVyaWVuY2UsIHRoZSB0cmVhdG1lbnQgb2YgdGhlIGJhYnksIGFuZCBhbGwgb2YgdGhhdCB3YXMgbm90IGlkZWFsIGFuZCBsZWZ0IGVzc2VudGlhbGx5IGJpcnRoIHRyYXVtYSBmb3IgYWxsIG9mIHVzLCBidXQgSSBzdGlsbCBmZWx0IHRoYXQgZW1wb3dlcmVkIGVuZXJneSBvZiB0aGUgbGFib3IgdGhhdCBJIGRvbuKAmXQgdGhpbmsgaXQgcmVhbGx5IHJlZ2lzdGVyZWQgdG8gbWUgcmlnaHQgYXdheSB0aGF0IHRoZXJlIHdhcyB0cmF1bWEgaW52b2x2ZWQuwqBUaGV5IGRlY2xpbmVkIG15IGJpcnRoIHBsYW4uIFRoZXkgZGVjbGluZWQgbXkgZGVzaXJlIG5vdCB0byBiZSB1bmRlciBnZW5lcmFsIGFuZXN0aGVzaWEuIFRoZXkgcmVhbGx5IGluc2lzdGVkIHRoYXQgaXQgd2FzIGFuIGVtZXJnZW5jeS4gSSB3YXMgbGlrZSwg4oCcSGXigJlzIG5vdC4gSeKAmW0gZmluZS4gSGXigJlzIGZpbmUuIEFsbCB0aGUgaGVhcnQgcmF0ZXMgYW5kIGV2ZXJ5dGhpbmcgYXJlIGdvb2Qu4oCdwqBXZSBlbmRlZCB1cCBnb2luZyB0aHJvdWdoIHRoYXQgcHJvY2VzcyBhbmQgYmVjYXVzZSBoZSB3YXMgb3VyIGxpdHRsZSBtaXJhY2xlIGJhYnksIHdlIHdlcmUganVzdCBzdGlsbCBvbiB0b3Agb2YgdGhlIHdvcmxkLiBXZSBjYW1lIGhvbWUgZnJvbSB0aGUgaG9zcGl0YWwuIFdlIHdlcmUgbmV3IHBhcmVudHMgYW5kIHdlcmUganVzdCBzb2FraW5nIGl0IGFsbCBpbi4gU28gbXVjaCB0byBteSBzdXJwcmlzZSwgYSBmZXcgbW9udGhzIGxhdGVyLCBJIGZvdW5kIG91dCBJIHdhcyBwcmVnbmFudCB3aXRoIG15IHNlY29uZC4gSSB3YXMganVzdCBsaWtlLCDigJxIb2x5IHNtb2tlcy4gSG93IGRvIHlvdSBnbyBmcm9tIGluZmVydGlsaXR5IGRpYWdub3NpcyB0byB0d28ga2lkcyBiYWNrIHRvIGJhY2s/IFdoYXQgaGF2ZSBJIGdvdHRlbiBteXNlbGYgaW50bz/igJ1LZW5kcmE6IEFnYWluLCBJIHdhcyBqdXN0IGxpa2UsIOKAnEnigJl2ZSBnb3QgdG8gaGF2ZSB0aGlzIGhvbWUgYmlydGguIEnigJl2ZSBnb3QgdG8gaGF2ZSB0aGlzIHJlZGVtcHRpdmUgZXhwZXJpZW5jZSwgdGhpcyB2YWdpbmFsIGJpcnRoLOKAnSBzbyB0aGF04oCZcyB3aGVuIEkgc3RhcnRlZCBzdHVkeWluZyB0aGUgVkJBQyBwaWVjZSBpbiBwYXJ0aWN1bGFyIGFuZCBsZWFybmluZyB0aGF0IGxvdHMgb2Ygd29tZW4gZG8gdGhpcywgSSBjYW4gZG8gdGhpcy4gVGhhdCBzYW1lIGVuZXJneSBJIGNhcnJpZWQgaW50byB0aGUgZmlyc3Qgb25lLCBJIGNhbiBkbyB0aGlzLsKgVGhpcyBnbyBhcm91bmQsIEkgd291bGQgc2F5LCBteSBzdHVkeWluZyBsb29rZWQgZGlmZmVyZW50LiBNeSBzdXJyZW5kZXIgbG9va2VkIGRpZmZlcmVudC4gSSBqdXN0IGZlbHQgbW9yZSBlYXNlIGFuZCBwZWFjZSwgYnV0IGFsc28gaGFkIHRoaXMgYmFja3JvdW5kIGZlYXIgbGlrZSwg4oCcV2hhdCBpZiBJIGhhdmUgdG8gaGF2ZSBhbm90aGVyIEMtc2VjdGlvbj8gV2hhdCBpZiBJIGhhdmUgdG8gbGFuZCBpbiB0aGUgaG9zcGl0YWwgYWdhaW4/4oCdIEkgd2FzIGVzcGVjaWFsbHkgY29uY2VybmVkIGZvciBteSBodXNiYW5kIGFuZCB3aGF0IGhlIHdpdG5lc3NlZCBhcyB3ZWxsLsKgWW91IGtub3csIHdlIGFyZSBidXN5IG5ldyBwYXJlbnRzIGFuZCBwcmVwYXJpbmcgZm9yIGFub3RoZXIgYmFieSBhbmQgSSBqdXN0IHdvdWxkIHNheSBhdCB0aGUgdGltZSwgaXQgZGlkbuKAmXQgZmVlbCBsaWtlIEkgaGFkIGFzIG11Y2ggYXR0ZW50aW9uIG9uIHRoZSBwcmVnbmFuY3kgYXMgSSBkaWQgdGhlIGZpcnN0IGdvIGFyb3VuZC7CoDE2OjE1IFN1cnByaXNlIGJhYnkgbnVtYmVyIHR3b0tlbmRyYTogU28gdGhlbiBsZWFkaW5nIGludG8gbnVtYmVyIHR3bywgbXkgYmFieSBib3kgbnVtYmVyIHR3byBhbmQgaGlzIHN0b3J5LCBteSB3YXRlciBicm9rZSBhZ2FpbiB3aGljaCBJIGtub3cgaXMgcHJldHR5IHJhcmUgdG8gaGF2ZSB5b3VyIHdhdGVyIGJyZWFrIHNvIHRoZSBmYWN0IHRoYXQgaXQgYnJva2UgdHdpY2UgaXMgaW50ZXJlc3RpbmcuwqBNZWFnYW46IFRoZXkgc2F5IGl04oCZcyAxMCUuwqBLZW5kcmE6IFJpZ2h0P01lYWdhbjogVGhpcyBpcyB3aGF0IHRoZXkgdG9sZCBtZSB0d2ljZSBhdCB0aGUgaG9zcGl0YWwuIE15IHdhdGVyIGRvZXMgdGhlIHNhbWUgZGFuZyB0aGluZy4gSeKAmW0gdGhyZWUgZm9yIHRocmVl4oCTIHdhdGVyIGJyZWFrcyBmaXJzdC7CoEtlbmRyYTogVHdvIGZvciB0d28sIHllcC7CoE1lYWdhbjogVGhhdOKAmXMgZnVubnksIG9rYXkuwqBLZW5kcmE6IEludGVyZXN0aW5nLsKgTWVhZ2FuOiBZZWFoLsKgS2VuZHJhOiBJIHdhcyBraW5kIG9mIHN1cnByaXNlZCBteXNlbGYgYmVjYXVzZSBJIHdhcyBwcmVwYXJpbmcgZm9yIHNvbWV0aGluZyB0byBsb29rIGRpZmZlcmVudCBhbmQgaXQgcmVhbGx5IGRpZG7igJl0LiBJdCBsb29rZWQgc2ltaWxhci4gSXQgYnJva2UgZWFybHkgaW4gdGhlIG1vcm5pbmcuIE15IGR1ZSBkYXRlIHdhcyBDaHJpc3RtYXMgRGF5IGFuZCBJIHZlcnkgbXVjaCBkaWRu4oCZdCB3YW50IGEgQ2hyaXN0bWFzIGJhYnksIHNvIEkgd2FzIGFjdHVhbGx5IG92ZXIuIEl0IHdhcyBOZXcgWWVhcuKAmXMgRXZlLiBJdCB3YXMgTmV3IFllYXLigJlzIEV2ZSB3aGVuIG15IHdhdGVyIGJyb2tlLiBJIHdhcyBsaWtlLCDigJxJIGNhbiBoYXZlIGEgaG9saWRheSBiYWJ5LiBJIGp1c3QgZG9u4oCZdCB3YW50IGEgQ2hyaXN0bWFzIEV2ZSBvciBDaHJpc3RtYXMgRGF5IGJhYnku4oCdwqBUaGlzIGxhYm9yIHdhcyBtdWNoIHNob3J0ZXIuIEl0IHdhcyA5IGhvdXJzIGluIGxlbmd0aCBhbmQgYXQgaG9tZS4gSXQgd2FzIGhvbWUgYW5kIGl0IHdhcyBzbyBwZXJmZWN0LiBJIGhhZCBhIGJpcnRoIHBob3RvZ3JhcGhlciBhbmQgYWxsIG9mIHRoZSBzYW1lIHBlb3BsZSB0aGVyZeKAkyBteSBodXNiYW5kLCBteSBtb20sIG15IG1vdGhlci1pbi1sYXcgY2FtZSwgbXkgc2lzdGVyLCBhbmQgbXkgZG91bGEuIEkgbWVhbiwgaXQgd2FzIGp1c3QgcmVhbGx5IHBlcmZlY3QgaW4gdGhlIHNldHRpbmcsIGluIHRoZSBzZXR1cCwgaW4gdGhlIGNvbmZpZGVuY2UgdGhhdCBJIGZlbHQgZ29pbmcgaW50byBpdCwgYnV0IGFzIHNvb24gYXMgdGhlIGFjdGl2ZSBsYWJvciBoaXQsIEkgd2FzIGxpa2UsIOKAnEkgZG9u4oCZdCBrbm93IGlmIEkgY2FuIGRvIHRoaXMs4oCdIGJlY2F1c2UgYWxsIG9mIHRoZSBmZWFyIHRoYXQgdGhlIGVuZGluZyB3b3VsZG7igJl0IGJlIHdoYXQgSSB3YW50ZWQgd2FzIHRoZXJlLsKgRXZlbiB0aG91Z2ggZXZlcnlvbmUgY291bGQgdGVsbCB5b3UgdGhhdCB5b3UgaGF2ZSB0byByZWxlYXNlIHRoZSBmZWFyIGJlY2F1c2UgbGFib3IgY2FuIGdldCBzdGFsbGVkIGFuZCBhbGwgb2YgdGhlIHRoaW5ncywgSSBkb27igJl0IHRoaW5rIEkgY291bGQuIEl0IGp1c3QgZmVsdCBsaWtlIEkgaGFkIHRvIHdvcmsgd2l0aCB0aGUgZmVhciBhbmQgd29yayB0aHJvdWdoIHRoZSBmZWFyLkkgcmVtZW1iZXIgMTAgbWludXRlcyBpbnRvIGFjdGl2ZSBsYWJvciBzYXlpbmcgdG8gbXkgZG91bGEsIOKAnEkgZG9u4oCZdCBrbm93IGlmIEkgY2FuIGRvIHRoaXMs4oCdIGFuZCBpbiBteSBoZWFkIGFsc28ga25vd2luZywg4oCcWW91IGRvbuKAmXQgaGF2ZSBhbiBvcHRpb24uIFlvdeKAmXJlIG5vdCBnb2luZyB0byBzdXJyZW5kZXIgYW5kIGdvIHRvIHRoZSBob3NwaXRhbCBhbmQgaGF2ZSBhbm90aGVyIEMtc2VjdGlvbi4gWW91IGhhdmUgdG8gZ2l2ZSB5b3Vyc2VsZiB0aGUgY2hhbmNlLiBZb3UgaGF2ZSB0byBmaWdodCBmb3IgaXQu4oCdwqBJdCBmZWx0IGxpa2UgdGhlIG9ubHkgd2F5IG91dCB3YXMgdGhyb3VnaCBhbmQgYmVjYXVzZSBJIGhhZCBleHBlcmllbmNlZCBsYWJvciBiZWZvcmUgYnV0IG5ldmVyIGV4cGVyaWVuY2VkIGJhYnkgZHJvcHBpbmcgb3Igd2hhdCBpdCBmZWx0IGxpa2UgdG8gaGF2ZSBiYWJ5IGVuZ2FnZWQsIGl0IGp1c3Qgd2FzIG5ldy4gQW5kIHdpdGggZWFjaCBuZXcgdGhpbmcsIHRoZXJlIHdhcyB0aGlzIHNpbXVsdGFuZW91cyB0cnVzdGluZyBteSBib2R5IGFuZCBmZWVsaW5nIG5lcnZvdXMgZm9yIG15IGJvZHkgYWxsIGF0IG9uY2UuwqBJIGxhYm9yZWQgaW4gYSB2YXJpZXR5IG9mIHBvc2l0aW9ucy4gSSBsYWJvcmVkIGluIGEgYmlydGhpbmcgdHViLiBJIGRlY2xpbmVkIGFsbCBvZiB0aGUgY2hlY2tzLiBJbiBoaW5kc2lnaHQsIGdpdmVuIHRoZSBmYWN0IHRoYXQgSSB3YXMgc28gYWZyYWlkLCBJIGNhbiB0ZWxsIHRoYXQgSSBhbHNvIGp1c3QgaGFkIHRoaXMgaW5zdGluY3R1YWwga25vd2luZy4g4oCcSSBjYW4gZG8gdGhpcy4gSXTigJlzIGdvaW5nIHRvIGhhcHBlbi4gSSBrbm93IHdoZXJlIG15IGJvZHnigJlzIGF0LuKAnSBNeSBtb20sIGluIHBhcnRpY3VsYXIsIHJlYWxseSBsb3ZlcyB0byBrbm93IGFuZCBiZSBpbiB0aGUga25vdy4gU2hlIHdhbnRlZCB0byBzdXBwb3J0IG1lIGFuZCBiZSBhYmxlIHRvIGdpdmUgbWUgdGhhdCBlbmNvdXJhZ2VtZW50IGFuZCBob3BlLiBTaGUgd2FzIHJpZ2h0IGJ5IG15IHNpZGUsIOKAnEFyZSB5b3Ugc3VyZSB5b3UgZG9u4oCZdCB3YW50IHRoZW0gdG8gY2hlY2s/4oCdIEkgd2FzIGxpa2UsIOKAnE5vLiBJIGtub3cgaXQgaXMgaGFwcGVuaW5nLiBJIGtub3cgaGUgaXMgY29taW5nLuKAnSBJdCBqdXN0IHdhcyBhIG1hdHRlciBvZiBob3cgbG9uZyBkaWQgSSB0aGluayBJIGNvdWxkIGhvbGQgb24uIERpZCBJIHRoaW5rIEkgY291bGQgaG9sZCBvdXQ/wqBNeSBodXNiYW5kIGFuZCBJIHRoaXMgZ28gYXJvdW5kIGRpZCBhIGxvdCBvZiBjb3VwbGVz4oCZIHRoZXJhcHkgdG8gcHJvY2VzcyB0aGUgYmlydGggdHJhdW1hLCB0byBwcm9jZXNzIHRocm91Z2ggd2hhdCBoZSBleHBlcmllbmNlZCBhbmQgd2hhdCBoZSBzYXcgaW4gdGhlIGhvc3BpdGFsLiBJIGp1c3QgZmVlbCBlbW90aW9uYWwgbmFtaW5nIHRoYXQuIFRoaXMgdGltZSwgaGUgd2FzIGp1c3Qgc3VjaCBhIHN1cHBvcnQuIEhlIHdhcyBzbyBwcmVzZW50IGFuZCBhY3RpdmUuIEnigJltIHNvIGdsYWQgSSBoYXZlIGl0IG9uIHZpZGVvIGJlY2F1c2UgSSBnZXQgdG8gc2VlIGl0IG5vdyBhbmQgc2VlIGhpcyBzdXBwb3J0IG9mIG15IGJvZHksIGhpcyBzdXBwb3J0IG9mIHRoZSBzcGFjZSwgZmlsbGluZyB0aGUgYmlydGggdHViIHdpdGggbW9yZSBob3Qgd2F0ZXIsIGhvbGRpbmcgbXkgaGFuZCwgYW5kIGV2ZW4gcmlnaHQgYXQgdGhlIGVuZCBhcyBJIHdhcyBwdXNoaW5nIGJhYnkgb3V0LCBJIHdhcyBvbiBteSBiZWQgb24gYWxsIGZvdXJzIGFuZCBoZSB3YXMganVzdCByaWdodCB0aGVyZSB3YWl0aW5nIGZvciBiYWJ5LsKgVG8gbWUsIGl0IGp1c3Qgd2FzIGEgbG90IG9mIGdyb3d0aCBmb3IgYm90aCBvZiB1cyB0aGF0IGhlIGNhbWUgdG8gdGhlIG90aGVyIHNpZGUgdG9vLiBJdCB3YXNu4oCZdCBqdXN0IG15IGpvdXJuZXkuIEl0IHdhcyBvdXIgam91cm5leS4gVGhlIGZhY3QgdGhhdCBoZSBjb3VsZCBzdGFuZCB0aGVyZSwgc2l0IHRoZXJlLCBhbmQgYmUgcmVhZHkgZm9yIHRoZSBiYWJ5IHRvIGNvbWUgb3V0IGFuZCB0cnVzdCB0aGF0IHByb2Nlc3MgYWZ0ZXIgZXZlcnl0aGluZyBoZSBzYXcsIHRoZSBmYWN0IHRoYXQgaGUgdHJ1c3RlZCBtZSwgdGhhdCBqdXN0IGZlZWxzIGxpa2Ugc3VjaCBhIGdpZnQgYmVjYXVzZSBJIGhlYXIgc28gbWFueSBvZiBteSBmcmllbmRzIGFuZCBJ4oCZbSBkZWxpY2F0ZSBiZWNhdXNlIG9mIHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhlIG1lbnRhbCBoZWFsdGggYW5kIG15IG93biBqb3VybmV5LiBJ4oCZbSBkZWxpY2F0ZSB3aXRoIGhvdyBtdWNoIEkgcHVzaCBvciBob3cgbXVjaCBJIHNheSwgYnV0IHNvbWUgb2YgbXkgb3duIGZyaWVuZHMgdGVsbCBtZSB0aGVpciBodXNiYW5kcyBhcmUgbm90IHN1cHBvcnRpdmUuIFRoZWlyIGh1c2JhbmRzIHdhbnQgeCwgeSwgYW5kIHouIEl04oCZcyByZWFsbHkgZGlzY291cmFnaW5nIHRvIHRoaW5rIHRoZSB3b21hbiBkb2VzbuKAmXQgaGF2ZSBhIHJpZ2h0IHRvIGhlciBvd24gYm9keSBvciBoZXIgb3duIHBsYW4uwqBJIGp1c3QgZmVsdCBsaWtlIGhlIGtuZXcgSSBjb3VsZCBkbyBpdC4gVGhhdCBmZWx0IGh1Z2UuIFNvIGh1Z2UgZm9yIG1lLsKgMjE6MDAgS2VuZHJh4oCZcyBWQkFDS2VuZHJhOiBZZWFoLCBhZnRlciA5IGhvdXJzIG9mIGxhYm9yIGFuZCBtYXliZSBhbiBob3VyIGFuZCBhIGhhbGYgb2YgcHVzaGluZyBpZiBJ4oCZbSByZW1lbWJlcmluZywgSSBkaWQgbm90IGhhdmUsIOKAnEkgYW0gd29tYW4sIGhlYXIgbWUgcm9hcuKAnSBlbmVyZ3kuIEkgaGFkIGEgbG90IG9mIGluc3RpbmN0dWFsLCBmZWFyLWJhc2VkLCDigJxJIGNhbiBkbyBpdCwgYnV0IEnigJltIHNjYXJlZCBvdXQgb2YgbXkgbWluZOKAnSBlbmVyZ3kuIEkgdGhpbmsgdGhhdOKAmXMgb2theS4gU29tZXRpbWVzIHRoYXTigJlzIHdoYXQgaXQgaXMuIFNvbWV0aW1lcyBpdOKAmXMgbm90IHRoZSBiZWF1dGlmdWwgdGhpbmcgSSB3YW50ZWQgcmlnaHQgYXdheS4gU29tZXRpbWVzIHlvdSBqdXN0IGFjY2VwdCB3aGF0IGl0IGlzLCBidXQgbWFuLCB0aGUgZW5kaW5nLsKgVGhlIGVuZGluZyB3YXMgZXZlcnl0aGluZyBJIG5lZWRlZCB0byBoZWFsLiBJdCB3YXMgZXZlcnl0aGluZyB0aGF0IEkgaGFkIGhvcGVkIGZvciBhbmQgcHJheWVkIGZvci4gSSBwdXNoZWQgc28gaGFyZC4gSXQgd2FzIHNvIHBhaW5mdWwsIHNvIHBhaW5mdWwsIGFuZCBpbiBteSBoZWFkLCBJIHdhcyBqdXN0IGxpa2UsIEkgaGFkIHdhdGNoZWQgdmlkZW9zIG9mIHdvbWVu4oCTIHRoaXMgbWlnaHQgYmUgVE1JIGluIHNvbWUgY2FzZXMsIGJ1dCBJ4oCZbSBzbyB1c2VkIHRvIGl0IGluIHRoZSBtZW50YWwgaGVhbHRoIHdvcmxkLiBJIHdhdGNoZWQgd29tZW4gd2hvIG9yZ2FzbWVkIGR1cmluZyBsYWJvciBhbmQgd29tZW4gd2hvIGVuam95ZWQgbGFib3IuIEkgd2FzIGp1c3QgbGlrZSwg4oCcSSBqdXN0IHdhbnQgdGhlIGlkZWFsLCBwYWluLWZyZWUgbGFib3Is4oCdIGFuZCBpdCB3YXMgbm90LiBJdCB3YXMgbm90IHBhaW4tZnJlZSwgYnV0IGl0IHdhcyBwZXJmZWN0LiBJdCB3YXMgc28gcGVyZmVjdC7CoFRoZSBiYWJ5IGRpZCBoYXZlIHNob3VsZGVyIGR5c3RvY2lhLCBzbyB0aGUgbWlkd2lmZSBoYWQgdG8gY29tZSBpbiwgaW50ZXJ2ZW5lLCBhbmQgcHVsbCBoaW0gb3V0LiBUaGF0IHdhcyBzY2FyeSBmb3IgMzAgc2Vjb25kcywgYnV0IHByb2JhYmx5IGxlc3Mgc2NhcnkgZm9yIG1lIGJlY2F1c2UgSSB3YXMganVzdCBmb2N1c2VkIG9uIGdldHRpbmcgYmFieSBvdXQgYW5kIGNvdWxkbuKAmXQgc2VlIGJlY2F1c2UgSSB3YXMgb24gYWxsIGZvdXJzLiBJIGNvdWxkbuKAmXQgc2VlIGhpbSwgYnV0IEkga25ldyBteSBtb20sIG15IG1vdGhlci1pbi1sYXcsIG15IGh1c2JhbmQsIGFuZCBteSBvdGhlciBzb24gd2VyZSBhbGwgYmVoaW5kIG1lLiBUaGV5IGNvdWxkIHNlZSBiYWJ5IGhhbGZ3YXkgb3V0IGVzc2VudGlhbGx5LCBzbyBJIHRoaW5rIGl0IHdhcyBwcm9iYWJseSBtb3JlIGFsYXJtaW5nIGZvciB0aGVtIHRoYW4gaXQgd2FzIGZvciBtZS7CoEJ1dCB5ZWFoLCBpdCB3YXMgcHJldHR5IGNyYXp5IGF0IHRoZSBlbmQuIEl0IGhhcHBlbmVkIHNvIHF1aWNrbHkgYW5kIHRoZW4gbXkgZmF2b3JpdGUgcGljdHVyZSBpcyB0aGlzIG9uZSB3aGVyZSB0aGV5IGhhbmQgaGltIHRvIG1lIGFuZCB5b3UgY2FuIHNlZSBpdCBpbiBteSBmYWNlLiBJ4oCZbSBzbyBvdmVyd2hlbG1lZCB3aXRo4oCTIEkgZGlkIGl0LiBJIGRpZCBpdCBhbmQgSSBsaXRlcmFsbHkgc2F5IG91dCBsb3VkLCDigJxUaGlzIGZlZWxzIHNvIHJlZGVtcHRpdmUu4oCdIEkga25ldyBpdCB3YXMgd2hhdCBJIG5lZWRlZCBhbmQgd2hhdCBteSBib2R5IG5lZWRlZCB0byBoZWFsLsKgTWVhZ2FuOiBUaG9zZSBwaWN0dXJlcywganVzdCB0aGUgcmF3bmVzcywgdGhlIHJhd25lc3MsIGFuZCB0aGUgZmFjZSwgYW5kIHRoZSBlbW90aW9ucywgc29tZXRpbWVzIHRoZXJlIGFyZSB0ZWFycyBvbiB0aGUgZmFjZSwgb2guIEl0IGp1c3QgZ2l2ZXMgbWUgY2hpbGxzIHRoaW5raW5nIGFib3V0IGl0LiBJIGhhdmUgb25lIG9mIHRob3NlIHBob3RvcyB0b28gdGhhdCBteSBmcmllbmQgd2FzIGFibGUgdG8gc25hcCBvZiBtZS4gT2gsIHRoZXnigJlyZSBqdXN0IHNvIGJlYXV0aWZ1bC4gSSB3YXMgdWdseSBjcnlpbmcgYW5kIEkgd2FzIHNjcmVhbWluZywg4oCcSSBkaWQgaXTigJ0gdG9vLCBidXQgaXQgdGVsbHMgdGhlIHdob2xlIHN0b3J5IHJpZ2h0IHRoZXJlLiBJdCB0ZWxscyBldmVyeXRoaW5nIHJpZ2h0IHRoZXJlIGluIG9uZSBpbWFnZS7CoFlvdSBtZW50aW9uZWQgdGhhdCB5b3Ugd2VyZSBzbyBoYXBweSB0aGF0IHlvdSBoYWQgaXQgb24gdmlkZW8gYW5kIHRoYXQgd2FzIG9uZSBvZiBteSBiaWdnZXN0IHJlZ3JldHMgaXMgbm90IGhhdmluZyBzb21lb25lIHRoZXJlIHNwZWNpZmljYWxseSB0byB2aWRlbyBpdC4gSSB3aXNoIEkgY291bGQgc2VlIG15IFZCQUMgZnJvbSB0aGUgb3RoZXIgc2lkZS7CoEtlbmRyYTogWWVhaCwgc3VyZS4gSeKAmXZlIHdhdGNoZWQgaXQgYSBoYW5kZnVsIG9mIHRpbWVzIGFuZCBJIGRvbuKAmXQgZ2V0IHRocm91Z2ggaXQgd2l0aG91dCBjcnlpbmcuIEl0IGlzIHNvIHNwZWNpYWwgdG8gbWUuwqBNZWFnYW46IEnigJltIHN1cmUuIEnigJltIHN1cmUuIFllYWguIEl04oCZcyBqdXN0IHNvIHNwZWNpYWwgdG8gaGF2ZSBzbyBob2xkIG9udG8gdGhhdCBmb3Igc3VyZS7CoDI0OjA3IFVuaXRpbmcgd2l0aCB5b3VyIGJpcnRoIHBhcnRuZXJNZWFnYW46IFRoZXJlIHdlcmUgc28gbWFueSB0aGluZ3MgeW91IGhhZCBicm91Z2h0IHVwIHRoYXQgeW91IHNhaWQuIFlvdSBncmV3IHRvZ2V0aGVyIGFuZCB0aGlzIHdhcyB5b3VyIGpvdXJuZXkuIEkgbG92ZWQgdGhhdCB5b3UgcG9pbnRlZCB0aGF0IG91dCBiZWNhdXNlIEkgdGhpbmsgc29tZXRpbWVzIGFzIFZCQUMgbW9tcywgd2XigJlyZSByZWFsbHkgaHlwZXItZm9jdXNlZCBvbiBWQkFDIGFuZCB0aGlzLCBhbmQgc29tZXRpbWVzLCBpdCBjYW4gbG9vayBvciBldmVuIHNvdW5kIGxpa2UgdGhlIOKAnG1l4oCdIHNob3cuIEl04oCZcyBtZSwgbWUsIG1lLCBtZS4gSXTigJlzIGFsbCBhYm91dCBtZSBhbmQgd2hhdCBJIHdhbnQuIEl04oCZcyB2ZXJ5LCB2ZXJ5LCB2ZXJ5IGltcG9ydGFudCwgYnV0IEkgbG92ZSB0aGF0IHlvdSBjYW4gc2F5IHRoYXQgeW91IGdyZXcgdG9nZXRoZXIuIFlvdSBwcm9jZXNzZWQgdG9nZXRoZXIgYW5kIHRoYXTigJlzIHNvIGltcG9ydGFudCBiZWNhdXNlIG15IGh1c2JhbmQgdG9vLiBJIGRpZG7igJl0IHJlYWxpemUgdW50aWwgaGUgbWFkZSB0aGUgc3RhdGVtZW50IHRoYXQgSeKAmW0gc3VyZSBldmVyeWJvZHkgaGFzIGhlYXJkIGJlZm9yZSBhYm91dCB0aGUgemlwcGVyLiBIZSBtYWRlIGEgdmVyeSBub3Qtc28tbmljZSBzdGF0ZW1lbnQgYW5kIEkgd2FzIGxpa2UsIOKAnFdob2EuIFlvdSBoYXZlIHRyYXVtYS7igJ3CoEkgZGlkbuKAmXQgZXZlbiBrbm93IHRoYXQgdW50aWwgaGUgaGFkIHNhaWQgdGhhdCBzdGF0ZW1lbnQgYW5kIHdlIGhhZCB0byB3b3JrIHRocm91Z2ggdGhhdC4gSGUgaGFkIHRvIHRydXN0IG1lIGFsc28gYW5kIEkgbG92ZSB0aGF0IHlvdSBzYWlkIHRoYXQuIEhlIHRydXN0ZWQgbWUuIFRoZXJlIGFyZSBhIGxvdCBvZiBwZW9wbGUgb3V0IHRoZXJlIHdobyBmZWVsIHNvIHN0cm9uZ2x5IHRoYXQgdGhleSBzaG91bGQgYmUgYXQgaG9tZSBvciBhdCBhIGJpcnRoIGNlbnRlciBvciB0aGF0IHRoZXkgZG9u4oCZdCB3YW50IGFuIGVwaWR1cmFsIG9yIHRoZXkgZG8gd2FudCBhbiBlcGlkdXJhbC7CoFRoZXJlIGFyZSBhbHdheXMgdGhpbmdzIHRoYXQgdXMgbW9tcywgV29tZW4gb2YgU3RyZW5ndGgsIGhhdmUgYW5kIHRoZW4gc29tZXRpbWVzIHRoZSBodXNiYW5kcyBhcmVu4oCZdCB0b3RhbGx5IG9uIGJvYXJkLiBXZSBkb27igJl0IGV2ZXIgd2FudCB0byBqdXN0IHRlbGwgdGhlbSB0aGF0IHRoZWlyIGZlZWxpbmdzIGRvbuKAmXQgbWF0dGVyLCBidXQgSSB0aGluayBpdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGF04oCZcyB3aGVuIHdlIHNob3VsZCB0YWxrIGFib3V0IHRoZSBmZWVsaW5ncyBhbmQgd2h5IHRob3NlIHRob3VnaHRzIG9yIHdoeSB0aG9zZSB0aGluZ3MgdGhhdCBhcmUgYmVpbmcgc2FpZCBhcmUgc28gbmVnYXRpdmUsIHJpZ2h0PyBXaHkgbm90IGEgaG9tZSBiaXJ0aCBvciB3aHkgbm90IGEgdmFnaW5hbCBiaXJ0aCBpbiBnZW5lcmFsPyBJIHNlZSBpdCBvbiB0aGUgZm9ydW1zLiBQZW9wbGUgYXJlIGxpa2UsIOKAnEkgd2FudCBhIFZCQUMgc28gYmFkbHksIGJ1dCBteSBodXNiYW5kIGlzIG5vdCBzdXBwb3J0aXZlIG9mIGl0LuKAnUl04oCZcyBsaWtlLCB3YWl0LCB3YWl0LCB3aGF0PyBXYWl0IGEgc2Vjb25kLiBNeSBodXNiYW5kIHdhc27igJl0IHN1cGVyIG9uIGJvYXJkLiBUaGF04oCZcyB3aHkgaGUgc2FpZCB0aGUgdGhpbmcgYWJvdXQgdGhlIHppcHBlci4gSGUgd2FzIGxpa2UsIOKAnEkgZG9u4oCZdCB1bmRlcnN0YW5kLuKAnSBJ4oCZbSBsaWtlLCDigJxJIGtub3cgYW5kIHlvdSBwcm9iYWJseSB3b27igJl0IGV2ZXIgdW5kZXJzdGFuZCBteSBkZXNpcmUgdG8gZ2l2ZSBiaXJ0aCB2YWdpbmFsbHksIGJ1dCB0aGlzIGlzIHdoeS7igJ0gV2UgdGFsa2VkIGFib3V0IHRob3NlIHRoaW5ncywgc28gaGF2ZSB0aG9zZSB0b3VnaCBjb252ZXJzYXRpb25zIGFsb25nIHRoZSB3YXksIG9yIGlmIHNvbWV0aGluZyBpcyBwdWxsaW5nIHlvdSBpbiBhbm90aGVyIGRpcmVjdGlvbiwgZG9u4oCZdCBmZWFyIHNheWluZyB0aGF0IG91dCBsb3VkIGJlY2F1c2Ugc29tZW9uZeKAkyBpdCBkb2VzbuKAmXQgZXZlbiBoYXZlIHRvIGJlIGEgcGFydG5lciBvciBhIGh1c2JhbmQuIEl0IGNhbiBiZSBhIG1vbSBvciB3aG9ldmVyLiBTb21lb25lIGlzIHNheWluZyBzb21ldGhpbmcgYW5kIHlvdSBkb27igJl0IHdhbnQgdGhlbSB0byBiZSBtYWQgb3IgeW91IGRvbuKAmXQgd2FudCB0aGVtIHRvIGRpc2FncmVlIHdpdGggeW91IHNvIHlvdSBnbyB0aGUgb3RoZXIgZGlyZWN0aW9uIHdoZW4geW91ciBoZWFydCBpcyBwdWxsaW5nIHlvdSBpbiBvbmUgZGlyZWN0aW9uIGZvciBhIHJlYXNvbi7CoEtlbmRyYTogWWVhaCwgYWJzb2x1dGVseS4gQW5kIHlvdSBkbyBnZXQgYXMgYSBWQkFDIG1vbSBvciBhIGhvbWUgYmlydGggbW9tLCB5b3UgZ2V0IGEgbG90IG9mIGZhY2lhbCBleHByZXNzaW9ucyBmcm9tIHBlb3BsZS7CoE1lYWdhbjogWWVhaCB5b3UgZG8uwqBLZW5kcmE6IE9yIGNvbW1lbnRzIGZyb20gcGVvcGxlLiBJdCBjYW4gYmUgdG91Z2ggdG8gbmF2aWdhdGUgYW5kIHRvIGhhdmUgdGhpcyBhcHByb3ByaWF0ZSBib3VuZGFyeSBvciBidWJibGUgd2hlcmUgeW91IHNheSwg4oCcTm8uIFRoaXMgaXMgbXkgc3RvcnkuIFRoaXMgaXMgbXkgam91cm5leS4gSeKAmXZlIGdvdCB0byBkbyB3aGF04oCZcyBnb29kIGZvciBtZSBhbmQgYmFieS7igJ0gWWVhaC4gSXTigJlzIGhhcmQuIEl04oCZcyBoYXJkIHRvIG5hdmlnYXRlIHRoYXQuIEkgZGVmaW5pdGVseSBncmlldmUgYW5kIHVuZGVyc3RhbmQgYW5kIGxhbWVudCB3aXRoIHRoZSBtb21zIHdobyBkb27igJl0IGhhdmUgc3VwcG9ydGl2ZSBwYXJ0bmVycy7CoFdlIGFyZSBhY3R1YWxseSBwcmVnbmFudCB3aXRoIGJveSBudW1iZXIgdGhyZWUuwqBNZWFnYW46IE9oIG15IGdvc2gsIHlheSFLZW5kcmE6IEkga25vdy4gSXTigJlzIGNyYXp5LiBJdOKAmXMgYmVlbiBiYWNrIHRvIGJhY2sgdG8gYmFjay4gSSB0aGluayBpbiBzb21lIHdheXMsIGdldHRpbmcgcHJlZ25hbnQgd2l0aCBudW1iZXIgdHdvIHB1c2hlZCBib3RoIG9mIHVzIHRvIHNheSwg4oCcV2UgaGF2ZSB0byBoZWFsIHRoaXMgZmFzdC7igJ0gSSBkb27igJl0IGxvdmUgdGhhdCBtaW5kc2V0LCBidXQgd2UgaGF2ZSB0byBhZGRyZXNzIGl0LiBJZiB5b3UgZG9u4oCZdCBoYXZlIGEgbnVtYmVyIHR3byBvciB0aHJlZSBpZiB5b3UgZG9u4oCZdCBoYXZlIGEgcXVpY2sgdGltZWxpbmUgYmV0d2VlbiB0aGVtLCB0aGVuIGl04oCZcyByZWFzb25hYmxlIHRoYXQgc29tZSBwZW9wbGUganVzdCBzYXksIOKAnFdlbGwsIGl04oCZcyBkb25lLiBUaGUgaG9zcGl0YWwgZGlkIHdoYXQgaXQgZGlkIG9yIHRoZSBzdG9yeSBkaWRu4oCZdCB1bmZvbGQgdGhlIHdheSBJIHdhbnRlZCBpdCB0b28uIEF0IGxlYXN0IGl04oCZcyBvdmVyIGFuZCBub3cgSSBjYW4ganVzdCBmb2N1cyBvbiBteSBoZWFsdGh5IGJhYnnigJ0gYW5kIHRoYXQga2luZCBvZiBtaW5kc2V0IHRoYXQgcGVvcGxlIGhhdmUuIFNvbWUgcGVvcGxlIGRvbuKAmXQgZXZlciBjb21lIGJhY2sgdG8gd2hhdCB0aGV5IGV4cGVyaWVuY2VkIG9yIGhvdyBiYWQgaXQgd2FzLsKgVGhhdOKAmXMgd2h5IEkgZm9sZCBpbiB0aGUgbWVudGFsIGhlYWx0aCBwaWVjZSBiZWNhdXNlIGlmIGl0IHJlYWxseSB3YXNu4oCZdCBmb3IgRXJpbiBhbmQgaGVyIGtub3dsZWRnZSwgaGVyIHVuZGVyc3RhbmRpbmcgb2YgYmlydGggdHJhdW1hLCBoZXIgb3duIHN0b3J54oCTIHNoZSBoYWQgdGhyZWUga2lkcyBiZWZvcmUgSSBldmVyIGV2ZW4gaGFkIG9uZeKAkyBJIGRvbuKAmXQgdGhpbmsgSSB3b3VsZCBoYXZlIGtub3duIGFzIGludGltYXRlbHkgaG93IGltcG9ydGFudCB0aGlzIHdvcmsgaXMuIE5vdywgdGhlIGZhY3QgdGhhdCB0aGUgcHJhY3RpY2UgaGFzIHRoaXMgd2hvbGUgYnJhbmNoIGFuZCB0aGlzIHdob2xlIHN1YnNldCBvZiBzZXJ2aW5nIG1vbXMgYW5kIHNlcnZpbmcgZmFtaWxpZXMgYW5kIHNlcnZpbmcgY291cGxlcywgd2UgaGF2ZSBwYWNrYWdlcyBmb3Igd29tZW4gYW5kIGZhbWlsaWVzIGFuZCBjb3VwbGVzIHRvIHdvcmsgb24gd2hpbGUgdGhleeKAmXJlIHByZWduYW50IHNvIHRoZXkgY2FuIHN0YXJ0IHRvIHByZXBhcmUsIG11Y2ggbGlrZSBhIGRvdWxhIHByb3ZpZGVzIGNoaWxkYmlydGggZWR1Y2F0aW9uLCBhIGxvdCBvZiBwZW9wbGUgb3Zlcmxvb2sgdGhlIGltcG9ydGFuY2Ugb2YgYXMgYSBjb3VwbGUsIHdoYXQgZG9lcyBpdCBsb29rIGxpa2UgdG8gZ2V0IG9uIHRoZSBzYW1lIHBhZ2U/IEFzIGEgd29tYW4sIHdoYXQgZG9lcyBpdCBsb29rIGxpa2UgdG8gcmVhbGx5IHByZXBhcmUgeW91ciBoZWFydCBhbmQgeW91ciBtaW5kIGFuZCB5b3VyIGJvZHkgZm9yIHRoaXM/VGlhOiBZZWFoLsKgS2VuZHJhOiBHb2QgZm9yYmlkLCBpdCBkb2VzbuKAmXQgdW5mb2xkIHRoZSB3YXkgeW91IHdhbnQsIHRoZSBmYWN0IHRoYXQgdGhlcmUgYXJlIHdvbWVuIG91dCB0aGVyZSB3aG8gaGF2ZSBjZXJ0aWZpY2F0aW9uIGFuZCB3aG8gaGF2ZSB0cmFpbmluZyBpbiBiaXJ0aCB0cmF1bWEgYW5kIGNhbiBoZWxwIHlvdSBoZWFs4oCTIHBlb3BsZSBsaWtlIEVyaW4gd2hvIGtub3cgaW50aW1hdGVseSB0aGUgcmVzZWFyY2guIFRoZXkga25vdyB3aGF0IGhlYWxpbmcgbG9va3MgbGlrZS4gSXTigJlzIHNvIHVzZWZ1bCBhbmQgaXTigJlzIHN1Y2ggYW4gaW1wb3J0YW50IGFuZCBncm93aW5nIGZpZWxkIGZvciB3b21lbi4gV2UgZ2V0IG1vcmUgYW5kIG1vcmUgY2FsbHMgd2hlcmUgcGVvcGxlIGFyZSBleGNpdGVkIHRvIGRvIHRoZSBiaXJ0aCB3b3JrLiBUaGV5IGFyZSBleGNpdGVkIHRvIGhlYWwgZnJvbSB0aGVpciB0cmF1bWEgYW5kIG9mIGNvdXJzZSwgdGhlcmUgYXJlIHRoZSBwZW9wbGUgd2hvIGhhdmUgaG9ycmlmaWMgc3RvcmllcyB3aGVyZSBpdOKAmXMgaGFyZC4gSXTigJlzIGhhcmQsIHRyYXVtYXRpYyB3b3JrLCBidXQgcmVhbGx5IGltcG9ydGFudCB0aGF0IHRoZXkgaGVhbCBmb3IgdGhlbXNlbHZlcyBhbmQgZm9yIHRoZWlyIGNoaWxkcmVuLsKgV2Ugc2VlIHRoZSBzcGVjdHJ1bSwgYnV0IGl04oCZcyBjb29sIHRoYXQgaXTigJlzIGEgZmllbGQgbm93IGFuZCB0aGF0IHRoZXJlIGFyZSBib29rcywgdGhlcmUgYXJlIHJlc291cmNlcywgYW5kIHRoZXJlIGFyZSBlLWNvdXJzZXMgZnJvbSBwZW9wbGUgd2hvIGtub3cgd2hhdCB0aGV5IGFyZSBkb2luZy7CoDI5OjMwIFByb2Nlc3NpbmcgYmlydGhzTWVhZ2FuOiBZZWFoLCBhbmQgdG8geW91ciBwb2ludCwgeW91IHdlcmUgZm9yY2VkIHRvIHByb2Nlc3MgdGhpcyByZWFsbHkgZmFzdCB3aGljaCB3YXMgcmVhbGx5IGdvb2QsIGJ1dCBzb21ldGltZXMgaWYgd2UgZG9u4oCZdCBwcm9jZXNzLCBzb21ldGltZXMgaWYgd2Ugd2FpdCBhcyB3ZWxsIGZvciB0aGUgcHJvY2Vzc2luZywgd2UgZm9yZ2V0IHdoYXQgd2UgbmVlZGVkIHRvIHByb2Nlc3MuIERvZXMgdGhpcyBtYWtlIHNlbnNlPyBXZSBmb3JnZXQgdGhvc2UgZGV0YWlscyBhbmQgdGhlbiBzb21ldGltZXMsIG5vdCBhbHdheXMsIGJ1dCBzb21ldGltZXMgdGhleSBjcmVlcCBpbnRvIG91ciBuZXh0IGJpcnRoLsKgS2VuZHJhOiBZZWFoLsKgTWVhZ2FuOiBXZSBtYXkgdHJpZ2dlci4gV2UgbWF5IHN0YXJ0IGhhdmluZyB0aG91Z2h0cyBhbmQgYmUgbGlrZSwg4oCcT2ggbXkgZ29zaCzigJ0gYmVjYXVzZSB3ZSBwdXQgaXQgb2ZmLiBJdOKAmXMgZWFzeSB0byBkby4gSXTigJlzIHNvIGVhc3kgdG8gcHV0IG9mZi4g4oCcSeKAmWxsIHRoaW5rIGFib3V0IHRoYXQgbGF0ZXIuIEkgbm93IGhhdmUgdG8gdHJhbnNpdGlvbiBhbmQgbGVhcm4gaG93IHRvIGZlZWQgYSBiYWJ5LiBJIG5vdyBoYXZlIHRvIHRyYW5zaXRpb24gYW5kIGxlYXJuIGhvdyB0byBnZXQgb3V0IG9mIGEgY2FyIGFmdGVyIGEgQy1zZWN0aW9uLCB3aGF0IHdlaWdodCBJIGNhbiBob2xkIGFuZCB3aGF0IHdlZWsgSSBhbSzigJ0gYW5kIHdoYXRldmVyLiBJIHdhbnQgdG8gZHJvcCB0aGUgbWVzc2FnZSBvdXQgdGhlcmUuIFlvdSBkb27igJl0IGhhdmUgdG8gd2FpdCB1bnRpbCB5b3XigJlyZSBwcmVnbmFudCB0byBzdGFydCBwcm9jZXNzaW5nIHlvdXIgcGFzdCBwcmVnbmFuY3kgYW5kIGJpcnRoLiBJdOKAmXMgb2Z0ZW4gZG9uZS4gV2Ugd2FudCB0byBmb3JnZXQgc29tZXRpbWVzLiBTb21ldGltZXMsIGl04oCZcyBsaWtlLCDigJxJIGRvbuKAmXQgd2FudCB0byB0aGluayBhYm91dCB0aGF0IGV2ZXIgYWdhaW4u4oCdIE1heWJlIGl0IHdhcyBzbyB0cmF1bWF0aWMsIGJ1dCBpdCBjYW4gYmUgc28gaW1wb3J0YW50IGJlY2F1c2UgeW91IG5ldmVyIGtub3cgd2hlbiBpdCBjYW4gY3JlZXAgaW4uwqBLZW5kcmE6IFllYWguIFlvdXIgYm9keSBhbmQgeW91ciBjdWVz4oCTIGl04oCZcyBub3QganVzdCBkdXJpbmcgdGhlIHByZWduYW5jeSBhbmQgbGFib3IgdGhhdCB3ZSBuZWVkIHRvIGNoYW5uZWwgdGhhdCBpbnR1aXRpdmUgc2Vuc2UuIEV2ZW4ganVzdCB0aGUgb3RoZXIgZGF5LCBJIHdhcyBnZXR0aW5nIGEgbWFzc2FnZSBhbmQgSSBoYWQgdG8gbGF5IG9uIG15IHNpZGUgYmVjYXVzZSBJ4oCZbSBwcmVnbmFudC4gV2hlbiBJIHdhcyBzaWRlLWx5aW5nLCBJIHJlbWVtYmVyZWQgZm9yIHRoZSBmaXJzdCB0aW1lIGxhYm9yaW5nIGluIHRoYXQgcG9zaXRpb24uIEl0IHdhcyBjb21pbmcgYmFjayB0byBteSBib2R5IHdoaWxlIEkgd2FzIGdldHRpbmcgdGhlIG1hc3NhZ2UgYW5kIEkgd2FzIGxpa2UsIOKAnE9oLCBkYW5nLiBJIGZvcmdvdCBob3cgYmFkbHkgdGhhdCBodXJ0LuKAnSBJIHdhcyBmZWVsaW5nIHRoZSBmZWVscyBhZ2FpbiBhbmQgSSBrbmV3IEkgbmVlZGVkIHRvIGRlYWwgd2l0aCBpdC4gSSBuZWVkZWQgdG8gZmVlbCBpdCBhbmQgaGVhbCBpdCBpbiBteSBib2R5IGluIG9yZGVyIHRvIGZlZWwgcmVhZHkgZm9yIGEgbmV3IGJhYnkuwqBTbyBpdOKAmXMgaW1wb3J0YW50IHRoYXQgd2UgZGVhbCB3aXRoIHdoYXQgc2hvd3MgdXAsIHRoYXQgaW50dWl0aXZlIHNlbWFudGljIHNlbnNlIGFzIGl0IGFyaXNlcyBhbmQgbm90IGp1c3Qgc2F2ZSB0aGF0IGZvciBwcmVnbmFuY3kuIFdlIGtub3cuIEl0IHNob3dzIHVwIGV2ZXJ5d2hlcmUuIEl0IHNob3dzIHVwIGluIG91ciBzZXguIEl0IHNob3dzIHVwIGluIG91ciBjb25uZWN0aW9ucy4gVGhlc2UgdGhvdWdodHMgYW5kIHRoZXNlIGZlZWxpbmdzIGRvbuKAmXQgZ28gYXdheSBqdXN0IGJlY2F1c2UgdGhlIGxhYm9yIGFuZCBkZWxpdmVyeSBhcmUgb3Zlci4gVGlhLCB5b3Ugd2VyZSBzcGVha2luZyB0byBzb21ldGhpbmcgdG9vLCBzb3JyeS7CoFRpYTogSSB3YXMganVzdCBzYXlpbmcgdGhhdOKAmXMgb25lIG9mIHRoZSBtb3N0IGNoYWxsZW5naW5nIGFzcGVjdHMgb2YgYmVpbmcgYSBWQkFDLWNlcnRpZmllZCBkb3VsYS4gVGhlIGZpcnN0IGVkdWNhdGlvbiBkb2N1bWVudCBJIHNlbmQgb3V0IHRvIG15IGZhbWlseSBzYXlzLCDigJxJIGhpZ2hseSByZWNvbW1lbmQgeW91IHdvcmsgd2l0aCBhIHBlcnNvbiB3aG8gc3BlY2lhbGl6ZXMgaW4gcGVyaW5hdGFsIG1lbnRhbCBoZWFsdGggYXMgYSBzdGFuZGFyZC7igJ0gRXZlbiBpZiB5b3UgZG9u4oCZdCB0aGluayB5b3UgbmVlZCB0byBwcm9jZXNzIHRocm91Z2ggYSBwYXN0IGJpcnRoLCBpdCBjYW5ub3QgaHVydC4gSXQgY2FuIG9ubHkgaGVscC7CoEkgaGF2ZSBhIGxvdCBvZiBmYW1pbGllcyB3aG8gZG9u4oCZdCBoYXZlIGEgbG90IG9mIHRpbWUgdGhleSB0aGluayB0aGV5IHdpbGwgaGF2ZSB0aW1lIGxhdGVyIGFuZCB0aGV5IGdldCBpbnRvIHRoZWlyIGJpcnRoIGV4cGVyaWVuY2VzIGFuZCBJIHNlZSB0aGVzZSB0cmlnZ2VycyBwb3AgdXAuIEZvciBldmVyeSBzaW5nbGUgcGVyc29uIEkgd29yayB3aXRoLCB0aGF0IGxvb2tzIHNvIGRpZmZlcmVudCB0aGF0IEkgY2FuIG5ldmVyIGZ1bGx5IHByZXBhcmUgYXMgYSBkb3VsYSBvbiBob3cgdG8gaGVscCBlYWNoIGFuZCBldmVyeSBwZXJzb24sIGJ1dCBpdCBpcy4gSXQgY2FuIGJlIGEgcG9zaXRpb24gdGhhdCB3ZSBkZWNpZGUgdG8gbGFib3IgaW4gb3Igc29tZXRoaW5nIHNvbWVvbmUgc2F5cywgb3IgdGhlIGxvb2sgb24gdGhlaXIgaHVzYmFuZOKAmXMgZmFjZSBvciBqdXN0IHNvIG1hbnkgZGlmZmVyZW50IHRoaW5ncywgc28geWVhaC4gSSByZWFsbHkgcmVzb25hdGVkIHdpdGggeW91IHNheWluZyB0aGF0IGNlcnRhaW4gdGhpbmdzIHRyaWdnZXIgeW91IGFuZCB0aGUgaW1wb3J0YW5jZSBvZiByZWFsbHkgd29ya2luZyB0aHJvdWdoIHRoYXQgdHJhdW1hIGVzcGVjaWFsbHkgZ29pbmcgaW50byBhbm90aGVyIGJpcnRoIGJlY2F1c2UgeW91IG1heSB0aGluayB0aGF0IHlvdSBkb27igJl0IGhhdmUgdHJhdW1hIHRvIHdvcmsgdGhyb3VnaCBhbmQgdGhlbiBvbmNlIHlvdSBhcmUgaW4gbGFib3Igd2l0aCB0aGF0IG5leHQgYmFieSwgdGhhdCBpcyBhIHJlYWxseSBpbm9wcG9ydHVuZSB0aW1lIHRvIGZpbmQgb3V0IHRoYXQgeW91IHN1ZGRlbmx5IGRvIGhhdmUgdHJpZ2dlcnMuwqBZb3XigJlyZSBkZWFsaW5nIHdpdGggdGhhdCBjb21wb25lbnQgYW5kIGEgbG90IG9mIG15IFZCQUMgY2xpZW50cyBhbHNvIGZvciB3aGF0ZXZlciByZWFzb24gd2FudCB0byBnbyB1bm1lZGljYXRlZC4gVGhhdOKAmXMgdGhlaXIgZ29hbCB0byB0cnkgdG8gbWl0aWdhdGUgYW55IGV4dHJhIHBvdGVudGlhbCBzbG93aW5nIGRvd24gbGFib3Igb3IgcmlzayBzbyB0aGV5IGFyZSBkZWFsaW5nIHdpdGggdGhhdCB0cnlpbmcgdG8gYmUgaW4gYSBnb29kIG1lbnRhbCBzcGFjZSB0aGF0IGlzIGFscmVhZHkgZGlmZmljdWx0IHdoZW4geW91IGFyZSBoYXZpbmcgYW4gdW5tZWRpY2F0ZWQgYmlydGgsIGJ1dCB0aGVuIHRoYXQgYWRkZWQgdHJhdW1hIG9yIHRyaWdnZXJzIHRoZXkgZGlkbuKAmXQgZXhwZWN0IHRvIGV4cGVyaWVuY2UgdGhhdCB0aGV5IGFyZS4gSSB0aGluayBJIGFncmVlIHRoYXQgaXTigJlzIGp1c3Qgc3VjaCBhbiBpbXBvcnRhbnQgcGFydCBvZiBwcmVwYXJpbmcuwqBNZWFnYW46IE1obW0sIGFic29sdXRlbHkuwqAzMzozMSBFcmlu4oCZcyBlLWNvdXJzZXNNZWFnYW46IEtlbmRyYSwgY2FuIHlvdSB0ZWxsIHVzIGEgbGl0dGxlIGJpdCBtb3JlIGFib3V0IHRoZSBjb3Vyc2UgYW5kIGtpbmQgb2Ygd2hlbiBpdCB3b3VsZCBiZSBzdWdnZXN0ZWQgZm9yIHNvbWVvbmUgdG8gdGFrZSBpZiB0aGV54oCTIG9yIGlmIGl0IHdvdWxkIGV2ZW4gYmUgc3VnZ2VzdGVkIHRvIHRha2UgbGlrZSB3aGF0IFRpYSB3YXMgc2F5aW5nLCBldmVuIGlmIHlvdSBkb27igJl0IHRoaW5rIHlvdSBoYXZlIGJpcnRoIHRyYXVtYSBvciB5b3UgZG9u4oCZdCB0aGluayB5b3UgaGF2ZSBhIHBvb3IgZXhwZXJpZW5jZSBieSBhbGwgbWVhbnMuIENhbiB5b3UgdGFsayB0byB1cyBhYm91dCB0aGF0PyBXaGVuIHdvdWxkIHlvdSB0YWtlIGl0PyBXb3VsZCB5b3Ugc3VnZ2VzdCBpdD8gQWxsIG9mIHRoYXQuwqBLZW5kcmE6IFllYWgsIHdlbGwgZmlyc3QsIEkgd291bGQgaGlnaGx5IHJlY29tbWVuZCBoYXZpbmcgRXJpbiBvbiB0aGUgcG9kY2FzdC4gU2hl4oCZcyB0aGUgb25lIHdobyBrbm93cyBhbGwgb2YgdGhlIGlucyBhbmQgb3V0cyBvZiB0aGlzIHdvcmxkLsKgTWVhZ2FuOiBXZSBuZWVkIHRvIG1ha2UgdGhhdCBoYXBwZW4uwqBLZW5kcmE6IFNoZSB3b3VsZCBiZSBoYXBweSB0byBiZSBhIGd1ZXN0IGV4cGVydC4gSGVyIGZpcnN0IGNvdXJzZSwgUmViaXJ0aCwgcmVhbGx5IGlzIGRlc2lnbmVkIGZvciB3b21lbiB0byByZXdyaXRlIHRoZWlyIHN0b3JpZXMgc28gc2hlIHdvcmtzIHRocm91Z2ggdGhhdCBhbmQgd2Fsa3MgdGhyb3VnaCB0aGF0IHRocm91Z2ggdGhlIG1vZHVsZXMuIFRoZXkgYXJlIGFsbCBhdmFpbGFibGUgb25saW5l4oCTIG9yIEkgc2hvdWxkbuKAmXQgc2F5IHRoZXkgYXJlIGFsbCBhdmFpbGFibGUuIFlvdSBjYW4gZ2V0IGEgcHJldmlldyBvZiB0aGUgZS1jb3Vyc2UgdG8gc2VlIGlmIGl0IGlzIGEgZ29vZCBmaXQuIEVyaW4gYWxzbyBwcm92aWRlcyBjb25zdWx0YXRpb25zIHNvIHNoZSB3b3VsZCBiZSBoYXBweSB0byBjaGF0IHdpdGggc29tZW9uZSBhYm91dCwgaXMgdGhpcyBhIGdvb2QgY291cnNlIGZvciBtZT/CoFVsdGltYXRlbHksIGl0IGlzIGdldHRpbmcgYXQgdGhvc2UgcGVvcGxlIHdobyBoYXZlIGxvc3QgY29udHJvbCB0aHJvdWdoIHRoZWlyIGJpcnRoIGFuZCBkZWxpdmVyeSBzdG9yeSwgYW5kIGNvbnRyb2wgYW5kIGxvc3Mgb2YgY29udHJvbCBvZnRlbiBpcyBhIHNpZ24gdGhhdCBiaXJ0aCB0cmF1bWEgY291bGQgYmUgYXQgcGxheS4gU28gd2hlbiB3ZSBjb25zaWRlciB0aGF0LCBpZiBhIHdvbWFuIGNhbiBwYXVzZSBhbmQgcmVmbGVjdCBvbiBoZXIgc3RvcnkgYW5kIHNlZSwg4oCcV2VyZSB0aGVyZSB0aW1lcyB3aGVuIEkgd2FudGVkIFggYW5kIHRoYXQgcmlnaHQsIHRoYXQgY2hvaWNlIG9yIHRoYXQgZGVzaXJlIHdhcyB0YWtlbiBhd2F5IGZyb20gbWU/4oCdIFRoYXQgY291bGQgYmUgYSBnb29kIGluZGljYXRvciB0aGF0IEVyaW7igJlzIGNvdXJzZSB3b3VsZCBiZSBhIGdvb2QgZml0LsKgSG93ZXZlciwgSSBhbSBub3QgdGhlIG9uZSB3aG8gaXMgYW4gZXhwZXJ0IGluIGJpcnRoIHRyYXVtYS4gVGhlcmUgYXJlIG51YW5jZXMgdG8gdGhlIGNvdXJzZSB0aGF0IGlzIGEgbG90IG9mIGdvb2Qgc3RhdGlzdGljcyBhbmQgaW5mb3JtYXRpb24gc28gdGhlcmUgYXJlIHNvbWUgcHN5Y2hvZWR1Y2F0aW9uYWwgY29tcG9uZW50cy4gVGhlcmUgaXMgYW4gaW50ZXJhY3RpdmUgdmlkZW8gd2hlcmUgeW91IGdldCB0byBsZWFybiBmcm9tIEVyaW4gYW5kIHRoZW4gdGhlcmUgYXJlIGEgdG9uIG9mIGRpZmZlcmVudCBleGVyY2lzZXMgaW4gam91cm5hbGluZywgd3JpdGluZyBwcm9tcHRzLCBzb3J0aW5nIHRocm91Z2ggdGhlIGVtb3Rpb25zLCBhbmQgSSBiZWxpZXZlIHlvdSB3cml0ZSB5b3VyIGJpcnRoIHN0b3J5IHRocmVlIHRpbWVzIGFuZCBwcm9jZXNzIGl0IHRocmVlIGRpZmZlcmVudCB3YXlzIHRvIGdldCB0byB0aGUgb3RoZXIgc2lkZS7CoE1lYWdhbjogWWVzLsKgS2VuZHJhOiBUaGVuIGl04oCZcyB5b3VyIHN0b3J5LiBTaGUgaGFzIGEgY291cGxlIG9mIG90aGVyIGRpZmZlcmVudCB0aGluZ3MgZm9sZGVkIGluLiBZb3UgY2FuIGdldCBhIG11ZyB0aGF0IHlvdSBjYW4gcHVyY2hhc2UuIFlvdSBjYW4gZ2V0IGEgam91cm5hbC4gU2hlIGFsc28gaGFzIGFkZGl0aW9uYWwgc3VwcG9ydCB0aGF0IHNoZSBjYW4gcHJvdmlkZSBzbyB5b3UgY2FuIHB1cmNoYXNlIHRoZSBjb3Vyc2UgYW5kIHNvbWUgc2Vzc2lvbnMgaWYgdGhhdCBmZWVscyBsaWtlIHlvdeKAmWQgcmF0aGVyIGhhdmUgdGhhdCByYXRoZXIgdGhhbiBsZWFybiBhdCB5b3VyIG93biBwYWNlIGlmIHlvdSByZWFsbHkgd2FudCB0aGF0IHRpbWUgaW4gZnJvbnQgb2YgaGVyLiBTaGXigJlzIGxpY2Vuc2VkIGluIFBlbm5zeWx2YW5pYSBhbmQgTWFyeWxhbmQgc28gc2hlIGNhbiBzZWUgcGVvcGxlIGNsaW5pY2FsbHkgdGhyb3VnaCBUZWxlaGVhbHRoIGluIHRob3NlIHN0YXRlcy7CoE1lYWdhbjogQXdlc29tZS4gWWVhaCwgSSBqdXN0IHB1bGxlZCB1cCB0aGUgd2Vic2l0ZSBhbmQgd2FzIHJlYWRpbmcgYSBsaXR0bGUgYml0IG1vcmUgYWJvdXQgaGVyIGFuZCB3aHkgaGVyIGFuZCBqdXN0IHllYWguIEkgdGhpbmsgd2UgYXJlIGdvaW5nIHRvIGhhdmUgdG8gZG8gYSBzcGlub2ZmIGFuZCB0YWxrIGFib3V0IHRob3NlIGNvdXJzZXMgbW9yZSBiYXNlZCBvZmYgb2YgeW91ciBlcGlzb2RlIGFuZCB5b3VyIGpvdXJuZXkgYW5kIHlvdXIgY29ubmVjdGlvbiBiZWNhdXNlIGl0IHJlYWxseSBpcyBzbyBpbXBvcnRhbnQuwqAzNjoxNiBCZW5lZml0cyBvZiB0aGVyYXB5TWVhZ2FuOiBUaGVuIGNhbiB5b3UgYWxzbyB0YWxrIHRvIHVzIGFib3V0LCBva2F5LiBJIGRvbuKAmXQgbWVhbiB0aGlzIHRvIHNvdW5kIHJ1ZGUgYXQgYWxsLCBidXQgc29tZXRpbWVzLCBvdXIgbG92ZWx5IHBhcnRuZXJzIGFuZCBtZW4gc3BlY2lmaWNhbGx54oCTIEnigJltIHRyeWluZyBub3QgdG8gc2luZ2xlIHRoZW0gb3V0LCBidXQgSeKAmW0gc2luZ2xpbmcgdGhlbSBvdXQuIFRoZXkgaGF2ZSBhIGhhcmQgdGltZSB3aXRoIHRoZSB0aG91Z2h0IG9mIHRoZXJhcHkgb3IgY291bnNlbGluZyBlc3BlY2lhbGx5IGNvdXBsZXPigJkgdGhlcmFweS4gSXQgY2FuIGp1c3QgYmUgYSBoYXJkIHRoaW5nLiBJIHRoaW5rIHRoYXTigJlzIGJlY2F1c2Ugb2Ygd2hhdCB0aGUgd29ybGQgaGFzIGRvbmUuwqBCdXQgd291bGQgY291bGQgYmUgc2lnbnMgdGhhdCBtYXliZSBvdXIgcGFydG5lcnMgbWlnaHQgYmVuZWZpdCBmcm9tIHNvbWUgaGVscCBvciBzb21lIHRhbGtpbmcgb3IgdGhhdCBtYXliZSByZWxhdGlvbnNoaXAtd2lzZSBlc3BlY2lhbGx5IGZyb20gYSBiaXJ0aCBhbmQgbGlrZSB5b3Ugc2FpZCwgd2hhdCBoZSB3ZW50IHRocm91Z2gsIHdoYXQgeW91IHdlbnQgdGhyb3VnaCwgd2hhdCBhcmUgc29tZSBzaWducyBhbmQgaG93IGNvdWxkIHdlIHBvdGVudGlhbGx5IHN0YXJ0IHRoZXJlIHRvIGdldCBzb21lIGhlbHA/S2VuZHJhOiBZZWFoLiBZZWFoLCBpdOKAmXMgYSBnb29kIHF1ZXN0aW9uLiBUaGUgc2NpZW5jZSBwYXJ0IGlzIHRyaWNreSBiZWNhdXNlIHVuc3VycHJpc2luZ2x5IG15IGJpYXMgaXMgdGhhdCBldmVyeW9uZSBzaG91bGQgYmVuZWZpdCBmcm9tIHRoZXJhcHkuIEV2ZXJ5b25lIGNvdWxkIHVzZSB0aGVyYXB5IHNvIEkgcmVhbGx5IHByb21vdGUgdGhyb3VnaCB3aGF0IEkgd3JpdGUgYW5kIHNwZWFrIG9uIHRocm91Z2ggbXkgcHJhY3RpY2UgdGhhdCB0aGVyYXB5IHNob3VsZCBiZSB2aWV3ZWQgbW9yZSBhcyBhIHdlbGxuZXNzIHNlcnZpY2UuIEl0IHNob3VsZCBiZSB2aWV3ZWQgYXMgc29tZXRoaW5nIHRoYXQgd2UgYXJlIGRvaW5nIG91ciB3aG9sZSBsaWZlIHJhdGhlciB0aGFuIHdhaXRpbmcgdW50aWwgc29tZXRoaW5nIGdldHMgYmFkLiBJdOKAmXMgYSBsaXR0bGUgd2VpcmQgdGhhdCB3ZSBoYXZlIHBlZGlhdHJpY2lhbnMgd2hvIGNoZWNrIGluIG9uIHlvdXIgY2hpbGTigJlzIGhlYWx0aCB3ZWxsbmVzcy13aXNlIGFuZCB3aGVuIHRoZXkgYXJlIHNpY2sgYWxsIHRocm91Z2ggdGhlaXIgeW91bmcgYWR1bHQgeWVhcnMgYW5kIGNoaWxkaG9vZCwgYnV0IHdlIG5ldmVyIGNvbnNpZGVyIHRoZSBiZW5lZml0IG9mIG1lbnRhbCBoZWFsdGggaW4gdGhhdC7CoFNvIEkgdGhpbmsgeW91IGtub3cgeW91ciBwYXJ0bmVyIGJlc3QgYW5kIGlmIHlvdeKAmXJlIHdpdGggYSBtYW4gYW5kIHlvdSBmZWVsIGxpa2UgdGhlcmUgYXJlIHNvbWUgdGhpbmdzIHRoYXQgYXJlIHNob3dpbmcgdXAsIHRoZW4gSSB3b3VsZCB0cnVzdCB0aGF0IGZpcnN0IG9mZiBhbmQgSSB3b3VsZCBpbnZpdGUgdGhlIGNvbnZlcnNhdGlvbiBpbiB0aGUgd2F5IHRoYXQgeW91IGtub3cgaXMgYmVzdCBmb3IgeW91ciBwYXJ0bmVyLsKgU29tZSBwYXJ0bmVycywgSSB0aGluaywgYXBwZWFsIHRvIHRoZSBsb2dpYyBvZiBpdCBhbGwuIFNvbWUgYXJlIG1vcmUgaW4gdGhlIGZlZWxpbmcgcmVhbG0uIFNvbWV0aW1lcywgeW91IGNhbiBhcHBlYWwgdG8gc29tZW9uZSB3aGVuIHRoZXJlIGhhcyBiZWVuIGEgY29uZmxpY3QgYW5kIHRoYXQgY29uZmxpY3QgaXMgZW5vdWdoIG9mIGEgc2l0dWF0aW9uIHRvIHNheSwg4oCcVGhpcyBtYXR0ZXJzLuKAnSBTb21ldGltZXMsIGl0IGNhbiBqdXN0IGJlIG1vcmUgbGlrZSBhIHN1cHBvcnRpdmUgY29udmVyc2F0aW9uLiBZb3Ugd2FudCB0aGlzIHRvIGdvIHdlbGwuIFlvdSB3YW50IG91ciBmYW1pbHkgdG8gYmUgaGVhbHRoeS4gSSBrbm93IHlvdSBjYXJlIGFib3V0IHVzLiBJIGtub3cgeW91IGNhcmUgYWJvdXQgbWUuIFRoaXMgaXMgc29tZXRoaW5nLCBJIHRoaW5rLCB0aGF0IGNvdWxkIGhlbHAuIEp1c3QgbGlrZSB5b3Ugd291bGQgcGl0Y2gsIOKAnExldOKAmXMgaGF2ZSBhIGRvdWxhLOKAnSB5b3Ugd291bGQgcGl0Y2gsIOKAnExldOKAmXMgaGF2ZSBhIG1pZHdpZmXigJ0sIHlvdSB3b3VsZCBwaXRjaCB0aGlzLCByaWdodD8gWW914oCZcmUgcGl0Y2hpbmcgdGhlIHNhbWUgdGhpbmcuwqBZb3Uga25vdywgcmVjZW50bHksIHNvbWVvbmUgYWN0dWFsbHkgc2FpZCB0byBtZSwg4oCcV2UgcmVhbGx5IGRvbuKAmXQgbmVlZCB0byBmZWVsIGd1aWx0IG9yIHNoYW1lIGZvciBoYXZpbmcgcGFzc2lvbiBpbiBob3cgd2UgcGl0Y2gu4oCdIEl04oCZcyBub3Qgc29tZXRoaW5nIHdlIG5lZWQgdG8gZmVlbCBuZWdhdGl2ZWx5IGFib3V0LiBJZiB5b3UgZmVlbCBwYXNzaW9uYXRlIGFib3V0IHNvbWV0aGluZywgaXTigJlzIG9rYXkgdG8gcGl0Y2ggaXQgdG8geW91ciBwYXJ0bmVyLiBJIHdvdWxkIGludml0ZSB0aGF0LiBTaWducyBjb3VsZCBiZSBhIGRpc2dydW50bGVkIGNvbm5lY3Rpb24gd2l0aCBhIGNoaWxkLCBtYXliZSBzb21lIGVuZXJneSB0aGVyZSB0aGF0IGRvZXNu4oCZdCBzZWVtIGF0IGVhc2UuIEl0IGNvdWxkIGJlIGFuZ2VyLCBpdCBjb3VsZCBiZSBzaHV0dGluZyBkb3duIG9mIGVtb3Rpb24sIGJ1dCB0byBiZSBob25lc3QsIHRoZXNlIGFyZSB0aGluZ3Mgd2Ugc2VlIGN1bHR1cmFsbHkgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGJpcnRoIHRyYXVtYSBpcyBwYXJ0IG9mIHRoZSBlcXVhdGlvbiBvciBub3QuwqBBZ2FpbiwgSSB0aGluayBFcmluIHdvdWxkIGJlIGJldHRlciBzdWl0ZWQgdG8gYW5zd2VyIHdoYXQgYXJlIHRoZSBzaWducyB0aGF0IGEgbWFuIGhhcyBleHBlcmllbmNlZCBzZWNvbmRhcnkgYmlydGggdHJhdW1hIG9yIGJpcnRoIHRyYXVtYSBmcm9tIHRoZSBleHBlcmllbmNlLCBidXQgZnJvbSBhIGNvdXBsZXPigJkgcGVyc3BlY3RpdmUsIEkgbWVhbiwgSSB0aGluayBjb3VwbGVzIGJlbmVmaXQgZnJvbSBjaGVjay1pbnMgYWxsIHRoZSB0aW1lIHNvIEkgZW5jb3VyYWdlIHBlb3BsZSB0byBkbyBhIHllYXJseSBjaGVjay1pbiB3aXRoIGEgcHJvdmlkZXIuIFNvbWV0aW1lcyBJIG5vdGljZSBmcm9tIG1lbiwgdGhhdCBwcm92aWRlcyBhIGxpdHRsZSBiaXQgbW9yZSBvZiBhIHNhZmV0eSBuZXQgbWVudGFsaXR5IGluIHRoZWlyIGhlYWQgaWYgdGhleSBkb27igJl0IGxvdmUgY29uZmxpY3QsIGlmIHRoZXkgZG9u4oCZdCBsb3ZlIHByb2Nlc3NpbmcgdGhlaXIgZW1vdGlvbnMsIHRoZW4gd2hhdOKAmXMgdGhlIGJvdHRvbSBsaW5lPyBXaGF0IGRvIHRoZXkgbmVlZCB0byBiZSBkb2luZyBpbiBvcmRlciB0byBhdm9pZCBtb3JlIGJsb3d1cHMgYW5kIGF2b2lkIG1vcmUgZW1vdGlvbmFsIGJyZWFrZG93bnM/IEl04oCZcyBsaWtlLCB3ZWxsIGNoZWNrIGluIG9uIHlvdXIgcGFydG5lcnNoaXBzLiBUaGF04oCZcyB0aGUgYmFzaWMgdGhpbmcuIEhhdmluZyBhIHRoaXJkIHBhcnR5IGhlbHBzIHdpdGggdGhhdCwgaXQgY3JlYXRlcyBzbyBtdWNoIG1vcmUgZWFzZSBpbiB0aGUgY29udmVyc2F0aW9uIGFuZCBmbG93IGluIHRoZSBwcm9jZXNzLsKgT25lIGFuZ2xlIGNvdWxkIGJlIHByZXNlbnRpbmcgaXQgdGhhdCB3YXkgb2YsIOKAnExldOKAmXMganVzdCBkbyBhIGNoZWNrLWluLiBMZXTigJlzIGxldCBhIHByb3ZpZGVyIGxvb2sgdXMgb3ZlciBhbmQgc2F5LCDigJhZb3VyIG1hcnJpYWdlIGxvb2tzIGdyZWF0LiBDb21lIGJhY2sgdG8gbWUgaW4gYSB5ZWFyIG1lbnRhbGl0eSzigJnigJ0gb3IgdGhlcmUgY291bGQgYmUgYW4gYWN0dWFsIGhpY2N1cCBhbmQgdGhhdCBoaWNjdXAgY291bGQgYmUgZW5vdWdoIG9mIGEgY2F0YWx5c3QgdG8gc2F5LCDigJxIZXksIHdlIGV4cGVyaWVuY2VkIHNvbWV0aGluZyBwcmV0dHkgaW50ZW5zZSB0b2dldGhlci4gV291bGQgeW91IGJlIHdpbGxpbmcgdG8gY29uc2lkZXIgZ29pbmc/4oCdIElmIHdlIGdvIGFuZCB0aGV5IHNheSwg4oCcWW91IGd1eXMgYWN0dWFsbHkgc2VlbSBwcmV0dHkgYWRhcHRhYmxlLiBZb3Ugc2VlbSBsaWtlIHlvdSBhcmUgY29ucXVlcmluZyB0aGlzIHRoaW5nIHdlbGws4oCdIHRoZW4gZmluZS4gVGhhdOKAmXMgYmVzdC1jYXNlIHNjZW5hcmlvLkJ1dCBpZiB5b3XigJlyZSBub3QsIHdvdWxkbuKAmXQgd2Ugd2FudCB0byBiZSBhcyBjb25uZWN0ZWQgYW5kIGhlYWx0aHkgYXMgYSBjb3VwbGUgYXMgcG9zc2libGU/IElmIHlvdXIgcGFydG5lciwgeW91ciBodXNiYW5kIGlzIGxpa2UsIOKAnE5vcGUsIGRvbuKAmXQgY2FyZS4gRG9u4oCZdCB3YW50IHRvIGJlIGhlYWx0aHks4oCdIHRoZW4gd2UgaGF2ZSBhIGRpZmZlcmVudCBiZWFzdCB0byBjb25xdWVyIGFuZCB0byB0YWNrbGUuIEkgdGhpbmsgeW91IHNwb2tlIHRvIGl0LiBPdXIgY3VsdHVyZSB1bmZvcnR1bmF0ZWx5IGlzIGp1c3QgdHVybmluZyB0aGUgY29ybmVyIG5vdyBpbiBpdHMgdmlldyBvZiBtZW50YWwgaGVhbHRoLiBXZSBoYXZlIGEgbG90IG9mIHdvcmsgdG8gZG8gaW4gaG93IHdlIHByZXNlbnQgaXQgYW5kIEkgYWN0dWFsbHkganVzdCBoYWQgYSBmcmllbmQgdGVsbCBtZSByZWNlbnRseSB0aGF0IGhlciBodXNiYW5kIGxpc3RlbmVkIHRvIGEgcG9kY2FzdCB0aGF0IHdhcyBhbGwgYWJvdXQgaG93IHRoZXJhcHkgaXMgYmFkLiBJIHdhcyBsaWtlLCDigJxPaCBtYW4uIEl04oCZcyBsaWtlIG9uZSBzdGVwIGZvcndhcmQsIHR3byBzdGVwcyBiYWNrLuKAnVNvIHlvdSBrbm93LCBnaXZlIGFuZCB0YWtlLCByaWdodD8gSeKAmW0gbm90IGdvaW5nIHRvIGJlIGFibGUgdG8gY29udmluY2UgZXZlcnlvbmUuIFdoaWxlIGluIGdyYWQgc2Nob29sLCB3ZSBkbyBsZWFybiB0ZWNobmlxdWVzIG9yIHN0cmF0ZWdpZXMgZm9yIGhvdyB0byBoZWxwIHNvbWVvbmUgc2VlIHRoZSBiZW5lZml0IG9mIHRoZXJhcHksIHRvIGJlIGhvbmVzdCwgcGVvcGxlIHNlZSB3aGF0IHRoZXkgd2FudCB0byBzZWUgYW5kIGlmIHNvbWVvbmUgc2l0cyBhY3Jvc3MgZnJvbSBtZSBhbmQgdGhleSBkb27igJl0IHNlZSB0aGUgdmFsdWUgb2YgdGhpcyBzcGFjZSwgdGhlbiBJIGZlZWwgdGhhdC4gSSBrbm93IHRoYXQgYW5kIGFsbCBJIGNhbiBkbyBpcyB0cnkgdG8gcHJlc2VudCBhcyBjYWxtbHkgYXMgcG9zc2libGUgd2h5IEkgdGhpbmsgYSBzdXBwb3J0aXZlIGVudmlyb25tZW50IHdvdWxkIGhlbHAgaW4gdGhlaXIgaGVhbGluZywgYnV0IHRoZSByZXN0IGlzIGEgbGl0dGxlIGJpdCBvZiBzdXJyZW5kZXJpbmcgdG8gdGhlIGdyZWF0ZXIgcG93ZXJzIGlmIHlvdSB3aWxsLCBzdXJyZW5kZXJpbmcgdG8gR29kIHRoYXQgaG9wZWZ1bGx5IHRoYXQgbWFycmlhZ2Ugd2lsbCBnZXQgdGhlIGhlYWxpbmcgYW5kIHN1cHBvcnQgaXQgbmVlZHMgYXQgc29tZSBwb2ludCBpZiBub3QgaW4gdGhlcmFweS7CoDQxOjM5IFNob3J0IGludGVydmFsIGJldHdlZW4gcHJlZ25hbmNpZXNNZWFnYW46IE9rYXksIGFuZCB0aGVuIGFsc28gbGFzdCBidXQgbm90IGxlYXN0IGJlZm9yZSB3ZSBsZXQgdGhpcyBhbWF6aW5nIGVwaXNvZGUgZ28sIEkgd2FudGVkIHRvIHRvdWNoIG9uIHNvbWV0aGluZyB0aGF0IEkgbm90aWNlZCB5b3Ugc2FpZCBlYXJsaWVyIHdpdGhpbiB0YWxraW5nIGFib3V0IHlvdXIgc2Vjb25kLiBUaGF0IGlzIHRoZSBzaG9ydCBpbnRlcnZhbC4gWW91IHNhaWQgdGhhdCB5b3UgZ290IHByZWduYW50IHN1cGVyIHN1cnByaXNpbmdseSBmb3VyIG1vbnRocyBhZnRlciBoYXZpbmcgeW91ciBmaXJzdCBzb24gc28gdGhhdCBtZWFucyB5b3UgaGFkIHRoYXQgMTQuNSBtb250aCBnYXAgd2hpY2ggaXMgYSByZWFsbHkgYmlnIHRoaW5nLiBEaWQgYW55b25lIGV2ZXIgc2F5IGFueXRoaW5nIHRvIHlvdSBhYm91dCB0aGF0PyBIb3cgd2FzIHRoYXQgYXNwZWN0IG9mIGl0P8Kg4oCL4oCLU28gSSBoYWQgbWVudGlvbmVkIHRoYXQgbXkgcHJvdmlkZXIgd2FzIGFuIExQTSBzbyBJIGtuZXcgZ29pbmcgaW50byB0aGUgc2Vjb25kIG9uZSwgSSB3YXNu4oCZdCBnb2luZyB0byBiZSBhYmxlIHRvIHdvcmsgd2l0aCBoZXIgYmVjYXVzZSBpbiBNYXJ5bGFuZCwgc2hlIGRvZXNu4oCZdCBoYXZlIGEgcmlnaHQgdG8gZG8gVkJBQ3MgZXZlbiB0aG91Z2ggc2hlIGZlZWxzIGNvbWZvcnRhYmxlIGFuZCBzaGUgd29ya3MgYWNyb3NzIHN0YXRlIGxpbmVzIHdpdGggc29tZSBBbWlzaCBjb21tdW5pdGllcyBhbmQgdGhpbmdzIGxpa2UgdGhhdCBhbmQgZG9lcyBWQkFDcywgSSBrbmV3IHRoYXQgc2hlIHdvdWxkbuKAmXQuwqBTaGUgYWN0dWFsbHkgZW5kZWQgdXAgZ2V0dGluZyBtZSBhbiBMTk0gb24gbXkgY2FzZSBzbyBraW5kIG9mIGxpa2UgYSBiYWNrdXAgbWlkd2lmZSBpZiB5b3Ugd2lsbCB3aG8gd2FzIHRlY2huaWNhbGx5IHRoZSBwcmltYXJ5IGJ1dCB0aGVyZSBpbiBjYXNlIG9mIGFuIGVtZXJnZW5jeSBhbmQgaW4gdGhhdCBqb3VybmV5LCB0aGV5IGhhZCBhY3R1YWxseSwgc29tZSBvZiB0aGUgbWlkd2l2ZXMgaW4gbXkgY29tbXVuaXR5IGNhdWdodCB3aW5kIG9mIG15IHN0b3J5IGFuZCBJIHRoaW5rIHRoZSBtZW50YWwgaGVhbHRoIGludGVyc2VjdGlvbiBhbmQgbXkgYnVzaW5lc3MgYW5kIHdhbnRlZCBtZSB0byBjb21lIGFkdm9jYXRlLsKgSSBhY3R1YWxseSBnb3QgdG8gd3JpdGUgdXAgbXkgc3RvcnkgYW5kIGdvIHRvIEFubmFwb2xpcyBhbmQgc3VwcG9ydCBhIGJpbGwgdGhhdCBkaWRu4oCZdCBnZXQgcGFzc2VkIHdoaWNoIGlzIHN0aWxsIHNvIGNyYXp5IHRvIG1lLiBJdCBoYXMgYmVlbiAxMCB5ZWFycyBpbiB0aGUgbWFraW5nLiBUaGV54oCZdmUgYmVlbiB0cnlpbmcgdG8gZ2V0IExQTXMgdGhlIHJpZ2h0IHRvIGRvIFZCQUNzIGFuZCBvbmUgb2YgdGhlIGZhY3RvcnMgaW4gdGhlIGxlZ2lzbGF0aXZlIGVmZm9ydCBpcyB0aGF0IGRvY3RvcnMgc3VnZ2VzdCB0aGF0IHRoYXQgc2hvcnQgaW50ZXJ2YWwgaXMgbm90IHNhZmUgZm9yIGEgd29tYW4gdG8gY29udGludWUgdG8gaGF2ZSB0aGUgbmF0dXJhbCBiaXJ0aC7CoFNvIHlvdSBrbm93LCBpdCB3YXMganVzdCBhIGhlYWRhY2hlIGFmdGVyIGhhdmluZyB0aGF0IGZpcnN0IHByZWduYW5jeSBhbmQgaGF2aW5nIHRvIGdvIGFjcm9zcyBzdGF0ZSBsaW5lcyB0byBmaW5kIGEgc3VwcG9ydGl2ZSBwcm92aWRlciBmb3IgdGhlIGJyZWVjaCBhbmQgdGhlbiBhbm90aGVyIHByZWduYW5jeSB3aGVyZSB0aGV54oCZcmUgZXNzZW50aWFsbHkgc2F5aW5nLCDigJxZb3UgZG9u4oCZdCBnZXQgdG8gcGljayB5b3VyIHByb3ZpZGVyLiBZb3UgZG9u4oCZdCBnZXQgdG8gcGljayB0aGUgcGVyc29uIHlvdSBmZWVsIHNhZmVzdCBvciBtb3N0IGNvbWZvcnRhYmxlIHdpdGguIFlvdSBoYXZlIHRvIGdvIHRoZSByb3V0ZS7igJ0gSW4gTWFyeWxhbmQsIHRoZXJl4oCZcyBhY3R1YWxseSBub3QgYSBsb3Qgb2YgaG9zcGl0YWxzIHRoYXQgd2lsbCBhbGxvdyB5b3UgdG8gZG8gdmFnaW5hbCBldmVuIGluIHRoZSBob3NwaXRhbCBhbmQgdGhleeKAmXJlIHB1c2hpbmcgdGhlIEMtc2VjdGlvbiBmcm9tIHRoZSBnZXQtZ28gYmVjYXVzZSBvZiB0aGUgc2hvcnQgaW50ZXJ2YWwgcGllY2UuSeKAmW0gZ2xhZCB3ZSBjaXJjbGVkIGJhY2sgdG8gdGhhdCBiZWNhdXNlIGl04oCZcyBqdXN0IGNyYXp5IHRvIHNwZWFrIHRvIGxlZ2lzbGF0b3JzLCB0byBzcGVhayB0byBBbm5hcG9saXMsIHRvIHNoYXJlIG15IHN0b3J5LCBhbmQgdG8gYmUgc2l0dGluZyB0aGVyZeKAlCBJIHdhcyBob2xkaW5nIG15IGJhYnkuIEhlIHdhcyBtYXliZSA2IHdlZWtzIG9sZCBzbyBJ4oCZbSBiYWJ5IHdlYXJpbmcgaGltIGFuZCBzcGVha2luZyBteSBzdG9yeSBhbmQgSeKAmW0gbGlrZSwg4oCcVGhpcyBpcyBhY3R1YWxseSBpbnNhbmUuIEnigJltIGEgd29tYW4gd2hvIGFjdHVhbGx5IGRvZXNu4oCZdCBldmVuIGdldCB0byBwaWNrIG15IHByb3ZpZGVyLuKAnUl04oCZcyBzbyBzY2FyeSBhbmQgYWxhcm1pbmcgdGhhdCBpbiBzb21lIHN0YXRlcywgdGhpcyBpcyB0aGUgcHJlZGljYW1lbnQgdGhhdCB3ZSBhcmUgaW4sIGJ1dCBob3BlZnVsbHkgYXMgd29tZW4gY29udGludWUgdG8gc3BlYWsgYW5kIGNvbnRpbnVlIHRvIHNoYXJlIGhvdyBpbXBvcnRhbnQgaXQgaXMgdGhhdCB0aGV5IGhhdmUgcmlnaHRzIHRvIHRoZWlyIHByb3ZpZGVycywgcmlnaHRzIHRvIHRoZWlyIGVudmlyb25tZW50IG9mIHRoYXQsIGFuZCBhbGwgb2YgdGhhdCwgd2XigJlsbCBzZWUgc29tZSBtb3ZlbWVudCBldmVudHVhbGx5LsKgTWVhZ2FuOiBZZXMuIEkgd2FzIGdvaW5nIHRvIHNheSwgc3BlYWsgdXAuIFRoYXQgaXMgd2hhdCB3ZSBuZWVkIGlzIHNwZWFrIHVwLCBzcGVhayB1cCwgc3BlYWsgdXAuIFllcywgdGhleeKAmXZlIGdvdCBzb21lIGV2aWRlbmNlIG91dCB0aGVyZSBzaG93aW5nIHRoYXQgbGVzcyB0aGFuIDE4IG1vbnRocyBvciB3aGF0ZXZlciwgZXZlbiBzb21lIHByb3ZpZGVycyBzYXkgMjQgbW9udGhzIGlzIGxlc3MgaWRlYWwsIGJ1dCBwZW9wbGUgYXJlIGRvaW5nIGl0LiBUaGV5IGFyZSBkb2luZyBpdCBzYWZlbHkuIE1vbSBhbmQgYmFieSBhcmUgb2theSBzbyBzcGVhayB1cCBzbyB5b3UgY2FuIGdldCB5b3VyIHByb3ZpZGVyLiBTcGVhayB1cCBzbyB3ZSBjYW4gbWFrZSB0aGF0IG1vdmVtZW50IGFuZCBzZWUgdGhhdCBjaGFuZ2UuIFRoYW5rIHlvdSBzbyBtdWNoIGFuZCBhbHNvLCBjb25ncmF0cyBmb3IgZG9pbmcgdGhhdC4gVGhhdOKAmXMgYSByZWFsbHkgZW1vdGlvbmFsIHRpbWXigJQgNiB3ZWVrcy4gSG9seSBjb3cuIFRoYW5rIHlvdSBmb3IgZG9pbmcgdGhhdCBhbmQgc3BlYWtpbmcgdXAuwqBLZW5kcmE6IFRoYXQgZmVsdCBoZWFsaW5nIHRvby4gVGhlIFZCQUMgZmVsdCBoZWFsaW5nLCBidXQgaXQgYWxzbyBmZWx0IGhlYWxpbmcgdG8gYmUgbGlrZSwg4oCcSSBuZWVkIHRvIGhhdmUgYSB2b2ljZSBpbiB0aGlzIGVxdWF0aW9uIGJlY2F1c2UgSSB3YW50IHRvIGNob29zZSBteSBwcm92aWRlciBmb3IgbXkgbmV4dCBiYWJ5IGFuZCBpcm9uaWNhbGx5LCB0aGUgYmlsbCBkaWRu4oCZdCBnZXQgcGFzc2VkIGFuZCBJ4oCZbSBvbiB0byB0aGUgbmV4dCBiYWJ5IGFuZCBzdGlsbCBoYWQgdG8gcGljayBhIGRpZmZlcmVudCBwcm92aWRlci4gSeKAmW0gaW4gdGhlIHNhbWUgcHJlZGljYW1lbnQu4oCdIFNvIHllYWgsIGtlZXAgc3BlYWtpbmcgdXAuIEkgYWdyZWUuIFRoYW5rIHlvdS7CoE1lYWdhbjogQXdlc29tZS4gSSBsb3ZlIGl0LiBUaGFuayB5b3Ugc28gbXVjaCBmb3Igc2hhcmluZyB5b3VyIGtub3dsZWRnZSwgeW91ciBzdG9yeSwgeW91ciBiZWF1dGlmdWwgc3RvcnksIGFuZCB5b3VyIHJlZGVtcHRpdmUgYmlydGgsIGFuZCBJ4oCZbSBkZWZpbml0ZWx5IGdvaW5nIHRvIHJlYWNoIG91dCB0byBFcmluIHRvIGRvIGEgc3Bpbm9mZi7CoEtlbmRyYTogU3VyZSwgc3VyZS7CoE1lYWdhbjogSG9wZWZ1bGx5IHNoZeKAmWxsIGFjY2VwdCB0aGUgaW52aXRhdGlvbiBhbmQgd2XigJlsbCBoYXZlIGhlciBvbiBpbiBhbm90aGVyIGVwaXNvZGUuwqA0NTo1MSBUaWHigJlzIHRvcCB0aHJlZSB0aXBzTWVhZ2FuOiBUaGVuIEkgd2FudGVkIHRvIHR1cm4gdGhlIHRpbWUgb3ZlciB0byBUaWEgcmVhbGx5IHF1aWNrbHkgYmVmb3JlIHdlIHdyYXAgdXAgYmVjYXVzZSB3ZSBoYXZlIHRhbGtlZCBhIGxvdCBhYm91dCwgaW4gdGhpcyB3aG9sZSBmb3J1bSwgd2UgdGFsayBhYm91dCBob3cgdG8gc3VwcG9ydCBWQkFDIGFuZCBob3cgdG8gbG92ZS4gU2hl4oCZcyBhIGRvdWxhIGFuZCBJIHdhbnRlZCB0byBrbm93IG9uZSBvZiB0aGUgdG9wIHRocmVlIHdheXMgdGhhdCBzaGXigJQgaGVyIGFkdmljZSwgaGVyIGxvdmUsIHdoYXQgZG8geW91IHByb3ZpZGUgZm9yIHlvdXIgZG91bGFzIGFuZCB3aGF0IGRvIHlvdSBzdWdnZXN0P8KgVGlhOiBZZWFoLCBhYnNvbHV0ZWx5LiBUaGVyZSBhcmUgdGhyZWUga2V5IHRoaW5ncyB0aGF0IEkgdGhpbmsgc3VwZXIgYmVuZWZpdCBhbnkgbW9tLCByZWFsbHkgYW55IG1vbSB3aG8gaXMgZW1iYXJraW5nIG9uIHRoaXMgam91cm5leSBvZiBwcmVnbmFuY3kgYW5kIGJpcnRoIGJ1dCBwYXJ0aWN1bGFybHkgZm9yIG15IG1vbXMgd2hvIGFyZSB3YW50aW5nIGEgVkJBQy4gSSBhbHdheXMgc2F5IHRoYXQgdGhlIG51bWJlciBvbmUgdGhpbmfigJQgSSBzaG91bGQgc2F5IHRvIGhpcmUgYSBkb3VsYSBidXQgdGhhdOKAmXMgbm90IGluIG15IHRvcCB0aHJlZSBiZWNhdXNlIEkgZmVlbCBsaWtlIHRoZXJlIGFyZSB0aHJlZSB0aGluZ3MgdGhhdCBwZW9wbGUgY2FuIHJlYWxseSBmb2N1cyBvbiBvdXRzaWRlIG9mIHRoYXQuwqBUaGUgZmlyc3Qgb25lIGlzIGdldHRpbmcgYSBzdXBwb3J0aXZlIHByb3ZpZGVyLiBIYW5kcyBkb3duLCBpZiB0aGVyZSBpcyBub3RoaW5nIGVsc2UgdGhhdCB5b3UgZG8gZHVyaW5nIHRoaXMgcHJvY2VzcywgdGhlIG1vc3QgaW1wb3J0YW50IHRoaW5nIGlzIGdldHRpbmcgYSBzdXBwb3J0aXZlIHByb3ZpZGVyLiBTbyB3ZSB0YWxrIGEgbG90IGFib3V0IHdoYXQgYXJlIHJlZCBmbGFncy4gV2hhdCBhcmUgZ3JlZW4gZmxhZ3M/IEkgbWFrZSBpdCBhYnVuZGFudGx5IGNsZWFyIHRoYXQgdGhlIGJlc3QgZG91bGEgaW4gdGhlIHdvcmxkIGNhbm5vdCBzYXZlIHlvdSBmcm9tIGEgcG9vciBwcm92aWRlciBvciBhbiB1bnN1cHBvcnRpdmUgcHJvdmlkZXIuIFRoZXJlIGlzIG5vdGhpbmcgd2UgY2FuIGRvLsKgV2UgY2FuIGhlbHAgeW91IGFkdm9jYXRlIGFuZCB3ZSBjYW4gZWR1Y2F0ZSwgYnV0IHRoYXTigJlzIGFsbCB0byB0cnkgdG8gaG9wZWZ1bGx5IGxlYWQgeW91IHRvIGlkZW50aWZ5IGlmIHlvdSBhcmUgd2l0aCBhbiB1bnN1cHBvcnRpdmUgcHJvdmlkZXIgYW5kIHRoZW4gaG93IHRvIHN1cHBvcnQgeW91IGluIGZpbmRpbmcgYSBwcm92aWRlciB0aGF0IHJlYWxseSBqaXZlcyB3aXRoIHlvdSwgc3VwcG9ydHMgeW91ciBiaXJ0aCB2aXNpb24gdGhhdCB5b3UgZmVlbCBzYWZlIHdpdGguIEZlZWxpbmcgc2FmZSBpcyBzbyBpbmNyZWRpYmx5IGltcG9ydGFudCBpbiB0aGlzIHByb2Nlc3MgZXNwZWNpYWxseSBpZiB5b3UgbWF5YmUgZG9u4oCZdCB0cnVzdCB5b3VyIGJvZHkgYWxsIHRoZSB3YXkuwqBJIGhhdmUgYSBsb3Qgb2YgVkJBQyBjbGllbnRzIHdobyBhcmUgbGlrZSwg4oCcSSB3YW50IHRvIHRydXN0IG15IGJvZHkuIEV2ZXJ5b25lIHNheXMgdGhhdCBvdXIgYm9kaWVzIGFyZSBtYWRlIHRvIGJpcnRoLCBidXQgdGhlIGZpcnN0IHRpbWUsIGl0IGRpZG7igJl0IGhhcHBlbi4gSSBoYXZlIGEgaGFyZCB0aW1lIHRydXN0aW5nIG15IGJvZHkgYmVjYXVzZSBJIGZlZWwgbGlrZSBpdCBsZXQgbWUgZG93biB0aGUgZmlyc3QgdGltZS7igJ0gU28gZmVlbGluZyBzYWZlIHdpdGggYSBwcm92aWRlciwgZmVlbGluZyBoZWFyZCBieSBhIHByb3ZpZGVyLCBhbmQgaGF2aW5nIHNvbWVvbmUgd2hvIGlzIGdlbnVpbmVseSBvbiB5b3VyIHRlYW0gd2hvIGxvdmVzIFZCQUMsIHdobyBsb3ZlcyBiaXJ0aCwgdGhhdCBpc27igJl0IGdvaW5nIHRvIGJlIGEgcm9hZGJsb2NrIG9yIGFuIG9ic3RhY2xlIGlzIHNvIGluY3JlZGlibHkgaW1wb3J0YW50LiBXZSBhbHdheXMgdGVsbOKAlCBJIHdvcmsgd2l0aCBhIHBhcnRuZXIuIEhlciBuYW1lIGlzIExpc2EuwqBXZSB0ZWxsIG91ciBjbGllbnRzLCDigJxXZSBjYW4gaW4gdGhlIHdvcnN0IGNhc2Ugc2NlbmFyaW8gaGVscCB5b3UgYWR2b2NhdGUgYW5kIGFkdm9jYXRlIHNlbWkgb24geW91ciBiZWhhbGYs4oCdIGJ1dCB3ZSBuZXZlciBzcGVhayBmb3Igb3VyIGNsaWVudHMuIERvIHlvdSByZWFsbHkgd2FudCB0byBiZSBmaWdodGluZyBvbiB5b3VyIGJpcnRoIGRheT8gRG8geW91IHdhbnQgdGhhdCB0byBiZSBwYXJ0IG9mIHlvdXIgYmlydGggc3RvcnkgdGhhdCDigJxJIGhhZCB0byBzcGVuZCB0aW1lIGZpZ2h0aW5nIG9yIHB1c2hpbmcgYmFjayB0cnlpbmcgdG8gYXNrIGZvciB0aGUgYmFzaWMgY2FyZSBvciByZXNwZWN0IHRoYXQgSSBkZXNlcnZl4oCdP8KgTXkgbnVtYmVyIG9uZSB0aXAgaXMgdG8gaGlyZSBhIHN1cHBvcnRpdmUgcHJvdmlkZXIuIEJlaW5nIGJvbGQgaW4gZmlyaW5nIGEgcHJvdmlkZXIgdGhhdCBpcyBub3QgZm9yIHlvdS4gWW91IGNhbiBzYXksIOKAnFRoaXMgcmVsYXRpb25zaGlwIGlzIG5vdCB3b3JraW5nIGZvciBtZSzigJ0gYW5kIGZpbmQgc29tZW9uZSBlbHNlLiBZb3UgY2FuIGZvY3VzIGxlc3Mgb24gaHVydGluZyBmZWVsaW5ncyBhbmQgZm9jdXMgbW9yZSBvbiB3aGF0IHlvdSBuZWVkIGR1cmluZyB0aGlzIHRpbWUsIGFic29sdXRlbHkuwqA0ODo1NCBIaXJlIGEgZ3JlYXQgc3VwcG9ydCB0ZWFtwqBUaWE6IE15IHNlY29uZCB0aXDigJMgYW5kIHRoaXMgaXMgaG9uZXN0bHkgZ3JlYXQgZm9yIHRoaXMgZXBpc29kZSB3aXRoIEtlbmRyYSBpcyBoaXJpbmcgYSBncmVhdCBzdXBwb3J0IHRlYW0gYW5kIHRoYXQgaW5jbHVkZXMgZG91bGFzLCBidXQgaGF2aW5nIHRoYXQgcmVhbGx5IGdvb2QsIHN0cm9uZyBhZGphY2VudCBzdXBwb3J0IGluIGFkZGl0aW9uIHRvIGEgc3VwcG9ydGl2ZSBwcm92aWRlciBpcyByZWFsbHkgaW1wb3J0YW50IHNvIHdlIHRhbGsgYWJvdXQgZ2V0dGluZyBhIG1lbnRhbCBoZWFsdGggcHJvZmVzc2lvbmFsIHF1ZXVlZCB1cCBhbmQgdGhhdOKAmXMgZm9yIGFueSBvZiBvdXIgbW9tcywgc2Vjb25kLXRpbWUgbW9tcywgZmlyc3QtdGltZSBtb21zLCBWQkFDIG1vbXMuIEnigJltIGFsd2F5cyBsaWtlLCDigJxJZiB5b3UgcnVuIGludG8gYSBwcm9ibGVtLCB5b3UgZG9u4oCZdCB3YW50IHRvIGJlIGEgbmV3IHBhdGllbnQuIFlvdSBkb27igJl0IHdhbnQgdG8gYmUgNiB3ZWVrcyBwb3N0cGFydHVtIGZlZWxpbmcgbGlrZSB5b3UgZXhwZXJpZW5jZWQgYmlydGggdHJhdW1hLCB0aGUgd29ybGQgaXMgbm93IGNyYXNoaW5nIGRvd24gYW5kIHdlIGFyZSB0cnlpbmcgdG8gZmluZCBhIHByb3ZpZGVyIGluIHRoaXMgZm9nIHdoZW4gSSBrbm934oCdIGJlY2F1c2UgZXZlcnlvbmUgaW4gbXkgaG91c2Ugc2VlcyBhIG1lbnRhbCBoZWFsdGggcHJvdmlkZXIgYmVjYXVzZSBJIGZlZWwgbGlrZSBpdOKAmXMgYSBzdXBlciBpbXBvcnRhbnQgd2VsbG5lc3MgdGhpbmcsIGJ1dCBpdCB0YWtlcyBhIHdoaWxlIHRvIGdldCBpbi7CoFlvdSBkb27igJl0IHdhbnQgdG8gYmUgZmlnaHRpbmcgaW5zdXJhbmNlIGFuZCBmaW5kaW5nIHByb3ZpZGVycy4gTWF5YmUgdGhlIGZpcnN0IG9uZSBpcyBub3QgYSBnb29kIGZpdCBhbmQgZG9pbmcgYWxsIG9mIHRoYXQgd2hlbiB5b3UgYXJlIGNhcnJ5aW5nIHRoZSB3ZWlnaHQgb2YgdGhlIHdvcmxkIGJlY2F1c2UgeW91IG5lZWQgaGVscCBub3cuIEnigJltIGxpa2UsIHRoZSB3b3JzdCBjYXNlIHNjZW5hcmlvIGlzIHlvdeKAmWxsIGZlZWwgbGlrZSBpdCB3YXMgb25lIHVubmVjZXNzYXJ5IHZpc2l0IHBvc3QtYmlydGggYW5kIHRoYXQgeW91IGdvdCB0byBwcm9jZXNzIHRoaXMgYW1hemluZyBiaXJ0aCBzdG9yeSwgYW5kIHdobyBkb2VzbuKAmXQgbGlrZSB0YWxraW5nIGFib3V0IGFuIGFtYXppbmcgYmlydGggc3Rvcnk/wqBLZW5kcmE6IFNvIHdlbGwgc2FpZC7CoFRpYTogWWVhaC4gSWYgdGhhdOKAmXMgbm90IHRoZSBjYXNlIHRob3VnaCwgeW914oCZcmUgcXVldWVkIHVwIG5vdyB3aXRoIHNvbWVvbmUgdG8gYmUgcHJlcGFyZWQgdG8gaGVscCB5b3UgdGhhdCB5b3XigJl2ZSBidWlsdCB0aGlzIHNlbWktcmVsYXRpb25zaGlwIHdpdGguIEkgZmVlbCBsaWtlIGl04oCZcyBzdXBlciBpbXBvcnRhbnQgdG8gaGF2ZSBtZW50YWwgaGVhbHRoLCBhbmQgYSBnb29kIElCQ0xDIGlmIHlvdXIgZ29hbCBpcyB0byBicmVhc3RmZWVkIGJlY2F1c2UgYWdhaW4sIGZpbmRpbmcgdGhhdCB0aHJlZSBkYXlzIGhvbWUgZnJvbSB0aGUgaG9zcGl0YWwgYW5kIG15IGJhYnnigJlzIG5vdCBlYXRpbmcgaXMgYSBkaWZmaWN1bHQgdGltZSB0byBmaW5kIGFuIElCQ0xDIHdobyB3b3JrcyB3aXRoIHlvdXIgaW5zdXJhbmNlLCB0aGF0IGhhcyBhbiBvcGVuaW5nIHRoYXQgY2FuIGNvbWUgdG8geW91IGluIHlvdXIgYXJlYS7CoE1lYWdhbjogVGhhdCBjYW4gYWxzbyBhZmZlY3QgdXMgZXZlbiBtb3JlIG1lbnRhbGx5LsKgVGlhOiBZZXMuIFllYWgsIHllYWguIEJlIHJlYWxseSBwcm9hY3RpdmUgYWJvdXQgaGF2aW5nIHlvdXIgdmlsbGFnZSBvciB5b3VyIHRlYW0gcXVldWVkIHVwIGFuZCByZWFkeSB0byBnby4gV2UgYWxzbyBmaW5kIHRoaXMgd2l0aCBtYXNzYWdlIHRoZXJhcGlzdHMsIGNoaXJvcHJhY3RvcnMsIGFuZCBwZWx2aWMgZmxvb3IgUFTigJQgSSBoYXZlIGEgd2hvbGUgbGlzdC4gSeKAmW0gbGlrZSwg4oCcSSBrbm93IGl0IHNlZW1zIGxpa2UgYSBsb3QuIEl0IHNlZW1zIGxpa2UgSeKAmW0gYXNraW5nIHlvdSB0byBzcGVuZCBzbyBtdWNoIG9mIHlvdXIgdGltZSBvbiB0aGlzLOKAnSBidXQgSSBqdXN0IHdhbnQgcGVvcGxlIHRvIGhhdmUgdGhlIGJlc3QgcHJlZ25hbmN5IGFuZCBhIHJlYWxseSBzdXBwb3J0ZWQsIGhhcHB5IHBvc3RwYXJ0dW0gdGhhdCB0aGV5IGNhbi4gSSBmZWVsIGxpa2UgYWxsIG9mIHRoZXNlIHByb3ZpZGVycywgZXNwZWNpYWxseSBteSBWQkFDIG1vbXMgcGxheSBhIGtleSByb2xlIHdpdGggc2NhciB0aXNzdWUgYW5kIGJhYnkgcG9zaXRpb25pbmcgYW5kIHlvdXIgcGVsdmljIGZsb29yLCB5b3UgYXJlIGNvbm5lY3RlZCB3aXRoIGl0IGJlY2F1c2UgaXQgY2FuIGdldCBvZmYgZXZlbiBhZnRlciBhIEMtc2VjdGlvbi7CoEkgaGVhciBhIGxvdCwg4oCcSSBoYWQgYSBDLXNlY3Rpb24uIEkgZGlkbuKAmXQgaGF2ZSBhIHZhZ2luYWwgYmlydGguIFdoeSBkbyBJIG5lZWQgcGVsdmljIGZsb29yIHRoZXJhcHk/4oCdIFdl4oCZcmUgZ29pbmcgdG8gaGF2ZSBhIHdob2xlIGNvbnZlcnNhdGlvbiBhYm91dCB0aGlzLCBidXQgdGhhdCByZWFsbHkgZ29lcyBpbnRvIHRoYXQuIEJ1aWxkaW5nIGFuIGFtYXppbmcgc3VwcG9ydCB0ZWFtIGFuZCBob3cgaW1wb3J0YW50IHRoYXQgaXMuwqA1MTozOCBQcmVwYXJlIHlvdXIgbWluZFRpYTogTGFzdGx5LCBpdOKAmXMgcHJlcGFyaW5nIHlvdXIgbWluZC4gRXZlcnlib2R5IHRoaW5rcyB0aGF0IGhpcmluZyBhIGRvdWxhIGlzIHNvIGhlbHBmdWwgZm9yIHBhaW4gcmVsaWVmIGFuZCBlbmNvdXJhZ2VtZW50IGFuZCBzdWdnZXN0aW5nIHBvc2l0aW9ucyB0byB5b3UsIGJ1dCB3aGVuIEkgbWVhbiB3aXRoIHBlb3BsZSBmb3IgcGxhbm5pbmcgdGhlaXIgYmlydGggaW4gdGhlaXIgcHJlbmF0YWxzLCB3ZSB0YWxrIGFib3V0LCDigJxJIGNhbiBzdWdnZXN0IGFsbCBvZiB0aGUgcG9zaXRpb25zIGluIHRoZSB3b3JsZCBhbmQgeW91IGNhbiBkbyBsdW5nZXMgZXZlcnkgZGF5IGFuZCBiZSBwaHlzaWNhbGx5IHN0cm9uZywgYnV0IGlmIHlvdSBkbyBub3QgcHJlcCB0byBiZSBtZW50YWxseSBwcmVwYXJlZCB0byBnbyB0aHJvdWdoIGJpcnRoIHdoZXRoZXIgdGhhdOKAmXMgYSBWQkFDLCB1bm1lZGljYXRlZCBkZWxpdmVyeSwgb3IgYW55IHR5cGUgb2YgZGVsaXZlcnks4oCdIHBlb3BsZSB0ZW5kIHRvIHBhbmljIHdoZW4gdGhleSBmZWVsIHRoYXQgaW50ZW5zZSBzZW5zYXRpb24uIEl0IGlzbuKAmXQgYSBzZW5zYXRpb24gdGhhdCB5b3UgY2FuIHByZXBhcmUgZm9yIGlmIHlvdSBoYXZlbuKAmXQgZmVsdCBpdCBiZWZvcmUgc28gaWYgeW91IGhhdmUgbm90IHByZXBhcmVkIG9yIHBsYW5uZWQgYSB3YXkgdG8gc3RheSBtaW5kZnVsIGFuZCByZWxheGVkIGFuZCBncm91bmRlZCBhbmQgY29uZmlkZW50IGFuZCB5b3Ugc3RhcnQgdG8gcGFuaWMsIHRoYXQgcmVhbGx5IHJhbXBzIHVwIHlvdXIgZGlzY29tZm9ydCBhbmQgaXTigJlzIHNvIGhhcmQgdG8gZ2V0IG91dCBvZiB0aGF0IGN5Y2xlIG9uY2UgeW914oCZcmUgaW4gaXQuwqBJ4oCZbSBsaWtlLCB5ZXMuIERvIHRoZSBsdW5nZXMuIERvIHRoZSBwcmVuYXRhbCB5b2dhLiBIYXZlIHlvdXIgYm9keSBpbiBhIGdvb2QgcGxhY2UsIGJ1dCBpZiB5b3Ugb25seSBjb3VsZCBwaWNrIG9uZSwgSSB3b3VsZCBzYXkgdG8gdHJhaW4geW91ciBtaW5kLiBTaXQgZG93biBhbmQgZmlndXJlIG91dCB3aGF0IG1ha2VzIHlvdSBmZWVsIGdvb2QgZW1vdGlvbmFsbHksIHdoYXQgbWFrZXMgeW91ciBib2R5IHJlbGF4LCB3aGF0IG1ha2VzIHlvdSBmZWVsIHNhZmUgYW5kIHRocm93IHlvdXJzZWxmIGludG8gdGhhdCBiZWNhdXNlIHRoYXQgaXMgZ29pbmcgdG8gYmUgc28gdmFsdWFibGUgdG8geW91IGluIGxhYm9yLsKgWWVhaC4gVGhhdCBpcyBlc3NlbnRpYWxseSB3aGF0IEkgdGFsayBhYm91dCB3aXRoIGFsbCBvZiBteSBmYW1pbGllcyBpbiBhIHZlcnkgY29uZGVuc2VkIHZlcnNpb24gb2YgbXkgdG9wIHRocmVlIHRpcHMuwqBLZW5kcmE6IFRob3NlIGFyZSBncmVhdC7CoE1lYWdhbjogVGhvc2UgYXJlIHNvIGdyZWF0LiBTbywgc28gZ3JlYXQuIFdoZW4geW91IHRhbGsgYWJvdXQgYnVpbGRpbmcgeW91ciBiaXJ0aCB0ZWFtLCBhIHByb3ZpZGVyIGFuZCBhIGRvdWxhIHJlYWxseSBhcmVu4oCZdCBqdXN0IHRob3NlIHR3byB0aGluZ3MuIEl0IHJlbWluZGVkIG1lIHdoZW4geW91IHdlcmUgc2F5aW5nIHRoYXQgd2hlbiB3ZSBwbGFuIG91ciB3ZWRkaW5ncywgd2UgaGlyZSBjYXRlcmVycyBhbmQgcGhvdG9ncmFwaGVycyBhbmQgZmxvcmlzdHMgYW5kIHZpZGVvZ3JhcGhlcnMgYW5kIHdoYXRldmVyLiBXZSBoaXJlIGFsbCBvZiB0aGUgcGVvcGxlLiBXZSBoaXJlIHRoZSB3aG9sZSB0ZWFtLCBldmVyeXRoaW5nLiBCdXQgdGhlbiBzb21ldGltZXMsIG5vdCBldmVuIGp1c3Qgc29tZXRpbWVzLCBhIGxvdCBvZiB0aGUgdGltZSB3aGVuIHdlIGFyZSBoYXZpbmcgdGhlc2UgYmFiaWVzLCB3ZSBkb27igJl0IHJlYWxseSBwdXQgaXQgYXMgYSBwcmlvcml0eSBsaWtlIHdlIHdvdWxkIGF0IGEgd2VkZGluZy4gV2UgZG9u4oCZdCBsb29rIGF0IHRoYXQgd2hlbiBpdCBpc+KAkyBJIGRvbuKAmXQgd2FudCB0byBzYXkgd2VkZGluZ3MgYXJlbuKAmXQgaW1wb3J0YW50LiBUaGV5IGFyZSBhbWF6aW5nLiBUaGlzIGlzIHdoYXQgc3RhcnRzIGEgbG90IG9mIHRoZSBqb3VybmV5cywgYnV0IHRoaXMgaXMgYSByZWFsbHkgYmlnIGRheS7CoFlvdSBoYXZpbmcgeW91ciBiYWJ5IGlzIGEgcmVhbGx5IGJpZyBkYXkgYW5kIHlvdSBnbyB0aHJvdWdoIGEgbG90IG1lbnRhbGx5IGFuZCBwaHlzaWNhbGx5LiBJdOKAmXMgYWxsIGNvbm5lY3RlZCBzbyB5b3UgZGVzZXJ2ZSB0byBjcmVhdGUgdGhhdCBwb3dlcmhvdXNlIHRlYW0sIHRvIHNlZSBhIG1lbnRhbCB0aGVyYXBpc3QgYW5kIHdvcmsgb24geW91ciBtZW50YWwgaGVhbHRoLCB0byBkbyBhIGNoaXJvcHJhY3RvciwgdGhlIHBlbHZpYyBmbG9vciB0aGVyYXBpc3QsIG1hc3NhZ2UsIHRoZSBudXRyaXRpb25pc3QgZXZlbi4gR2V0IHRoZSBnb29kIG51dHJpZW50cy4gR2V0IHRoZSBnb29kIHRoaW5ncyB0aGF0IHlvdSBuZWVkIGFuZCBiZSBzZXQgdXAgYW5kIG5vdCBoYXZlIHRvIGxvb2sgYmFjayBhbmQgYmUgbGlrZSwg4oCcSSB3aXNoIEkgZGlk4oCdIG9yIOKAnEkgd2lzaCBJIGtuZXfigJ0uIEl04oCZcyBzbyBpbXBvcnRhbnQuIFllYWguIFlvdSBtaWdodCBub3QgbmVlZCBldmVyeSBzaW5nbGUgcGFydCBvZiBpdCBhbG9uZyB0aGUgd2F5IGJ1dCB5b3UgbWlnaHQgbm90IGtub3cgdGhhdCB5b3UgbmVlZCB0aGF0IGluIHRoZSBmdXR1cmUuIEl04oCZcyB0aGVyZS4gSXTigJlzIHJlYWR5IGZvciB5b3UgYW5kIHlvdeKAmXJlIGFuY2hvcmVkIGluLktlbmRyYTogSXTigJlzIGxpa2UgeW91IGRvbuKAmXQga25vdyB3aGF0IHlvdSBkb27igJl0IGtub3cuIEkgYWRkZWQgY2hpcm9wcmFjdGljIGNhcmUgdG8gbXkgc2Vjb25kIHByZWduYW5jeSBiZWNhdXNlIEkgcmVhbGx5IHdhbnRlZCB0byBzdXBwb3J0IGFzIG11Y2ggb3BlbmluZyBpbiBteSBib2R5IGFzIHBvc3NpYmxlIHNvIEkgZGlkbuKAmXQgaGF2ZSBhbm90aGVyIGJyZWVjaC4gQnV0IHRoaXMgZ28gYXJvdW5kLCBJ4oCZdmUgYWRkZWQgdGhlIHBlbHZpYyBmbG9vciBhdCB0aGUgcmVjb21tZW5kYXRpb24gb2YgbXkgbWlkd2lmZSBhbmQgSSBoYWQgdGhpcywg4oCcRXZlcnlib2R5IHBlZXMgYSBsaXR0bGUgYWZ0ZXIgdGhleeKAmXZlIGhhZCBhIGNvdXBsZSBvZiBiYWJpZXMuIEl04oCZcyBmaW5lLCByaWdodD/igJ0gYnV0IHNoZSB3YXMgbGlrZSwg4oCcTm8uIFlvdSBjYW4gaGVhbCB0aGF0LuKAncKgU28gd2hlbiBJIHdlbnQgYW5kIHNhdyB0aGUgcGVsdmljIGZsb29yIHRoZXJhcGlzdCB0aGUgZmlyc3QgdGltZSwgc2hlIHdhcyBsaWtlLCDigJxXaGVuIGRpZCB0aGlzIGJlZ2luP+KAnSBJIHdhcyB0aGlua2luZy4gSSB3YXMgdGhpbmtpbmcuIEkgd2FzIGxpa2UsIOKAnEkgd2FzIGF0IGEgVGF5bG9yIFN3aWZ0IGNvbmNlcnQgYW5kIEkgdHJpZWQganVtcGluZyB1cCBhbmQgZG93biBhbmQgaXQgYWxsIGNhbWUgb3V0LuKAnSBJIHdhcyBnb25lLiBJIHdhcyBnb25lLiBJIHdhcyB0aGVyZSBsYXN0IHdlZWsgYW5kIGRvaW5nIHRoZSBleGVyY2lzZXMgYW5kIEkgZmVsdCB0aGlzIHN1cmdlIG9mIGVtb3Rpb24gb24gdGhlIHdheSBob21lLiBJ4oCZbSBsaWtlLCDigJxLZW5kcmEsIHlvdSBrbm93IHRoaXMuIFlvdSBrbm93IHRoYXQgd2hlbiB5b3Ugd29yayBpbiB0aGUgcGVsdmljIHJlZ2lvbiwgd2hlbiB5b3Ugd29yayBpbiB0aGUgaGlwIHJlZ2lvbiwgdGhlcmUgYXJlIGVtb3Rpb25hbCBtZW1vcmllcyBzdG9yZWQgaW4gdGhhdCBwYXJ0IG9mIHlvdXIgYm9keS7igJ0gUGVsdmljIGZsb29yIHRoZXJhcHkgaXNu4oCZdCBqdXN0IGFib3V0IGVuaGFuY2luZyB5b3VyIHBlbHZpYyBmbG9vci4gSXTigJlzIHRoYXQgd2hvbGUgbGlzdCBvZiBlbmNvbXBhc3NpbmcgY2FyZSwgc28gSeKAmW0gc28gZ2xhZCB5b3Ugc3Bva2UgdG8gdGhhdCBUaWEuwqBUaWE6IFllYWguIFllYWguIEkgZmVlbCBsaWtlIGl0IHJlYWxseSBjbGlja3MgZm9yIHBlb3BsZSB3aGVuIEkgc2F5IGl04oCZcyBhIG1hbnRyYS4gVHJlYXQgeW91ciBiaXJ0aCBsaWtlIGl04oCZcyB5b3VyIHdlZGRpbmcuIFlvdeKAmXJlIGVudGl0bGVkIHRvIGJlIGEgZGl2YSwgYnJpZGV6aWxsYSwgb3Igd2hhdGV2ZXIuIEluIHRoZSBlcXVhdGlvbiBvZiB5b3VyIGJpcnRoLCB5b3Ugd2lsbCByZW1lbWJlciB0d28gZGF5cyBpbiB5b3VyIGxpZmUgb3IgbWF5YmUgdGhyZWUuIEdyYWR1YXRpbmcgZnJvbSBjb2xsZWdlLCB5b3VyIHdlZGRpbmcgZGF5LCBhbmQgdGhlIGRheSB5b3UgZ2l2ZSBiaXJ0aC4gVGhleSB3aWxsIGxpdmUgaW4geW91ciBicmFpbi7CoEJlY2F1c2UgaXTigJlzIGJlZW4gc28gbWVkaWNhbGl6ZWQsIEkgZmVlbCBsaWtlIHdlIGp1c3QgZ2l2ZSBiaXJ0aCBvdmVyLiBXZeKAmXJlIGxpa2UsIOKAnEl04oCZcyBqdXN0IHRoaXMgdGhpbmcgdGhhdCBoYXBwZW5zIHRvIHVz4oCdIGJ1dCB5b3UgZG9u4oCZdCByZWFsaXplIHRoZSBlbW90aW9uIGFuZCB0aGUgbWVtb3J5IGFuZCB0aGUgZmVlbGluZyB5b3Ugd2lsbCBjYXJyeSB3aXRoIHlvdSBqdXN0IGxpa2UgeW91ciB3ZWRkaW5nIGRheSBmb3JldmVyLiBCZSB0aGUgcGVyc29uIHdobyB0cmVhdHMgaXQgbGlrZSB5b3VyIHdlZGRpbmcuIFdoZW4gSSBzYXkgdGhhdCwgdGhleeKAmXJlIGxpa2UsIOKAnE9oIG15IGdvc2guIE9mIGNvdXJzZS4gV2h5IGFtIEkgbm90IGRvaW5nIHRoaXM/4oCdTWVhZ2FuOiBZZXMuIEV4YWN0bHkgdGhvdWdoLiBEbyBpdC4gV29tZW4gb2YgU3RyZW5ndGgsIHlvdSBkZXNlcnZlIGl0LiBQdXQgeW91cnNlbGYgaW4gdGhhdCBsaW5lIG9mIGJlaW5nIGZpcnN0LiBJdOKAmXMgb2theS4gSXTigJlzIG9rYXkuIEkgbG92ZSB0aGF0IHlvdeKAmXJlIGxpa2UgdGhlIGJpcnRoLXppbGxhLiBXaGF0IGRvIHdlIG5lZWQgdG8gYmU/IEkgZG9u4oCZdCBrbm93IHdoYXQgd2UgbmVlZCB0byBiZSwgYnV0IHlvdSBkZXNlcnZlIGl0LCBhbmQgb2ggbXkgZ29zaC4gR3JlYXQgdGlwcy4gQW1hemluZyBzdG9yeS4gUG9zc2libGUgc3Bpbi1vZmYgaGVyZS4gQWxsIG9mIHRoZSBnb29kIHRoaW5ncyBoYXBwZW5pbmcgdG9kYXkgaGVyZSBvbiBUaGUgVkJBQyBMaW5rIFBvZGNhc3QuwqBDbG9zaW5nV291bGQgeW91IGxpa2UgdG8gYmUgYSBndWVzdCBvbiB0aGUgcG9kY2FzdD8gVGVsbCB1cyBhYm91dCB5b3VyIGV4cGVyaWVuY2UgYXQgdGhldmJhY2xpbmsuY29tL3NoYXJlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBhbGwgdGhpbmdzIFZCQUMgaW5jbHVkaW5nIG9ubGluZSBhbmQgaW4tcGVyc29uIFZCQUMgY2xhc3NlcywgVGhlIFZCQUMgTGluayBibG9nLCBhbmQgTWVhZ2Fu4oCZcyBiaW8sIGhlYWQgb3ZlciB0byB0aGV2YmFjbGluay5jb20uIENvbmdyYXR1bGF0aW9ucyBvbiBzdGFydGluZyB5b3VyIGpvdXJuZXkgb2YgbGVhcm5pbmcgYW5kIGRpc2NvdmVyeSB3aXRoIFRoZSBWQkFDIExpbmsuU3VwcG9ydCB0aGlzIHBvZGNhc3QgYXQg4oCUIGh0dHBzOi8vcmVkY2lyY2xlLmNvbS90aGUtdmJhYy1saW5rL2RvbmF0aW9uc0FkdmVydGlzaW5nIElucXVpcmllczogaHR0cHM6Ly9yZWRjaXJjbGUuY29tL2JyYW5kcyIsImR1cmF0aW9uIjp7InRvdGFsTWlsbGlzZWNvbmRzIjozNDQ4MTExfSwiaWQiOiI2UXIzekU2Q2c3NGRReVk3c0NzRnRWIiwibWVkaWFUeXBlcyI6WyJBVURJTyJdLCJuYW1lIjoiRXBpc29kZSAyOTUgRHIuIEtlbmRyYSdzIEVtcG93ZXJpbmcgSEJBQyArIFRpcHMgRnJvbSBhIFZCQUMgRG91bGEiLCJwbGF5YWJpbGl0eSI6eyJwbGF5YWJsZSI6dHJ1ZSwicmVhc29uIjoiUExBWUFCTEUifSwicGxheWVkU3RhdGUiOnsicGxheVBvc2l0aW9uTWlsbGlzZWNvbmRzIjowLCJzdGF0ZSI6Ik5PVF9TVEFSVEVEIn0sInBvZGNhc3RWMiI6eyJfX3R5cGVuYW1lIjoiUG9kY2FzdFJlc3BvbnNlV3JhcHBlciIsImRhdGEiOnsiX190eXBlbmFtZSI6IlBvZGNhc3QiLCJjb3ZlckFydCI6eyJzb3VyY2VzIjpbeyJoZWlnaHQiOjY0LCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDBmNjhkYmI1Zjc2YmE0MzJkZmMzMDNmMzdmODA2Iiwid2lkdGgiOjY0fSx7ImhlaWdodCI6MzAwLCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDA1ZjFmYmI1Zjc2YmE0MzJkZmMzMDNmMzdmODA2Iiwid2lkdGgiOjMwMH0seyJoZWlnaHQiOjY0MCwidXJsIjoiaHR0cHM6Ly9pLnNjZG4uY28vaW1hZ2UvYWI2NzY1NjMwMDAwYmE4YWJiNWY3NmJhNDMyZGZjMzAzZjM3ZjgwNiIsIndpZHRoIjo2NDB9XX0sIm5hbWUiOiJUaGUgVkJBQyBMaW5rIiwic2hvd1R5cGVzIjpbXSwidXJpIjoic3BvdGlmeTpzaG93OjM2YlZ4cU9HZDFFWWNSMG9KdGVGNW4ifX0sInJlbGVhc2VEYXRlIjp7Imlzb1N0cmluZyI6IjIwMjQtMDQtMjlUMTI6MDA6MDBaIn0sInJlc3RyaWN0aW9ucyI6eyJwYXl3YWxsQ29udGVudCI6ZmFsc2V9LCJ1cmkiOiJzcG90aWZ5OmVwaXNvZGU6NlFyM3pFNkNnNzRkUXlZN3NDc0Z0ViJ9LHsiX190eXBlbmFtZSI6IkVwaXNvZGUiLCJhdWRpbyI6eyJpdGVtcyI6W3siZmlsZUlkIjoiNTg4MjdjYmFkNDM1NmU4MzczM2FiMzBjYTkxMzI5YjM0MjVlN2Y1NSIsImZvcm1hdCI6IkFBQ18yNCIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3LzU4ODI3Y2JhZDQzNTZlODM3MzNhYjMwY2E5MTMyOWIzNDI1ZTdmNTUifSx7ImZpbGVJZCI6IjA1YzVjNmM3MTJlNjczMTA2MGIzODk3Y2JmOGMxODgzM2EyMDNlYjUiLCJmb3JtYXQiOiJPR0dfVk9SQklTXzk2IiwidXJsIjoiaHR0cHM6Ly9wLnNjZG4uY28vbXAzLXByZXZpZXcvMDVjNWM2YzcxMmU2NzMxMDYwYjM4OTdjYmY4YzE4ODMzYTIwM2ViNSJ9LHsiZmlsZUlkIjoiNDE2MTExNTAzNzkxOTJlMmIyYzNlYzJkMDJhZjE4NWJkNDdmODkyYSIsImZvcm1hdCI6Ik1QNF8xMjgiLCJ1cmwiOiJodHRwczovL3Auc2Nkbi5jby9tcDMtcHJldmlldy80MTYxMTE1MDM3OTE5MmUyYjJjM2VjMmQwMmFmMTg1YmQ0N2Y4OTJhIn0seyJmaWxlSWQiOiIyNGMxNjZlNGNlMmFmYjAxNWRjNTA3M2Y5N2U4YTBkNzU0YmRkM2YxIiwiZm9ybWF0IjoiTVA0XzEyOF9EVUFMIiwidXJsIjoiaHR0cHM6Ly9wLnNjZG4uY28vbXAzLXByZXZpZXcvMjRjMTY2ZTRjZTJhZmIwMTVkYzUwNzNmOTdlOGEwZDc1NGJkZDNmMSJ9LHsiZmlsZUlkIjoiZDc4YzBiZDBiMzA3OWYwZGI0MDljYzU3ZmYzODM4ZmI2YzEwODM3YiIsImZvcm1hdCI6Ik1QNF8xMjhfQ0JDUyIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3L2Q3OGMwYmQwYjMwNzlmMGRiNDA5Y2M1N2ZmMzgzOGZiNmMxMDgzN2IifV19LCJjb250ZW50UmF0aW5nIjp7ImxhYmVsIjoiTk9ORSJ9LCJjb3ZlckFydCI6eyJzb3VyY2VzIjpbeyJoZWlnaHQiOjY0LCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDBmNjhkZGYzNWFmOGUwZDgwYjcxMzg4ZjdhNjQyIiwid2lkdGgiOjY0fSx7ImhlaWdodCI6MzAwLCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDA1ZjFmZGYzNWFmOGUwZDgwYjcxMzg4ZjdhNjQyIiwid2lkdGgiOjMwMH0seyJoZWlnaHQiOjY0MCwidXJsIjoiaHR0cHM6Ly9pLnNjZG4uY28vaW1hZ2UvYWI2NzY1NjMwMDAwYmE4YWRmMzVhZjhlMGQ4MGI3MTM4OGY3YTY0MiIsIndpZHRoIjo2NDB9XX0sImRlc2NyaXB0aW9uIjoiSGF5bGV5IGpvaW5zIHRoZSBzaG93IHRvZGF5IHNoYXJpbmcgaGVyIGJyZWVjaCBDZXNhcmVhbiBhbmQgdW5tZWRpY2F0ZWQgaG9zcGl0YWwgVkJBQyBzdG9yaWVzLiBNZWFnYW4gYW5kIEhheWxleSBkaXZlIGRlZXAgaW50byB0aGUgcHJvcyBhbmQgY29ucyBvZiBnZXR0aW5nIGFuIGVwaWR1cmFsIGFuZCB3aHkgcHJvdmlkZXJzIHRlbGwgd29tZW4gc28gbWFueSBkaWZmZXJlbnQgdGhpbmdzIHdoZW4gaXQgY29tZXMgdG8gZXBpZHVyYWxzIGFuZCBWQkFDIVdoaWxlIEhheWxleSBoYWQgdGhlIGRyZWFtaWVzdCBiaXJ0aCBzaGUgY291bGQgaGF2ZSBpbWFnaW5lZCBhbmQgZXZlcnl0aGluZyB3ZW50IGFjY29yZGluZyB0byBwbGFuLCBoZXIgcG9zdHBhcnR1bSBleHBlcmllbmNlIHdpdGggcHJvbGFwc2Ugd2FzIG5vdCBzb21ldGhpbmcgc2hlIHdhcyBwcmVwYXJlZCBmb3IuIEhheWxleSBzaGFyZXMgaGVyIHN5bXB0b21zLCB3aGF0IHNoZSB3aXNoZWQgc2hlIGtuZXcsIGFuZCB3aGF0IHNoZSBoYXMgZG9uZSBzaW5jZSB0byByZWNvdmVyIGFuZCBmZWVsIGxpa2UgaGVyc2VsZiBhZ2Fpbi7CoE5lZWRlZCBXZWJzaXRlSG93IHRvIFZCQUM6IFRoZSBVbHRpbWF0ZSBQcmVwIENvdXJzZSBmb3IgUGFyZW50c0Z1bGwgVHJhbnNjcmlwdCB1bmRlciBFcGlzb2RlIERldGFpbHPCoDAyOjQ3IEp1c3QtaW4tY2FzZSBlcGlkdXJhbDA0OjE2IERyLiBNY0d1aXJl4oCZcyBpbnNpZ2h0IG9uIGVwaWR1cmFsczA4OjQyIFVzaW5nIGFuIGVwaWR1cmFsIGFzIGEgdG9vbDEwOjQ0IEhheWxleeKAmXMgZmlyc3QgcHJlZ25hbmN5IGFuZCBiaXJ0aDEyOjAwIERvaW5nIFZCQUMgcmVzZWFyY2ggYmVmb3JlIHByZWduYW5jeTEzOjUxIEhheWxleeKAmXMgc2Vjb25kIHByZWduYW5jeTE4OjE1IExhYm9yIGJlZ2luczIwOjE2IEdvaW5nIHRvIHRoZSBob3NwaXRhbDI0OjIwIFB1c2hpbmcyNzowNSBIYXlsZXnigJlzIHByb2xhcHNlIGV4cGVyaWVuY2UzMjowMSBTeW1wdG9tcyBvZiB1dGVyaW5lIHByb2xhcHNlMzU6MjkgUHJvbGFwc2UgY2FuIGhhcHBlbk1lYWdhbjogSGVsbG8sIGhlbGxvIFdvbWVuIG9mIFN0cmVuZ3RoLiBZb3UgZ3V5cywgSSBhbSBleGNpdGVkIGFib3V0IHRvZGF54oCZcyBlcGlzb2RlLiBJIGxvdmUgdGFsa2luZyBhYm91dCBWQkFDIG9idmlvdXNseSwgYnV0IHNwZWNpZmljYWxseSwgd2UgYXJlIGdvaW5nIHRvIHRhbGsgYSBsaXR0bGUgYml0IGFib3V0IHVubWVkaWNhdGVkIHZlcnN1cyBtZWRpY2F0ZWQuIE91ciBmcmllbmQsIEhheWxleSwgZnJvbSBOb3J0aCBDYXJvbGluYSBoYXMgaGFkIGEgYmVhdXRpZnVsIHVubWVkaWNhdGVkIGhvc3BpdGFsIFZCQUMgc28gSSB3YW50IHRvIGFsc28gdGFsayBhYm91dCB0aGUgb3Bwb3NpdGUgc2lkZSBvZiB0aGF0IGFuZCB0YWxrIGFib3V0IG1lZGljYXRlZCBWQkFDLsKgV2UgaGF2ZSBzbyBtYW55IHBlb3BsZSBpbiBvdXIgY29tbXVuaXR5IHRoYXQgSSBzZWUgdHlwZSwg4oCcSSB3YW50IGEgVkJBQywgYnV0IEkgZG9u4oCZdCB3YW50IHRvIGdvIHVubWVkaWNhdGVkIGFuZCBteSBkb2N0b3Igc2F5cyBJIGhhdmUgdG8uIEkgY2Fu4oCZdCBoYXZlIGFuIGVwaWR1cmFs4oCdIG9yIHRoZSB0b3RhbCBmbGlwc2lkZSBvZiB0aGF0IHdoZXJlLCDigJxJIHJlYWxseSB3YW50IGFuIHVubWVkaWNhdGVkIFZCQUMsIGJ1dCBteSBkb2N0b3Igc2F5cyBJIGNhbuKAmXQgZ28gdW5tZWRpY2F0ZWQuIEkgaGF2ZSB0byBoYXZlIHRoZSBlcGlkdXJhbC7igJ0gRGlkIEkganVzdCBzYXkgdGhhdCBjb3JyZWN0bHksIEhheWxleT/CoEhheWxleTogWWVzLCB5ZWFoLsKgTWVhZ2FuOiBJdOKAmXMgZWl0aGVyIG9uZSBvciB0aGUgb3RoZXIuIFdl4oCZdmUgZ290IHByb3ZpZGVycyB0ZWxsaW5nIHBlb3BsZSB0aGV5IGNhbuKAmXQgaGF2ZSBhbiBlcGlkdXJhbCBvciB0aGV5IGhhdmUgdG8gaGF2ZSBhbiBlcGlkdXJhbC4gU28gSSB3YW50ZWQgdG8ganVzdCB0YWxrIGEgbGl0dGxlIGJpdCB0b2RheSBiZWZvcmUgd2UgZ2V0IGdvaW5nIG9uIHRob3NlIHR3byB0b3BpY3MuwqBGaXJzdCBvZiBhbGwsIGxldOKAmXMgdGFsayBhYm91dCB1bm1lZGljYXRlZCBiaXJ0aC4gSGF5bGV5IGFuZCBJIGFyZSBsaXZpbmcgcHJvb2YgdG9kYXkuIFdlIGFyZSBvbiB0aGlzIGVwaXNvZGUgdGhhdCB1bm1lZGljYXRlZCBWQkFDIGlzIDEwMCUgcG9zc2libGUsIGFjaGlldmFibGUsIGFuZCBzYWZlLiBBIGxvdCBvZiB0aG9zZSBwcm92aWRlcnMgY29tZSBvdXQgYW5kIHNheSB0aGF0IHRoZXkgY2Fu4oCZdCBnbyB1bm1lZGljYXRlZCBiZWNhdXNlIHRoZXkgc2F5IGl04oCZcyBub3Qgc2FmZS4gSW4gdGhlIHJhcmUgY2hhbmNlLCB3ZSBrbm93IHRoYXQgdXRlcmluZSBydXB0dXJlIGhhcHBlbnMgYnV0IGl0IGlzIHJhcmUuIEluIHRoZSByYXJlIGNoYW5jZSBvZiBhIHV0ZXJpbmUgcnVwdHVyZSwgdGhhdCBpcyB3aGVyZSB0aGV5IHNheSB0aGF0IGlzIG5vdCBva2F5LsKgT3IgdGhleSB3aWxsIHNheSB0aGluZ3MgbGlrZSwg4oCcQnV0IHlvdSB3b3VsZG7igJl0IHdhbnQgdG8gYmUga25vY2tlZCBvdXQgZm9yIHlvdXIgYmlydGgs4oCdIHdoaWNoIGlzIHNjYXJ5LiBJIGRvbuKAmXQgd2FudCB0byBiZSBrbm9ja2VkIG91dCBmb3IgbXkgYmlydGggYW5kIEkga25vdyBwZW9wbGUgaGF2ZS4gQSBsb3Qgb2YgdGhlIHRpbWUsIGl0IGlzIG5vdCB0aGUgbW9zdCBwbGVhc2FudCBleHBlcmllbmNlLiBZZWFoLiBPa2F5LCBzbyBsZXTigJlzIHRhbGsgYWJvdXQgdGhhdC7CoFVubWVkaWNhdGVkIHZhZ2luYWwgYmlydGggaXMgdW5tZWRpY2F0ZWQgdmFnaW5hbCBiaXJ0aC4gVGhhdOKAmXMgd2hhdCBpdCBpcy4gSeKAmW0ganVzdCBsYXlpbmcgaXQgb3V0IHRoZXJlLiBZZXMsIHdlIGhhdmUgYSBzbGlnaHQgaW5jcmVhc2UgaW4gdXRlcmluZSBydXB0dXJlLiBZZXMuIFdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIGEgdXRlcmluZSBydXB0dXJlIGFuZCB3ZSBhcmUgdW5tZWRpYXRlZD/CoEEgbG90IG9mIHRoZSB0aW1lLCB3ZSBhcmUgbm90aWNpbmcgdGhhdCB0aGVyZSBhcmUgc2lnbnMgb2YgdXRlcmluZSBydXB0dXJlLiBXaGVuIHdlIGdldCBhbiBlcGlkdXJhbCBhbmQgYSBzcGluYWwsIHdlIGdvIGJhY2sgYW5kIGhhdmUgYSBDLXNlY3Rpb24uIFNpbXBsZSBhcyB0aGF0LsKgT3IgaWYgaXQgaXMgYSB0cnVlIG1lZGljYWwgZW1lcmdlbmN5LCB5ZXMsIHRoZXJlIGlzIHRoYXQgc21hbGwgcmlzayBvZiBuZWVkaW5nIHRvIGJlIHB1dCB1bmRlci4gU21hbGwgcmlzayBhbmQgc21hbGwgcmlzayBlcXVhbCByaXNrIG9mIGNvdXJzZSwgYnV0IGl04oCZcyBsb3cuwqAwMjo0NyBKdXN0LWluLWNhc2UgZXBpZHVyYWxNZWFnYW46IFdoYXQgYWJvdXQgaWYgd2UgaGF2ZSB0aGUganVzdC1pbi1jYXNlIGVwaWR1cmFsPyBJIHNlcmlvdXNseSBzb21ldGltZXMganVzdCB3YW50IHRvIHNvY2sgc29tZW9uZSB3aG8gc2F5cyDigJxKdXN0IGluIGNhc2XigJ0uIFdlIGRvbuKAmXQgbmVlZCB0byBiZSBwbGFjaW5nIGFuIGVwaWR1cmFsIGp1c3QgdG8gaGF2ZSBpdCByZWFkeSB0byBkb3NlIGJlY2F1c2UgZ3Vlc3Mgd2hhdD8gSW4gdGhlIGV2ZW50IHRoYXQgaXQgaXMgYSB0cnVlIGVtZXJnZW5jeSBhbmQgd2UgcmVhbGx5IGRvIG5lZWQgdG8gZ28gaW4gZm9yIGFuIGltbWVkaWF0ZSBDZXNhcmVhbiwgaXTigJlzIHRoZSBzYW1lIHRoaW5nLiBXZSBnZXQga25vY2tlZCBvdXQuwqBJIGtub3cgdGhhdCB0aGVzZSB3b3JkcyBhcmUga2luZCBvZiBiaWcgYW5kIGhhcnNoIHdvcmRzLiBXZSBnZXQga25vY2tlZCBvdXQsIGJ1dCB3ZSBnZXQgcHV0IHVuZGVyIGdlbmVyYWwgYW5lc3RoZXNpYSBpZiB3ZSBkb27igJl0IGhhdmUgYW55dGhpbmcgaW4gb3VyIHN5c3RlbS7CoE5vdywgbGV04oCZcyB0YWxrIGFib3V0IGFuIGVwaWR1cmFsLiBZb3UgYWN0dWFsbHkgaGF2ZSBhbiBlcGlkdXJhbCBwbGFjZWQuIEl04oCZcyBydW5uaW5nLiBJdOKAmXMgZG9zZWQgYW5kIHdlIGhhdmUgYSB1dGVyaW5lIHJ1cHR1cmUuIEd1ZXNzIHdoYXQ/IFdvbWVuIG9mIFN0cmVuZ3RoLCBtb3JlIHRoYW4gbGlrZWx5LCBpdCBzdGlsbCBoYXMgdG8gYmUgZG9zZWQgZnVydGhlciBiZWNhdXNlIGFuIGVwaWR1cmFsIGlzIG5vdCBsaWtlIGEgc3BpbmFsLiBJdOKAmXMganVzdCBub3QuIFRoZXkgaGF2ZSB0byBkb3NlIGl0IGZ1cnRoZXIuwqBXaXRoIG15IGZpcnN0IENlc2FyZWFuLCBJIGhhZCBhbiBlcGlkdXJhbC4gVGhleSBoYWQgdG8gY29tZSBpbiwgZG9zZSBpdCB0byBhIGRlZXBlciBleHRyZW1lIHNvIEkgd2FzbuKAmXQgZmVlbGluZyBteSBzdXJnZXJ5IGFuZCBJIGhhZCB0byB3YWl0LiBSaWdodD8gV2UgYXJlIHN0aWxsIHdhaXRpbmcuIEl04oCZcyB0aGUgc2FtZSB0aGluZy4gVGhlcmUgaXMgYWx3YXlzIGEgd2FpdCBhbmQgaXQgdGFrZXMgdGltZS4gSXQgdGFrZXMgYWJvdXQgMTUtMjAgbWludXRlcyBmb3IgYW55IGVwaWR1cmFsIHRvIGtpY2sgaW4gZGVlcCBlbm91Z2guwqAwNDoxNiBEci4gTWNHdWlyZeKAmXMgaW5zaWdodCBvbiBlcGlkdXJhbHNNZWFnYW46IERyLiBNY0d1aXJlIHdyb3RlIGZvciBZYWxlIE1lZGljaW5lLiBTaGUgdGFsa3MgYWJvdXQgdGhpcyBlcGlkdXJhbCBhbmQgaXMgaXQgc2FmZSBhbmQgaG93IGFyZSB0aGV5IGRpZmZlcmVudC4gU2hlIHRhbGtzIGFib3V0IGhvdyB0aGV5IHRydWx5IGFyZSBkaWZmZXJlbnQgdGhhbiB0aGV5IHdlcmUgYmFjayBpbiB0aGUgZGF5IGJlY2F1c2UgdGhleSBhcmUgZG9zaW5nIHRoZW0gbGlnaHRlci4gV2Uga25vdyB0aGF0LiBXZSBoYXZlIHNlZW4gdGhhdCwgYnV0IHdlIHN0aWxsIGhhdmUgc29tZSBwcmV0dHkgc2VyaW91cyByaXNrcyBhcyB3ZWxsIHdpdGggZXBpZHVyYWxzIGV2ZW4gdGhvdWdoIGFnYWluLCB0aGV5IGFyZSBzbWFsbGVyLiBUaGVyZSBhcmUgYmxvb2QgY2xvdHMsIHNwaW5hbCBpbmZlY3Rpb25zLCBzcGluYWwgaGVhZGFjaGVzLCB0aGVtIG5vdCB3b3JraW5nLCBhbmQgdGhpbmdzIGxpa2UgdGhhdCwgYW5kIGJsb29kIHByZXNzdXJlLsKgSeKAmW0gZ29pbmcgdG8gc2F5IGFzIGEgZG91bGEsIEnigJl2ZSBhdHRlbmRlZCBvdmVyIDM1MCBiaXJ0aHMuIEFzIGEgZG91bGEsIEkgd2lsbCBzYXkgYSBsYXJnZSBwb3J0aW9uIG9mIGFueSBjbGllbnQsIG5vdCBqdXN0IFZCQUMsIHdobyByZWNlaXZlcyBhbiBlcGlkdXJhbCBoYXMgYSBibG9vZCBwcmVzc3VyZSBkaXAuIEV2ZW4gd2hlbiB0aGV5IGhhdmUgYSBsYXJnZSBhbW91bnQgb2YgZmx1aWQgYmVjYXVzZSBhIGxvdCBvZiB0aGUgdGltZSB0aGV5IHdpbGwgY3JhbSBmbHVpZHMgaW4gdG8gdHJ5IHRvIGhlbHAgdGhpcywgYnV0IHRoZXJlIGlzIHNvbWUgc29ydCBvZiBibG9vZCBwcmVzc3VyZSBkaXAgYW5kIGJhYnkgc2VlbXMgdG8gc3RydWdnbGUgd2hlbiB0aGF0IGhhcHBlbnMuwqBUaGVuIGl04oCZcyB0aGUgY2FzY2FkZeKAkyByb2xsaW5nIG92ZXIsIG1vdmUsIG1vdmUsIG1vdmUsIG1vdmUuIEJhYnkgZG9lc27igJl0IHJlY292ZXIgb3IgbW9t4oCZcyBibG9vZCBwcmVzc3VyZSBkb2VzbuKAmXQgcmVjb3ZlciBhbmQgd2UgYXJlIG9mZiB0byBhbiBPUi7CoE9uZSBvZiB0aGUgYmlnZ2VzdCBxdWVzdGlvbnMgdGhhdCBJIHRoaW5rIGlzIGEgcmVhbGx5IGhvdCBkZWJhdGUgaW4gdGhlIG1lZGljYWwgd29ybGQgaXMgZG9lcyBhbiBlcGlkdXJhbCByYWlzZSB5b3VyIGNoYW5jZXMgb2YgYSBDZXNhcmVhbj8gTW9zdCBwZW9wbGUgb3V0IHRoZXJlIGFyZSBnb2luZyB0byBzYXksIOKAnE5vLCBpdCBkb2VzbuKAmXQu4oCdIFRoZSBzdHVkaWVzIGFyZSBwcmV0dHkgbG93LCB0aG91Z2guIEkgdGhpbmsgaW4gb25lIHN0dWR5IHRoZXJlIHdlcmUgMiwwMDAgcGVvcGxlIG9yIHNvbWV0aGluZyBsaWtlIHRoYXQgYW5kIHRoZXkgc2hvd2VkIGl0IGRpZG7igJl0LsKgQnV0IEkgbWVhbiwgZnJvbSBhIGRvdWxh4oCZcyBzdGFuZHBvaW50LCBJIGtub3cgSSBkb27igJl0IHNlZSBhcyBtYW55IGJpcnRocyBhcyB0aGVzZSBPQnMsIGJ1dCBJIGRlZmluaXRlbHkgc2VlIGl0IHNlZW1zIHRvIGRvIHRoYXTigJMgdGhlIGJsb29kIHByZXNzdXJlIGRyb3AgdGhpbmcuIFNvIGlzIGl0IHNhZmU/IFllcy4gRG8geW91IGhhdmUgdG8gZ28gdW5tZWRpY2F0ZWQgaWYgeW91IGhhdmUgYSBWQkFDPyBOby4gRG8geW91IGhhdmUgdG8gZ2V0IGFuIGVwaWR1cmFsIGlmIHlvdSBoYXZlIGFuIGVwaWR1cmFsPyBOby4gRG8gd2hhdCBpcyBiZXN0IGZvciB5b3UuwqBXaGF0IHNoZSBzYXlzIGlzLCDigJxUaG9zZSBzdHVkaWVzIHdlIGtub3cgdGhhdCBoYXZlIGEgaGlnaGVyIGNvbmNlbnRyYXRpb24gb2YgZXBpZHVyYWwgbWVkaWNpbmUgd2FzIGFzc29jaWF0ZWQgd2l0aCBhbiBpbmNyZWFzZWQgcmlzayBvZiBDZXNhcmVhbiwgdGhvdWdoIGxvd2VyIGNvbmNlbnRyYXRpb24gd2Ugbm93IHVzZSBhY3R1YWxseSBwcm9tb3RlcyBub3JtYWwsIHNwb250YW5lb3VzIHZhZ2luYWwgZGVsaXZlcnkgd2l0aG91dCBhc3Npc3RhbmNlLuKAnSBXaGVuIHNoZSBzYXlzIGFzc2lzdGFuY2UsIGEgbG90IG9mIHRoZSB0aW1lIHdoZW4gd2UgaGF2ZSBlcGlkdXJhbHMsIHdlIGhhdmUgdmFjdXVtIG9yIGZvcmNlcHMgYXNzaXN0YW5jZSBiZWNhdXNlIHdlIGhhdmUgbGFjayBvZiBtb2JpbGl0eS7CoFRoYXTigJlzIHdoYXQgc2hlIHdhcyBzYXlpbmcgaGVyZS4gSSB3YW50IHRvIG1ha2Ugc3VyZSB0byBwcm92aWRlIHRoZSBsaW5rIGFuZCBzb21lIG90aGVyIGxpbmtzIG9uIG91ciBibG9nIGZvciBlcGlkdXJhbHMgc28geW91IGNhbiBkZWNpZGUgd2hhdCBpcyBiZXN0IGZvciB5b3UuIEJ1dCBmb3Igbm93LCB3ZSBhcmUgZ29pbmcgdG8gZ2V0IGludG8gYSBzdG9yeSBvZiBhbiB1bm1lZGljYXRlZCwgdmFnaW5hbCBiaXJ0aC7CoDA4OjQyIFVzaW5nIGFuIGVwaWR1cmFsIGFzIGEgdG9vbE1lYWdhbjogT2theSwgTXMuIEhheWxleS4gV2VsY29tZSB0byB0aGUgc2hvdy7CoEhheWxleTogVGhhbmsgeW91IGZvciBoYXZpbmcgbWUuIEl04oCZcyByZWFsbHkgY3JhenkgdG8gYmUgb24gaGVyZSBzaGFyaW5nIHNvIHRoYW5rIHlvdS7CoE1lYWdhbjogSSB0YWxrIGFib3V0IGhvdyBpdOKAmXMgY3JhenkgdG8gYmUgZnVsbC1jaXJjbGUgd2hlcmUgeW91IGFyZSBsaXN0ZW5pbmcuIFlvdSBhcmUgcHJlcGFyaW5nLiBBbGwgb2YgdGhlIHBlb3BsZSBpbiB5b3VyIGVhciBhcmUgbW90aXZhdGluZyBhbmQgdGhlbiBoZXJlIHlvdSBhcmUgdG9kYXkgc2hhcmluZyB5b3VyIHN0b3J5IG1vdGl2YXRpbmcgb3RoZXJzIGluIHlvdXIgc2FtZSBzcGFjZSB4LCB5LCB6IG1vbnRocyBhZ28uwqBIYXlsZXk6IFllYWguIEl04oCZcyBjcmF6eS4gSXQgcmVhbGx5IGlzIGEgZnVsbC1jaXJjbGUgbW9tZW50IGxpa2UgeW91IG1lbnRpb25lZC7CoE1lYWdhbjogWWVhaC4gV2VsbCwgSSBhbSBzbyBob25vcmVkIHRoYXQgeW91IGFyZSBoZXJlLiBJIHdvdWxkIGxvdmUgdG8gdHVybiB0aGUgdGltZSBvdmVyIHRvIHlvdS7CoEhheWxleTogU3VyZS4gU28geWVhaCwgSSBhbHNvIGxvdmUgd2hhdCB5b3Ugd2VyZSBzYXlpbmcgcmVhbGx5IHF1aWNrbHkgb24gdGhlIGVwaWR1cmFsIHZlcnN1cyBub3QuIEZ1bGwgdHJhbnNwYXJlbmN5LCB3aGVuIEkgd2VudCBpbnRvIHRoaXMsIEkgZGVmaW5pdGVseSByZWNvZ25pemVkIHRoYXQgYW4gZXBpZHVyYWwgaXMgYSB0b29sIGFuZCBJIGtuZXcgYW5kIHdhbnRlZCB0byBwcmVwYXJlIG15c2VsZi4gSWYgSSBhbeKAkyBvYnZpb3VzbHksIGJpcnRoIGlzIG5vdCBwbGVhc2FudC4gSXTigJlzIG5vdCBnb2luZyB0byBiZSBhIHdhbGsgaW4gdGhlIHBhcmsuIEJ1dCBJIGtuZXcgdGhlcmUgd2FzIGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGJlaW5nIGluIHBhaW4gdmVyc3VzIHN1ZmZlcmluZy4gSSByZWFsbHkgd2FudGVkIHRvIGtub3cgdGhhdCBmb3IgbXlzZWxmLiBJdCBpZiB0dXJuZWQgaW50byB0aGF0IHN1ZmZlcmluZywgSSB3b3VsZG7igJl0IGhhdmUgYmVlbiBvcHBvc2VkIHRvIGhlbHBpbmcgbXkgYm9keSB0byBnZXQgbXkgYmFieS7CoE1lYWdhbjogVG8gdGhlIG5leHQgcG9pbnQsIHllYWguwqBIYXlsZXk6IEJ1dCB0aGVyZSBpcyBhIGRpZmZlcmVuY2UgYmV0d2VlbiBiZWluZyBpbiBwYWluIGFuZCBzdWZmZXJpbmcuwqBNZWFnYW46IEFzIGEgZG91bGEsIHdlIHRhbGsgYWJvdXQgdGhhdCBhIGxvdCB3aGVyZSB3ZSBhcmUgbGlrZSwgb2theS4gV2UgYXJlIHBsYW5uaW5nIHRvIGdvIHVubWVkaWNhdGVkLiBUaGF0IGlzIGZhbnRhc3RpYyBhbmQgdGhlbiB3ZSB0YWxrIGFib3V0IHRoYXQgcGFpbiB2ZXJzdXMgc3VmZmVyaW5nIGFuZCB0aGF0IHRyYW5zaXRpb24gYmVjYXVzZSB3aGVuIHdlIGFyZSBzdWZmZXJpbmcsIHdlIHN0YXJ0IGhhdmluZyB0aGluZ3MgdGhhdCBjb21lIHVwIGxhdGVyLiBXZSBkb27igJl0IHRoaW5rIGFib3V0IGl0LiBXZSBhcmUgc3VmZmVyaW5nIG5vdywgYnV0IHBvc3RwYXJ0dW0gZGVwcmVzc2lvbiwgcG9zdHBhcnR1bSBhbnhpZXR5LCBhbmQgcG9zdHBhcnR1bSB0cmF1bWEuIFdlIGhhdmUgdGhlc2UgdGhpbmdzIHRoYXQgYXJlIG5vdCB3b3J0aCBpdCwgc28gaW4gdGhlIGVuZCwgeW91IGhhdmUgdG8gZG8gd2hhdOKAmXMgYmVzdCBmb3IgeW91IGFuZCBrZWVwIHlvdSBpbiB0aGF0IHBvc2l0aXZlIHNwYWNlIGFuZCByZWNvZ25pemUgcGFpbiB2ZXJzdXMgc3VmZmVyaW5nLsKgSGF5bGV5OiBZZWFoLiBFeGFjdGx5LCBzbyBJIGxvdmUgdGhhdC7CoDEwOjQ0IEhheWxleeKAmXMgZmlyc3QgcHJlZ25hbmN5IGFuZCBiaXJ0aEhheWxleTogVG8gc3RhcnQgdGhpcyB3aG9sZSBzdG9yeSBJIGd1ZXNzLCBpcyBiYWNrIGluIEFwcmlsIDIwMjEsIEkgaGFkIG15IGRhdWdodGVyLiBTaGUgd2FzIGJyZWVjaC4gRm9yIG1lLCBJIGtuZXcgcHJldHR5IGVhcmx5IG9uIHRoYXQgc2hlIHdhcyBicmVlY2guIFNoZSB3YXMgc28gYWN0aXZlLiBJIGtuZXcgdGhhdCwg4oCcT2gsIHlvdSBhcmUgdHJ5aW5nIHRvIGZsaXAgaW4gdGhlcmUu4oCdIEkgZGlkIGFsbCBvZiB0aGUgdGhpbmdzLiBJIGRpZCBTcGlubmluZyBCYWJpZXMgYW5kIHRyaWVkIGFsbCBvZiB0aGUgdGhpbmdzLCBidXQgaXQgd2FzIHN0aWxsIENPVklEIHRpbWUgc28gSSBqdXN0IGRpZG7igJl0IGdvIHRvIGFjdXB1bmN0dXJlLiBJIGZlZWwgbGlrZSBpZiBpdCB3YXNu4oCZdCBDT1ZJRCB0aW1lcyBzdGlsbCwgSSBtYXliZSB3b3VsZCBoYXZlIHRyaWVkIG1vcmUgdGhpbmdzLiBCdXQgd2l0aCB0aGF0IGJlaW5nIHNhaWQsIEkgZmVsdCBsaWtlIHNoZSB3YXMgbGl0ZXJhbGx5IHRyeWluZyB0byB0dXJuIGJlY2F1c2UgSeKAmW0gbGlrZSwg4oCcV2hhdCBhcmUgeW91IGRvaW5nPyBJZiB5b3XigJlyZSBub3QgZmxpcHBpbmcsIHRoZW4gSeKAmW0gbm90IHN1cmUuIFRoZW4geW91IGNhbuKAmXQu4oCdIEkganVzdCBmZWx0IGluIG15IGJvZHkgdGhhdCB0aGVyZSB3YXMgYSByZWFzb24uwqBJIGRpZG7igJl0IHRyeSBtYW51YWxseSBmbGlwcGluZyBoZXIgb3IgdGhpbmdzIGxpa2UgdGhhdC4gVG8gaGVscCB3aXRoIHBlYWNlIG9mIG1pbmQsIEkgb3B0ZWQgZm9yIGEgQ2VzYXJlYW4gZXZlbiB0aG91Z2ggdGhhdCB3YXMgdGhlIGxhc3QgdGhpbmcgSSB3YW50ZWQuIEnigJltIHRlcnJpZmllZCBvZiBzdXJnZXJpZXMgYW5kIG5lZWRsZXMuIEkgd2FzIGxpa2UsIOKAnEkgZG8gbm90IHdhbnQgdGhpcy4gVGhpcyBpcyB0aGUgYWJzb2x1dGUgbGFzdCB0aGluZyBJIHdhbnQs4oCdIGJ1dCBhdCB0aGUgc2FtZSB0aW1lLCBJIHdhcyBoYXBweSB0aGF0IEkgY291bGQgbWVudGFsbHkgcHJlcGFyZSBmb3IgdGhhdCBpbnN0ZWFkIG9mIGl0IGJlaW5nIHNwcnVuZyBvbiBtZS4gQW5kIGhvbmVzdGx5LCBJIGZlZWwgbGlrZSBJIGhhZCBhIHByZXR0eSBnb29kIHJlY292ZXJ5IHdpdGggdGhhdC7CoEF0IHRoZSBzYW1lIHRpbWUsIEkga25ldyBmb3IgYW55IGZ1dHVyZSBjaGlsZHJlbiwgSSBkaWQgbm90IHdhbnQgdG8gaGF2ZSBhbm90aGVyIEMtc2VjdGlvbi7CoDEyOjAwIERvaW5nIFZCQUMgcmVzZWFyY2ggYmVmb3JlIHByZWduYW5jeUhheWxleTogU28gZmFzdCBmb3J3YXJkLiBXZSBtb3ZlZCBhY3Jvc3MgdGhlIGNvdW50cnkgd2hlbiBzaGUgd2FzIGFib3V0IDkgbW9udGhzIG9sZC4gSSB3YXMgZGVmaW5pdGVseSBub3QgcHJlZ25hbnQgeWV0LCBidXQgd2Ugd2VyZSB0aGlua2luZyBhYm91dCBleHBhbmRpbmcgb3VyIGZhbWlseS4gSSBoYWQgYWxyZWFkeSBzdGFydGVkIHJlc2VhcmNoaW5nIHByb3ZpZGVycyBpbiB0aGUgYXJlYSwgam9pbmluZyBGYWNlYm9vayBwYWdlcyBsaWtlIHRoZSBJQ0FOIEZhY2Vib29rIGdyb3VwIGluIHRoZSBhcmVhIGFuZCBsaXRlcmFsbHkgcHJlcGFyaW5nIGV2ZW4gdGhvdWdoIEkgd2FzbuKAmXQgcHJlZ25hbnQgYmVjYXVzZSBJIGp1c3QgcmVhbGx5IHdhbnRlZCB0byBtYWtlIHRoaXMuwqBNZWFnYW46IFRoYXQgaXMgaW1wb3J0YW50LsKgSGF5bGV5OiBZZWFoLiBJIGp1c3QgZGlkIG15IHJlc2VhcmNoLiBJIHJlYWxseSwgcmVhbGx5IHdhbnRlZCB0byBiZSBub3QgaW4gYSBzaXR1YXRpb24gd2hlcmUgSeKAmW0gbGlrZSwg4oCcT2ggc2hvb3QuIEnigJltIHByZWduYW50IGFuZCBub3cgSSBuZWVkIHRvIHN0cnVnZ2xlIHRvIGZpbmQgYSBzdXBwb3J0aXZlIHByb3ZpZGVyLOKAnSBiZWNhdXNlIHVuZm9ydHVuYXRlbHksIGl04oCZcyBoYXJkIHRvIGZpbmQgVkJBQy1zdXBwb3J0aXZlIHByb3ZpZGVycy4gSSB3aXNoIHRoYXQgd2FzbuKAmXQgdGhlIGNhc2UsIGJ1dCBJIGZlZWwgbGlrZSB0aGF04oCZcyB1bmZvcnR1bmF0ZWx5IHRoZSBtYWpvcml0eS7CoE1lYWdhbjogVGhlIHJlYWxpdHksIGl0IHN1Y2tzLiBJdOKAmXMgc3R1cGlkLiBJIGhhdmUgYSBsb3Qgb2Ygd29yZHMgZm9yIHRoYXQsIGJ1dCBpdCBpcyB0aGUgcmVhbGl0eS4gSXQgaXMgbW9yZSBvZnRlbiB0aGF0IGl04oCZcyBoYXJkIHRvIGZpbmQgdGhhdCB0cnVlIHN1cHBvcnQgdGhhbiBpdCBpcyB0byBmaW5kIHRoZSBvcHBvc2l0ZS7CoEhheWxleTogWWVwLiBJIHJlbWVtYmVyIEkgbWFkZSBhIGNvdXBsZSBvZiBhcHBvaW50bWVudHMganVzdCB0byB0YWxrIHdpdGggcGVvcGxlIHRvIGJlIGxpa2UsIOKAnEhleSwgaG93IGRvIHlvdSBmZWVsIGFib3V0IHRoaXM/IEnigJltIGxvb2tpbmcgdG8gZXN0YWJsaXNoIGNhcmUu4oCdIEkgcmVtZW1iZXIgSSB3ZW50IHRvIHR3byBkaWZmZXJlbnQgcGxhY2VzLiBPbmUgd2FzIGFuIE9CIGFuZCB0aGV5IGRpZCBoYXZlIHNvbWUgbWlkd2l2ZXMgdGhlcmUsIGJ1dCB5ZWFoLiBUaGV5IHdlcmUgbGlrZSwg4oCcV2VsbCwgeW91IGNhbiBvciB5b3UgY2FuIHRyeSB0aGF0LOKAnSBhbmQgSSB3YXMgbGlrZSwg4oCcQ29vbC4gVGhpcyBkb2VzbuKAmXQgc291bmQgbGlrZSAxMDAlLuKAncKgSSBldmVudHVhbGx5IGZvdW5kIGEgZ3JvdXAgb2YgbWlkd2l2ZXMuIEkgZmVsdCB3YXMgYSB0b3RhbCAxODAgd2l0aCB0aGUgd2F5IHRoYXQgdGhlIGNhcmUgZmVsdC4gTm90IHRoYXQgeW91IGNhbuKAmXQgZ2V0IHRoYXQgd2l0aCBPQnMsIGJ1dCB0aGV5IHdlcmUgbGlrZSwg4oCcWWVhaC4gV2XigJlyZSBnb2luZyB0byBkbyB0aGF0LuKAnSBJdCB3YXMganVzdCBsaWtlLCDigJxDb29sLiBXZeKAmXJlIGdvaW5nIHRvIGRvIHRoYXQu4oCdwqBNZWFnYW46IEkgbG92ZSB0aGF0LiBZb3XigJlyZSBsaWtlLCDigJxBbmQgZ3JlYXQuIEkgd2FzIGFsbW9zdCBub3QgZXhwZWN0aW5nIHlvdSB0byBzYXkgdGhhdCBzbyBmYW50YXN0aWMu4oCdwqBIYXlsZXk6IEV4YWN0bHkuIEnigJltIGxpa2UsIOKAnFBlcmZlY3Qu4oCdMTM6NTEgSGF5bGV54oCZcyBzZWNvbmQgcHJlZ25hbmN5SGF5bGV5OiBGYXN0IGZvcndhcmQsIEkgdGhlbiBnZXQgcHJlZ25hbnQgd2l0aCBteSBzZWNvbmQuIEkgZXN0YWJsaXNoZWQgY2FyZSB0aHJvdWdoIHRoZW0uIEkgZmVsdCBsaWtlIHRoZSB3aG9sZSBwcm9jZXNzIHdhcyBqdXN0IHNvIGNoaWxsLiBFdmVuIGp1c3Qgd2l0aCBhbnl0aGluZywgbWF5YmUgaXTigJlzIGp1c3QgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB5b3VyIGZpcnN0IHByZWduYW5jeSBhbmQgc2Vjb25kIHByZWduYW5jeSB3aGVyZSB5b3UgYXJlIHNvIG5lcnZvdXMgYWJvdXQgZXZlcnl0aGluZyB3aXRoIHRoZSBmaXJzdCwgYnV0IGV2ZW4gdGhlIHVsdHJhc291bmQgdGhhdCBqdXN0IGZlbHQgdmVyeeKAkyB3aXRoIG15IGZpcnN0LCB0aGV5IHdvdWxkIHJlYWxseSBtYWtlIG1lIGZlZWwgbGlrZSB0aGV5IHdlcmUgcmVhbGx5IG1ha2luZyBzdXJlLCBub3QgdGhhdCB5b3Ugc2hvdWxkbuKAmXQgbWFrZSBzdXJlIHRoaW5ncyBhcmUgb2theSwgYnV0IHRoZXkganVzdCByZWFsbHkgbWFkZSBtZSBmZWVsIGxpa2UgZXZlcnl0aGluZyB3YXMgc28gbWVkaWNhbCBhbmQgdGhpbmdzIGNvdWxkIGdvIHdyb25nIG9yIHNvbWV0aGluZy7CoFdpdGggbXkgc2Vjb25kLCB0aGV5IHdlcmUganVzdCBsaWtlLCDigJxZZWFoLCBiYWJ5IGlzIGdyZWF0LuKAnSBPa2F5LCBjb29sLiBQZXJmZWN0LiBTbyB0aGF0IHdhcyBhd2Vzb21lIGFuZCBkZWZpbml0ZWx5IG5vdCB3aGF0IEkgZXhwZWN0ZWQuIEFnYWluLCBpdOKAmXMgYSBkaWZmZXJlbnQgb2ZmaWNlIGFuZCBhIGRpZmZlcmVudCBzdGF0ZS4gSXQgd2FzIGEgdG90YWxseSBkaWZmZXJlbnQgZXhwZXJpZW5jZSBhbmQgYW1hemluZy4gQnV0IEkgd2FzIGRlZmluaXRlbHkgaW4gbXkgaGVhZCB0aGUgd2hvbGUgcHJlZ25hbmN5LiBJIGRpZCBub3Qgd2FudCB0aGlzIGJhYnkgdG8gZmxpcC4gSSBqdXN0IGtlcHQgZG9pbmcgZXZlcnl0aGluZyBJIGNvdWxkIHRocm91Z2hvdXQgbXkgd2hvbGUgcHJlZ25hbmN5LCByZWFsbHkgd29ya2luZyBvbiBteSBtZW50YWxpdHkgYW5kIG15IG1pbmRzZXQuwqBJIGZvdW5kIGEgZG91bGEuIEkgd2VudCB0byBhIGNoaXJvcHJhY3RvciB0b3dhcmRzIHRoZSBlbmQgb2YgbXkgcHJlZ25hbmN5LiBJIHdlbnQgdG8gcGVsdmljIGhlYWx0aCwgcGh5c2ljYWwgdGhlcmFweSwgYW5kIEkgZGlkIGFsbCBvZiB0aGUgdGhpbmdzIGJlY2F1c2UgSeKAmW0gbGlrZSwg4oCcSSB3YW50IHRvIGRvIGV2ZXJ5dGhpbmcgdGhhdCBJIHBvc3NpYmx5IGNhbiB0byBtYWtlIHRoaXMgaGFwcGVuLuKAnSBUaGF0IHdheSBpZiBJIGRpZG7igJl0LCBJIHdvdWxkIGF0IGxlYXN0IGtub3csIOKAnEhleSwgSSBkaWQgZXZlcnl0aGluZyBhbmQgSSB0b3RhbGx5IHByZXBhcmVkLuKAnSBTbyBtZW50YWxseSwgdGhhdOKAmXMganVzdCB3aGF0IEkgbmVlZGVkLiBCdXQgeWVhaC4gSSB3YXMgZGVmaW5pdGVseSBzbyBpbiBteSBoZWFkIGxpa2UsIOKAnFdoYXQgaWYgdGhpcyBiYWJ5IGRlY2lkZXMgdG8gYmUgYnJlZWNoIGFnYWluPyBJIHdvdWxkIGJlIHNvIHNhZC7igJ0gQnV0IGx1Y2tpbHksIHRoYXQgZGlkIG5vdCBoYXBwZW4uwqBJIGFsc28gZmVsbCBvbiBteSB0YWlsYm9uZS4gSSBodXJ0IG15IHRhaWxib25lIHdoZW4gSSB3YXMgNCBtb250aHMgYmVmb3JlIGRlbGl2ZXJ5IHNvIHRoYXQgd2FzIHJlYWxseSBub3QgZ3JlYXQgZWl0aGVyIGJlY2F1c2Ugb25lIHRoaW5nIHRoYXQgb25jZSBJIHdvdWxkIGdldCBpbnRvIGxhYm9yLCBJIGhhZCBzbyBtdWNoIHRhaWxib25lIHBhaW4gYW5kIHRoYXQgd2FzIGp1c3Qgc29tZXRoaW5nIHRoYXQgSSB3YXMgbm90IGV4cGVjdGluZy7CoFNvIHRoZSBwcmVnbmFuY3kgZGVmaW5pdGVseSBoYWQgdXBzIGFuZCBkb3ducy4gSSBmZWVsIGxpa2UgbWF5YmUgeW91IGNhbiBhbnN3ZXIgaWYgdGhpcyBpcyB5b3VyIGV4cGVyaWVuY2UgdG9vIGRvd24gdGhlIGxpbmUgd2l0aCBwcmVnbmFuY2llcywgYnV0IEkgZmVlbCBsaWtlIHlvdXIgYm9keSBqdXN0IGZlZWxzIGV2ZXJ5dGhpbmcgc28gbXVjaCBxdWlja2VyIHdpdGggdGhlIHNlY29uZCBwcmVnbmFuY3kuIExpa2UsIOKAnE9oLCBJ4oCZbSBhbHJlYWR5IHNvcmUgYW5kIGl04oCZcyBub3QgZXZlbiB0aGUgc2Vjb25kIHRyaW1lc3Rlci4gV2hhdOKAmXMgaGFwcGVuaW5nP+KAncKgTWVhZ2FuOiBJIGJlbGlldmUgdGhhdC7CoEhheWxleTogWWVhaCwgc28gSSBmb3VuZCB0aGF0IHJlYWxseSBwcmVwYXJpbmcgaXMgbXkgbnVtYmVyLW9uZSB0aXAgb2YgZG9pbmcgeW91ciByZXNlYXJjaCwgbGlzdGVuaW5nIHRvIHBvZGNhc3RzLCByZWFsbHkgZ2V0IGluIHRoYXQgc3BhY2Ugb2YgdGhlcmUgd2FzIG5vIGRvdWJ0IGluIG15IG1pbmQgdGhhdCBJIHdhc27igJl0IGdvaW5nIHRvIGJlIGFibGUgdG8gaGF2ZSBhIFZCQUMgYW5kIEkgZmVlbCBsaWtlIHRoYXQgcmVhbGx5IGhlbHBlZCBtZSBvdXQgd2hlbiBsYWJvciBjYW1lIGJlY2F1c2UgaXQgd2FzbuKAmXQgc29tZXRoaW5nIHRoYXQgSSBldmVuIHRob3VnaHQgYWJvdXQuIEkgY2FuIHBzeWNoZSBteXNlbGYgb3V0IG9mIEkgZGlkbuKAmXQgZ2V0IHdvcnJpZWQuwqBNZWFnYW46IEhvdyBhbWF6aW5nIGlzIHRoYXQ/IEkgZmVlbCBsaWtlIHRoYXQgZ29lcyBhZ2FpbiwgaXTigJlzIGxpa2UgdGhlIGZ1bGwgY2lyY2xlIG9mLCDigJxPa2F5LiBJIGFtIGVkdWNhdGVkLiBJIGhhdmUgdGhlIHN1cHBvcnQuIEkgaGF2ZSB0aGUgYm9keSBhbmQgdGhlIGJhYnkgcmVhZHkgdG8gZG8gdGhpcy7igJ0gV2hlbiB3ZSBoYXZlIGdhcHMgaW4gb3VyIGNpcmNsZSB3aGVyZSBpdOKAmXMgbGlrZSwg4oCcT2theSwgd2VsbCBJ4oCZbSBlZHVjYXRlZCBzbyBJIGZlZWwgY29uZmlkZW50IGluIG15IGFiaWxpdHks4oCdIGJ1dCB0aGVuIHdlIGhhdmUgYSBwcm92aWRlciB3aG8gaXMgd2lzaHktd2FzaHkgYW5kIHNodXR0aW5nIG1lIGRvd24gb3IgSSBoYXZlIGEgZmFtaWx5IG1lbWJlciB3aG8gaXMgbGlrZSwg4oCcT2gsIHlvdSBhcmUgcmVhbGx5IG1ha2luZyBhIGJhZCBjaG9pY2Us4oCdIG9yIHN0YXJ0cyBxdWVzdGlvbmluZyB1cyBhbmQgcGxhY2luZyBkb3VidCwgYnV0IHRoZW4gd2UgYXJlIGNvbmZpZGVudCBpbiBvdXIgYm9keS4gV2UgYXJlIGhlYWx0aHkgYW5kIGFsbCBvZiB0aGVzZSB0aGluZ3MuwqBCdXQgd2hlbiB0aGVyZSBhcmUgZ2Fwcywgd2UgY2Fu4oCZdCBnbyBpbnRvIGJpcnRoIHdpdGggdGhhdCBtZW50YWxpdHkuIFRoYXTigJlzIHNvbWV0aGluZyBJIHdpc2ggZm9yIGV2ZXJ5IHNpbmdsZSBwZXJzb24gZ29pbmcgaW4gdG8gaGF2ZSBhIGJhYnkgbm8gbWF0dGVyIHdoYXQgaXMganVzdCBmZWVsaW5nIGNvbmZpZGVudCBhbmQgaGF2aW5nIHRoYXQgbWVudGFsaXR5IG9mIHN0cmVzcy1mcmVlIG9mIHRoZSBkb3VidC4gVGhlcmUgYXJlIGFsd2F5cyB0aGUgd2hhdC1pZnMgYW5kIHRoZSB3b25kZXJzIGFuZCBldmVyeSBiaXJ0aCBleHBlcmllbmNlIGlzIGRpZmZlcmVudCwgYnV0IHRvIG5vdCBkb3VidCBvdXJzZWx2ZXMgb3Igb3VyIGFiaWxpdHkgYW5kIGl0IGNvbWVzIHdpdGggZWR1Y2F0aW9uLCBzdXBwb3J0LCBhbmQgYWxsIG9mIHRob3NlIHRoaW5ncy7CoEhheWxleTogWWVhaCwgZXhhY3RseS4gTGlrZSByZWFkaW5nIG15IGJvb2tzIGFuZCBsaXN0ZW5pbmcgdG8gc3RvcmllcyBhbmQgYmVpbmcgbGlrZSwg4oCcWWVhaC4gTXkgYm9keSBjYW4gZG8gdGhpcy4gVGhpcyBpcyB3aGF0IHBlb3BsZSBoYXZlIGRvbmUgZm9yIGFsbCBvZiB0aW1lLuKAncKgTWVhZ2FuOiBGb3JldmVyLsKgSGF5bGV5OiBXZSBjYW4gZG8gdGhpcy4gWWVhaC4gRGVmaW5pdGVseSwgSSBhZ3JlZS4gSWYgeW91IGRvbuKAmXQgaGF2ZSBldmVyeSBzaW5nbGUgb25lIG9mIHRob3NlIGFzcGVjdHMsIGl0IGp1c3QgbWFrZXMgdGhpbmdzIHNvIG11Y2ggaGFyZGVyIG9uIHlvdXJzZWxmIGFuZCBldmVyeXRoaW5nLsKgMTg6MTUgTGFib3IgYmVnaW5zSGF5bGV5OiBTbyBmYXN0IGZvcndhcmQsIEkgbmV2ZXIgd2VudCB0aHJvdWdoIGxhYm9yIHdpdGggbXkgZmlyc3QsIHNvIEkgc3RpbGwgZmVsdCBsaWtlIGEgZmlyc3QtdGltZSBtb20gaW4gdGhlIHNlbnNlIHRoYXQgSSB3YXMgbGlrZSwg4oCcV2lsbCBJIGtub3cgd2hlbiBJ4oCZbSBpbiBsYWJvcj8gV2hhdOKAmXMgaXQgZ29pbmcgdG8gZmVlbCBsaWtlP+KAncKgSXQgd2FzIEZlYnJ1YXJ5IGxhc3QgeWVhci4gSSBkb27igJl0IGtub3csIHdoYXRldmVyIGRheSBpdCB3YXMuIEkgZ3Vlc3MgaXQgd2FzIHRoZSAyMm5kLiBJIGd1ZXNzIEkgd2FzIGhhdmluZyBjcmFtcGluZy4gSSBkb27igJl0IGtub3cuIFRoZXkgd2VyZSByZWFsbHkgbWlsZCBzbyBJIGRpZG7igJl0IHJlYWxseSB0aGluayBhYm91dCBpdC4gSSB3YXMgd29ya2luZyBhbmQgdGFraW5nIGNhcmUgb2YgbXkgZmlyc3Rib3JuLsKgTG9va2luZyBiYWNrLCBJ4oCZbSBsaWtlLCDigJxPaCwgSSBndWVzcyBpdCB3YXMgbWF5YmUgZWFybHkgbGFib3Iu4oCdIEJ1dCBJIGRpZG7igJl0IHJlYWxseSB0aGluayBhYm91dCBpdC4gQnV0IEkgaGFkIHBhc3RhIGZvciBkaW5uZXIgd2hpY2ggSSB0aGluayBpcyBoaWxhcmlvdXMuIEkganVzdCBhdGUgcGFzdGEgYmVjYXVzZSBmYXN0IGZvcndhcmQsIEkgYW0gcHV0dGluZyBteSBsaXR0bGUgb25lIHRvIGJlZCBhdCA3OjAwIFBNIGFuZCBJIHN0YXJ0IGdldHRpbmcgcmVhbGx5IGJhZCBzdG9tYWNoIHBhaW5zLiBJ4oCZbSBsaWtlLCDigJxJcyB0aGlzIGZyb20gbXkgZGlubmVyPyBJcyBteSBzdG9tYWNoIGp1c3QgdXBzZXQ/IEkgZG9u4oCZdCBrbm93IHdoYXTigJlzIGhhcHBlbmluZy7igJ3CoEkgcmVtZW1iZXIgSSBoYWQgdG8gaGF2ZSBteSBodXNiYW5kIGZpbmlzaCBwdXR0aW5nIGhlciB0byBiZWQuIEkgd2FzIHJlYWxseSBub3QgZmVlbGluZyBnb29kLiBJIHdhcyBsaWtlLCDigJxPa2F5LiBBbSBJIGp1c3QgcmVhbGx5IG5vdCBmZWVsaW5nIGdvb2Q/IElzIHRoaXMgbGFib3I/IEnigJltIG5vdCBzdXJlIHdoYXTigJlzIGhhcHBlbmluZy7igJ3CoFNvIEkgZ2V0IGluIHRoZSBzaG93ZXIgYW5kIEnigJltIGxpa2UsIOKAnEFsbCByaWdodC4gTGV0IG1lIGp1c3QgZ2V0IGluIHRoZSBzaG93ZXIgYW5kIHNlZSB3aGF04oCZcyB1cC7igJ0gVGhlbiBteSBodXNiYW5kIGNvbWVzIGJhY2sgaW4gYW5kIEnigJltIGxpa2UsIOKAnEhleSwgSSBkb27igJl0IHdhbnQgdG8gZnJlYWsgeW91IG91dC4gSeKAmW0gbm90IHN1cmUgaWYgdGhpcyBpcyBsYWJvciBvciBub3QsIGJ1dCBtYXliZSBpdCBpcy7igJ1JdOKAmXMgZ2V0dGluZyBjbG9zZXIgdG8gODowMCBQTSBvciBzbyBhbmQgdGhpbmdzIGFyZSByZWFsbHkgc3RhcnRpbmcgdG8gcmFtcCB1cC4gSeKAmW0gbGlrZSwg4oCcT2theSwgdGhpcyBpcyBwcm9iYWJseSBsYWJvci7igJ0gSSBkbyByZW1lbWJlciBoYXZpbmcgYSB0aG91Z2h0IG9mLCDigJxTaG9vdC4gSWYgdGhpcyBpcyBob3cgZWFybHkgbGFib3IgaXMgYW5kIEnigJltIGFscmVhZHkgZmVlbGluZyBpdCBsaWtlIHRoaXMsIEnigJltIHdvcnJpZWQuIEkgZG9u4oCZdCBrbm93IHRoYXQgSSBjYW4gZG8gdGhpcy7igJ0gSSBoYWQgdGhvc2UgdGhvdWdodHMuIEkgZmVlbCBsaWtlIEkgcXVpY2tseSBnb3Qgb3V0IG9mIHRoYXQsIGJ1dCBpdCBmcmVha2VkIG1lIG91dC4gSSB3YXNu4oCZdCBwcmVwYXJlZCBmb3IgdGhhdC4gSSBrbm93IHlvdSBjYW4gaGF2ZSB0aG9zZSB0aG91Z2h0cyBkb3duIHRoZSBsaW5lIGluIGFjdGl2ZSBsYWJvciwgYnV0IEkgd2FzIGxpa2UsIOKAnElmIEnigJltIGFscmVhZHkgZmVlbGluZyB0aGlzIGFuZCBJIGRvbuKAmXQgZXZlbiBrbm93IGlmIEnigJltIGluIGxhYm9yIHlldCwgc2hvb3QuIEnigJltIGluIHRyb3VibGUu4oCdwqAyMDoxNiBHb2luZyB0byB0aGUgaG9zcGl0YWxIYXlsZXk6IEZhc3QgZm9yd2FyZCwgd2Ugc3RhcnRlZCB0aW1pbmcgdGhlIGNvbnRyYWN0aW9ucyBhcm91bmQgODozMCBvciA5OjAwIGF0IG5pZ2h0IHNvIG9ubHkgYW4gaG91ciBhbmQgYSBoYWxmIG9yIHNvIGFmdGVyIEkgZmlyc3QgaGFkIHRoYXQgY29udHJhY3Rpb24gdGhhdCBJIGZlbHQuIFRoZXkgd2VyZSBhbHJlYWR5IGxhc3Rpbmcgb3ZlciBhIG1pbnV0ZSBsb25nIGFuZCBjb21pbmcgMy02IG1pbnV0ZXMgYXBhcnQuIEl0IGdvdCByZWFsbHkgaW50ZW5zZSByZWFsbHkgcXVpY2tseS7CoEkgd2FzIGxpa2UsIOKAnEFsbCByaWdodC7igJ0gV2UgcHV0IG9uIEhhcnJ5IFBvdHRlci4gSSB3YXMgbGlrZSwg4oCcTGV04oCZcyBqdXN0IHRyeSB0byBnZXQgc29tZSBzbGVlcC4gTGV0IG1lIHJlc3QgaGVyZS7igJ0gSm9rZXMgb24gdXMuIFdlIGRpZCBub3QgcmVzdC4gV2UgZGlkIG5vdCBnZXQgc2xlZXAuIEkgZW5kZWQgdXAgY2FsbGluZyBvdXIgbWlkd2l2ZXMgYW5kIG91ciBkb3VsYS4gVGhleSB3ZXJlIGxpa2UsIOKAnE9rYXkuIFlvdSBzaG91bGQgcHJvYmFibHkgdGhpbmsgYWJvdXQgY29taW5nIGluLuKAncKgV2UgbGVmdCBvdXIgaG91c2UgYXQgMTE6MDAgUE0uIFdlIGxpdmUgYW4gaG91ciBmcm9tIHRoZSBob3NwaXRhbCBvciA0MCBtaW51dGVzLiBJIHdhcyBmcmVha2luZyBvdXQgYmVjYXVzZSBvbmUgb2YgdGhlIGNvbmNlcm5zIEkgZmVlbCBsaWtlIGV2ZXJ5b25lIGhhcyBpcywg4oCcSSBkb27igJl0IHdhbnQgdG8gaGF2ZSBteSBiYWJ5IGluIHRoZSBjYXIs4oCdIGJ1dCB5b3UgZG9u4oCZdCB3YW50IHRvIGdldCB0aGVyZSB0b28gc29vbi4gSXTigJlzIG9uZSBvZiB0aG9zZSB0aGluZ3MuIEkgcmVhbGx5LCB0cnVseSBiZWxpZXZlIHRob3VnaCBmb3IgbWUtLSBwZW9wbGUgc2F5IGl04oCZcyBuaWNlIHRvIGxhYm9yIGF0IGhvbWUgYmVjYXVzZSB5b3UgYXJlIGNvbWZvcnRhYmxlIGFuZCBJIGRvIGdldCB0aGF0IGJ1dCBmb3IgbWUsIEkgd2FudGVkIHRvIGdldCB0byBteSBwbGFjZSBvZiBiaXJ0aCBhbmQgSSBmZWVsIGxpa2UgdGhhdCB3YXMgYSBodWdlIHRoaW5nIGZvciBtZSBhbmQgbXkgbWluZHNldC7CoE9uY2UgSSBnb3QgdG8gbXkgcGxhY2Ugb2YgYmlydGgsIEkgd2FzIGxpa2UsIOKAnE9rYXkuIFRoaXMgaXMgd2hlcmUgSeKAmW0gZ2l2aW5nIGJpcnRoLiBJIGRvbuKAmXQgbmVlZCB0byB0cmF2ZWwu4oCdIEkgcmVsYXhlZCBhIGxvdC4gVGhhdCB3YXMgYWxzbyBzb21ldGhpbmcgSSBhc3N1bWVkIEkgd2FudGVkIHRvIGJlIGF0IGhvbWUgbG9uZ2VyLCBidXQgZm9yIG1lLCBJIHdhcyBsaWtlLCDigJxOby4gSSBuZWVkIHRvIGZlZWwgY29tZm9ydGFibGUgYW5kIGluIG15IHNwYWNlLuKAncKgSG93ZXZlciwgd2hlbiBJIGdvdCB0aGVyZSwgSSB3YXMgYWxyZWFkeSAxMDAlIGVmZmFjZWQsIDAgc3RhdGlvbiwgYW5kIDcgY2VudGltZXRlcnMuwqBNZWFnYW46IE5pY2UhwqBIYXlsZXk6IFNvIEkgd2FzIGFscmVhZHkgcHJldHR5IGZhciBhbG9uZy7CoE1lYWdhbjogWW91IHByZXR0eSBtdWNoIGxhYm9yZWQgYXQgaG9tZSB2ZXJ5IHdlbGwuwqBIYXlsZXk6IFllYWgsIGV4YWN0bHkuIFNvIEkgd2FzIGxpa2UsIOKAnE9rYXku4oCdIEJ1dCBJIGp1c3QgcmVhbGx5IHdhbnRlZCB0byBnZXQgdG8gdGhlIGhvc3BpdGFsLiBJIHdhcyBsaWtlLCDigJxHZXQgbWUgdG8gbXkgcGVvcGxlIGJlY2F1c2UgSSBuZWVkIHN1cHBvcnQu4oCdwqBNZWFnYW46IFllYWguwqBIYXlsZXk6IFNvIHdlIGZpbmFsbHkgZ2V0IHRvIHRoZSByb29tLiBUaGV5IGhhZCBhIGJhdGh0dWIgd2hpY2ggd2FzIGdyZWF0IHNvIHRoZXkgZmlsbGVkIHRoZSB0dWIgdXAuIEkgZGlkIGhhdmUgYW4gSVYgcGxhY2VkIGJ1dCB0aGV5IGRpZG7igJl0IGhhdmUgaXQgaG9va2VkIHRvIGFueXRoaW5nLiBUaGV5IGp1c3QgaGFkIGl0IHBsYWNlZC4gV2hhdCB3YXMgYW5ub3lpbmcgYWJvdXQgdGhhdCB3YXMgdGhleSBmb3Jnb3QgdG8gdGFwZSBpdCB3aGVuIEkgZ290IGluIHRoZSB0dWIgc28gb2YgY291cnNlLCBpdCBmZWxsIG91dC4gU28gdGhleSBsaXRlcmFsbHkgSSB0aGluaywgdHJpZWQgdG8gc3RpY2sgbWUgbGlrZSAxMCB0aW1lcy4gSeKAmW0gbm90IGV2ZW4gZXhhZ2dlcmF0aW5nLiBJdCB3YXMgYSB3aG9sZSBzaXR1YXRpb24gc28gdGhhdCB3YXMgbm90IGZ1bi7CoFllYWguIExhYm9yaW5nIGluIHRoZSB0dWIgd2FzIGdyZWF0IGFuZCBvbiB0aGUgdG9pbGV0IHdhcyBncmVhdC4gQnV0IGl0IHJlYWxseSwgeWVhaC4gT25jZSBJIHdhcyB0aGVyZSBhbmQgaGFkIG15IHBlb3BsZSwgSSBqdXN0IGZlbHQgbGlrZSBJIHdhcyBpbiB0aGUgem9uZSBhbmQgZXZlcnl0aGluZyBzZWVtZWQgYSBsb3QgYmV0dGVyIHRoYW4gd2hlbiBJIHdhcyBhdCBob21lIGluIG15IGhlYWQganVzdCBiZWluZyBsaWtlLCDigJxXaGF04oCZcyBoYXBwZW5pbmc/4oCdwqBTbyB5ZWFoLiBFdmVyeXRoaW5nIG1vdmVkIHJlYWxseSBxdWlja2x5IGJ1dCBJIHdhc27igJl0IHByZXBhcmVkIGZvciB0YWlsYm9uZSBwYWluLiBUaGVuIEkgbWVhbiwgSSBndWVzcyBJIHByb2JhYmx5IHNob3VsZCBoYXZlLiBJdCB3YXMga2luZCBvZiBpbiBteSBoZWFkIHRoYXQgdGhpcyBzaG91bGQgYmUgYSB0aGluZyBiZWNhdXNlIG9mIHdoZW4gSSBmZWxsLCBidXQgbWFuLiBUaGUgYmFjayBwYWluIGFuZCB0aGUgdGFpbGJvbmUgcGFpbiBzbyBldmVuIHRoaW5ncyBsaWtlIHRoZSBkb3VibGUgaGlwIHNxdWVlemUgdGhhdCBJIHRob3VnaHQsIOKAnE9oIHllYWgsIHRoYXTigJlzIGdvaW5nIHRvIGhlbHAgbWXigJ0gd2VyZSBsaWtlLCBuby7CoE1lYWdhbjogQW5kIHNhY3J1bSwgb29mLiBZZWFoLiBObyB3b25kZXIgdGhlIHRvaWxldCBmZWx0IHJlYWxseSBnb29kIGJlY2F1c2UgeW91IHdlcmUgYWJsZSB0byBzaXQgd2l0aG91dCBwcmVzc3VyZSBvcGVuIGFuZCByZWxlYXNlIHRoYXQuwqBIYXlsZXk6IFllYWgsIGV4YWN0bHkuIFRoYXQgd2FzIHBlcmZlY3Qgb3IgaGFuZHMgYW5kIGtuZWVzIGluIHRoZSB0dWIgYmVjYXVzZSB5ZWFoLiBJIGNvdWxkbuKAmXQgc2l0LiBJdCB3YXMgYSB3aG9sZSB0aGluZy7CoEkgZG9u4oCZdCByZW1lbWJlciBob25lc3RseSBmcm9tIHdoZW4gbXkgbGFib3Igc3RhcnRlZCBhdCBob21lLCBJIGRvbuKAmXQgcmVtZW1iZXIgaG9uZXN0bHkgcGVha2luZyBhbmQgZ2V0dGluZyBhbnkgd29yc2UuIEl0IGp1c3QgaG9uZXN0bHkgZmVsdCB0aGUgc2FtZS4gSW50ZW5zZSBmcm9tIHRoZSBiZWdpbm5pbmcgYWxsIHRoZSB3YXkgdW50aWwgdGhlIGVuZCB3aGljaCB3YXMgYWxzbyBzb21ldGhpbmcgdGhhdCBJIHdhcyBub3QgcHJlcGFyZWQgZm9yLiBJIHRoaW5rIG9idmlvdXNseSBpdCBpcyBkaWZmZXJlbnQgZm9yIGV2ZXJ5Ym9keSwgYnV0IHRoYXQgd2FzIHNvbWV0aGluZyBJIHdhcyBsaWtlLCDigJxPaC7igJ0gSSB3YXMgcGxlYXNhbnRseSBzdXJwcmlzZWQgaW4gdGhlIHNlbnNlIG9mIGF0IGxlYXN0IGl0IHdhc27igJl0IGxpa2UsIOKAnFNob290LiBJ4oCZbSB0b3RhbGx5IHNjcmV3ZWQgbGF0ZXIs4oCdIGJ1dCBhbHNvLCBpdCB3YXMgaW50ZW5zZSB2ZXJ5IHF1aWNrbHkgZWFybHkgb24gYW5kIHRocm91Z2hvdXQuwqAyNDoyMCBQdXNoaW5nSGF5bGV5OiBTbyBmYXN0IGZvcndhcmQsIEkgZmVlbCBsaWtlIG5vdyBpdOKAmXMgNzowMCBBTS4gV2UgZ2V0IHRvIHRoZSBob3NwaXRhbCBhdCBiYXNpY2FsbHkgMTowMCBBTS4gQXQgNzowMCBBTSwgSeKAmW0gYXQgMTAgY2VudGltZXRlcnMgYW5kIEkgZmVlbCB0aGUgdXJnZSB0byBwdXNoIHNvIHdlIHN0YXJ0IHB1c2hpbmcgaW4gZGlmZmVyZW50IHBvc2l0aW9ucy4gT25lIHRoaW5nIEkgcmVhbGx5IHdhbnRlZCBmb3IgbXlzZWxmIHdhcyB0byBub3QgcHVzaCBsb3VuZ2luZyBvbiBhIGJlZC4gSG93ZXZlciwgd2l0aCBteSB0YWlsYm9uZSwgSSBmZWx0IGxpa2UgZXZlcnl0aGluZyBodXJ0IHNvIGl0IGVuZGVkIHVwIHdoZXJlIHdlIHRyaWVkIHNvIG1hbnkgcG9zaXRpb25zIGJ1dCBJIHdhcyBraW5kIG9mIHNlbWktcmVjbGluZWQganVzdCBiZWNhdXNlIEkgZmVsdCBsaWtlIEkgbmVlZGVkIHRoYXQgc3VwcG9ydC4gSSBkb27igJl0IGtub3cuwqBJIHRvbGQgbXlzZWxmIHRvIGJlIG9rYXkgd2l0aCB1bHRpbWF0ZWx5IHB1c2hpbmcgaW4gdGhlIHBvc2l0aW9uIHRoYXQgSSDigJxkaWRu4oCZdCB3YW504oCdIGFuZCBiZWluZyBva2F5IHdpdGggdGhhdCB3YXMgc29tZXRoaW5nIHRoYXQgSSB3YXMgbGlrZSwg4oCcWW91IGtub3cgd2hhdD8gTGlzdGVuIHRvIHdoYXQgSSBuZWVkIGluIHRoaXMgbW9tZW50IGFuZCBkbyB3aGF04oCZcyBiZXN0LuKAnSBTbyBpdCB3YXMgb25lIG9mIHRob3NlIG1vbWVudHMgd2hlcmUgaXQgd2FzIGxpa2UsIOKAnEFsbCByaWdodC4gSSBuZWVkIHRvIGp1c3QgbGV0IGdvIG9mIHdoYXQgSSB3YXMgYXNzdW1pbmcgYW5kIGRvIHdoYXTigJlzIGJlc3QgZm9yIG1lLuKAncKgV2UgcHVzaGVkIGZvciBhIHdoaWxlLiBJdCB3YXMgNjAgb3Igc28gbWludXRlcyB3aGljaCB3YXPigJPCoE1lYWdhbjogVGhhdOKAmXMgYWN0dWFsbHkgbm90IGJhZCBmb3IgYSBmaXJzdC10aW1lIG1vbS7CoEhheWxleTogUmVhbGx5PyBJIHRoaW5rIGl0IHdhcyA2MCwgbWF5YmUgNzAgb3Igc28uIEJ1dCBJIGRvIHJlbWVtYmVyIHB1c2hpbmcgYmVpbmcgaGFyZGVyIHRoYW4gSSB0aG91Z2h0LiBUaGF0IHdhcyBub3Qgc29tZXRoaW5nIHRoYXQgSSBoYWQgcHJlcGFyZWQgZm9yLiBJIGZlZWwgbGlrZSBmb3IgYW55IG1hbWFzIG91dCB0aGVyZSBsaXN0ZW5pbmcsIHByZXBhcmUgZm9yIHB1c2hpbmcuwqBNZWFnYW46IFllYWguIFB1c2hpbmcgaXMgaGFyZCB3b3JrLsKgSGF5bGV5OiBJdOKAmXMgaGFyZC4gSSB0aGluayB0aGF0IHRpcmVkIG1lIG91dCBob25lc3RseSBtb3JlIHRoYW4gdGhlIGxhYm9yLiBJdCB3YXMgcHVzaGluZyBhbmQgSSB0aGluayBpdCB3YXMgaGFsZiBiZWNhdXNlIEkgZGlkIG5vdCBwcmVwYXJlIGFzIG11Y2ggZm9yIGl0IGFuZCBiZWNhdXNlIG9idmlvdXNseSBhdCB0aGUgZW5kIG9mIGl0LCB5b3XigJlyZSBhbHJlYWR5IHRpcmVkIGFuZCBleGhhdXN0ZWQuIEJ1dCB5ZWFoLiBJIGRpZCBub3QgcHJlcGFyZSBmb3IgcHVzaGluZyB0byBsYXN0IGFzIGxvbmcgZWl0aGVyLiBJIGZlZWwgbGlrZSBJIGRpZCBrbm93IHRoYXQsIGJ1dCBtZW50YWxseSwgSSBmZWVsIGxpa2UsIOKAnFdhaXQuIFRoaXMgaXMgc3RpbGwgaGFwcGVuaW5nLOKAnSBhbmQgaXQgYmVpbmcgaW50ZW5zZS7CoEJ1dCB0aGVuIGhlIGZpbmFsbHkgd2FzIGJvcm4gYW5kIEkganVzdCBsaXRlcmFsbHkgZ3JhYmJlZCBoaW0uIE15IGh1c2JhbmQgd2FzIGhlbHBpbmcgY2F0Y2ggaGltLCBidXQgSSBsaXRlcmFsbHkganVzdCB0b29rIGhpbSByaWdodCBhd2F5LsKgTWVhZ2FuOiBBdywgY3V0ZS7CoEhheWxleTogSXQgd2FzIGdyZWF0LiBTbyB0aGVuIEkgaGFkIHRoaXMgaHVnZSBoaWdoIG9mIGxpa2UsIOKAnFdvdy4gSSBkaWQgdGhpcyBWQkFDIHVubWVkaWNhdGVkLiBUaGlzIGlzIGdyZWF0LOKAnSB0aGVuIGZhc3QgZm9yd2FyZCB0byBwb3N0cGFydHVtLCB0aGUgbnVyc2UgaGFkIGtpbmQgb2YgbWVudGlvbmVkIG9yIG15IG1pZHdpZmUgaGFkIGtpbmQgb2YgbWVudGlvbmVkLCDigJxPaCwgeW91IGhhdmUgYSBzbGlnaHQgdXRlcmluZSBwcm9sYXBzZS7igJ0gSSB3YXMganVzdCBsaWtlLCDigJxJIGRvbuKAmXQga25vdyB3aGF0IHRoYXQgbWVhbnMuIENvb2wu4oCdIFRoZXkgbWVudGlvbmVkIGl0IGFzIHdlIHdlcmUgaW4gdGhlIGhvc3BpdGFsIGFuZCBpdCB3YXNu4oCZdCB1bnRpbCBhZnRlcndhcmQgdGhhdCBJIHN0aWxsIHdhcyBsaWtlLCDigJxObyBvbmUgaXMgdGVsbGluZyBtZSB3aGF0IGFueSBvZiB0aGlzIG1lYW5zLiBXaGF0IGlzIHRoaXM/IEkgZG9u4oCZdCBldmVuIGtub3cgd2hhdCB0aGlzIGlzLuKAnSBUaGV5IHdlcmUgYmVpbmcgc28gY2FzdWFsIGFib3V0IGl0IGFuZCBJIHdhc27igJl0IGdldHRpbmcgYW55IGluZm9ybWF0aW9uLsKgMjc6MDUgSGF5bGV54oCZcyBwcm9sYXBzZSBleHBlcmllbmNlSGF5bGV5OiBUaGF0IHdhcyBzb21ldGhpbmcgdGhhdCB3YXMgZnJ1c3RyYXRpbmcgYmVjYXVzZSB0aGVuIHBvc3RwYXJ0dW0sIGEgY291cGxlIHdlZWtzIGluIHdoZW4gSSB3YXMgc3RhcnRpbmcgdG8gaGF2ZSBzb21lIHN5bXB0b21zIG9mIHByb2xhcHNlLCBJIHdhcyBsaWtlLCDigJxXZWxsLCBubyBvbmUgaXMgZ2l2aW5nIG1lIGFuc3dlcnMuIE5vYm9keSB0b2xkIG1lIHdoYXQgdGhpcyBpcy4gTm93IEnigJltIHBvc3RwYXJ0dW0gZmVlbGluZyBjb25mdXNlZCBhbmQgaW4gdGhlIGRhcmsu4oCdwqBJdCB3YXMgcmVhbGx5IGludGVyZXN0aW5nIHRvIGdvIGZyb20gdGhpcyBoaWdoIGhpZ2ggb2YsIOKAnFdvdy4gSSBoYWQgYW4gYW1hemluZyBiaXJ0aCwgc3VjY2Vzc2Z1bCBWQkFDLCB1bm1lZGljYXRlZOKAnSB0byBub3cgcXVlc3Rpb25pbmcsIOKAnFdlbGwsIHdoYXQgZGlkIEkgZG8/4oCdIFlvdSBxdWVzdGlvbiB5b3Vyc2VsZi4gRGlkIEkgZG8gc29tZXRoaW5nIHdyb25nPyBDb3VsZCBJIGhhdmUgZG9uZSBzb21ldGhpbmcgZGlmZmVyZW50bHk/IFdoeSBkaWQgdGhpcyBoYXBwZW4/IEJlY2F1c2Ugbm8gb25lIGVsc2UgYXBwYXJlbnRseSBoYWQgdGhpcyB3aGljaCBpcyBhY3R1YWxseSBub3QgdHJ1ZS4gSXTigJlzIGp1c3Qgbm90IHRhbGtlZCBhYm91dC7CoFNvIHRoYXQgd2FzIGEgdmVyeSBiaWcgcGFydCBvZiBwb3N0cGFydHVtIHRoYXQgSSB3YXMgbm90IGF0IGFsbCBwcmVwYXJlZCBmb3IuwqBNZWFnYW46IFllYWguIFRoYXTigJlzIGhhcmQuIExldOKAmXMgdGFsayBhIGxpdHRsZSBiaXQgYWJvdXQgdGhlIHN5bXB0b21zIHRoYXQgeW91IHdlcmUgcmVjZWl2aW5nLiBXaGF0IHN5bXB0b21zIGRpZCB5b3UgaGF2ZT/CoEhheWxleTogWWVhaC4gU28gYXQgdGhlIGJlZ2lubmluZywgSSBmZWx0IGxpa2UgSSB3YXMgbGlrZSwg4oCcSSBkb27igJl0IGtub3cgd2hhdCB0aGlzIG1lYW5zLiBJ4oCZbSBub3QgcmVhbGx5IGZlZWxpbmcgaXQuIFlvdSBqdXN0IHNhaWQgSSBoYXZlIGEgc2xpZ2h0IHV0ZXJpbmUgcHJvbGFwc2UuIFdl4oCZbGwgY2hlY2sgdGhhdCBsYXRlci7igJ0gVGhlbiB5b3UgZG9u4oCZdCBnbyB0byB5b3VyIHZpc2l0IHVudGlsIGhvd2V2ZXIgbWFueSB3ZWVrcyBwb3N0cGFydHVtLiBTbyBJIHdhcyBsaWtlLCBva2F5LsKgQnV0IHRoZW4gd2hlbiBJIHdhcyBob21lIGEgY291cGxlIG9mIHdlZWtzIGxhdGVyLCBtYXliZSB0d28gb3Igc28gd2Vla3MsIEkgd2FzIGZlZWxpbmcgaGVhdmluZXNzIG9yIHVuY29tZm9ydGFibGUgb3IgcGFpbiBhIGxpdHRsZSBiaXQuIFRoaXMgZG9lc27igJl0IGZlZWwgbm9ybWFsLiBJIGZlbHQgYnVsZ2luZyBpbiB0aGUgYmVnaW5uaW5nLiBUaGF0IGVtb3Rpb25hbGx5IGFuZCBtZW50YWxseSByZWFsbHkgZ290IHRvIG1lLiBJIHdhcyBsaWtlLCDigJxXaHkgaXMgbXkgYm9keSBkb2luZyB0aGlzP+KAnSBUaGVuIEkgd291bGQgcmVtZW1iZXIgbWVzc2FnaW5nIG15IG1pZHdpZmUgb24gdGhlIGxpdHRsZSBwb3J0YWwgYW5kIHRoZXkgd2VyZSBsaWtlLCDigJxZb3XigJlyZSByZWFsbHkgZWFybHkgcG9zdHBhcnR1bS4gV2Ugd2lsbCB0YWxrIHdoZW4gd2Ugc2VlIHlvdSzigJ0gYW5kIG5vIGhlbHAuIEnigJltIGxpa2UsIOKAnFdlbGwsIHRoYXQgZG9lc27igJl0IGhlbHAgbWUgbm93IHdoZW4gSeKAmW0gbm90IGZlZWxpbmcgZ3JlYXQuIEl0IGRvZXNu4oCZdCBoZWxwIG1lIHdoZW4gSeKAmW0ganVzdCBsaWtlLCB5ZWFoLsKgVGhleSB3ZXJlIGxpa2UsIOKAnE1vc3Qgb2YgdGhlIHRpbWUsIGl0IHdpbGwgcmVzb2x2ZeKAnSBvciB3aGF0ZXZlci4gSXTigJlzIGxpa2UsIG9rYXkgYnV0IEnigJltIG5vdCBoYXBweSByaWdodCBub3cuIEnigJltIG5vdCBmZWVsaW5nIGdyZWF0IG5vdy4gU28gZmluYWxseSwgYXMgc29vbiBhcyBJIGRpZCBoYXZlIG15IHBlbHZpYyBmbG9vciBQVCBmcm9tIGJlZm9yZSwgSSBlbWFpbGVkIGhlciBsaWtlLCDigJxIZXksIGlzIHRoZXJlIGFueXRoaW5nIHlvdSBjYW4gcmVjb21tZW5kIGJlY2F1c2UgSeKAmW0gbm90IHNlZWluZyBteSBtaWR3aWZlIGZvciBhIHdoaWxlPyBObyBvbmUgaXMgcmVhbGx5IGhlbHBpbmcgbWUgb3V0LuKAnSBTaGUgd2FzIGxpa2UsIOKAnFllYWgsIHlvdSBjYW4gY29tZSBpbi4gSSBjYW7igJl0IHJlYWxseSBkbyBhbiBleGFtIHlldCBiZWNhdXNlIHlvdSBhcmUgc3RpbGwgc28gZWFybHksIGJ1dCBJIGNhbiBzZWUgeW91LiBJIGNhbiB0YWxrIHRvIHlvdS4gSSBjYW4gbG9vayBhdCB0aGluZ3MgYW5kIHNlZSB3aGF0IGlzIGhhcHBlbmluZy7igJ3CoFNvIHRoYXQgd2FzIHJlYWxseSBoZWxwZnVsLiBXaGF04oCZcyBpbnRlcmVzdGluZyBpcyBub3csIEnigJltIGhvd2V2ZXIgbWFueSBtb250aHMgcG9zdHBhcnR1bSwgYnV0IGV2ZW4gSSBmZWVsIGxpa2UgYSBtb250aCBvciB0d28gd2hlbiBJIGNvdWxkIGdvIG9udG8gbXkgcGVsdmljIGZsb29yIFBULCBzaGUgZGlkbuKAmXQgc2VlIGFueSBzb3J0IG9mIHV0ZXJpbmUgcHJvbGFwc2UsIGJ1dCBJIHRoaW5rIEkgaGF2ZSBhIHNsaWdodCBibGFkZGVyIGN5c3RvY2VsZSBzbyBJ4oCZbSBub3Qgc3VyZSB3aGVyZSB0aGUgdXRlcmluZSB0aGluZyBoYXBwZW5lZCBpbiB0aGUgYmVnaW5uaW5nIG9mIHdoZW4gSSBkZWxpdmVyZWQgYW5kIHRoZXkgaGFkIHNhaWQgSSBoYWQgdXRlcmluZSBwcm9sYXBzZSwgYnV0IG5vdywgaXQgbG9va3MgbGlrZSBpdOKAmXMganVzdCBhIHNsaWdodCBjeXN0b2NlbGUuwqBCdXQgd2hhdOKAmXMgZnJ1c3RyYXRpbmcgYWJvdXQgd2hhdCBJ4oCZdmUgbm90aWNlZCB3aXRoIHBlb3BsZSB3aXRoIHByb2xhcHNlIGlzIGEpIHRoZSBncmFkZXMgZG9u4oCZdCBzZWVtaW5nbHkgbWF0dGVyIGluIHRoYXQgeW91IGNhbiBiZSBhIGdyYWRlIDEgcHJvbGFwc2Ugd2hpY2ggSSB0aGluayB0ZWNobmljYWxseSBJIHByb2JhYmx5IGFtLCBidXQgaWYgeW91IGFyZSBoYXZpbmcgc3ltcHRvbXMsIHRoZW4gbGV04oCZcyBnZXQgdGhhdCBmaWd1cmVkIG91dCBiZWNhdXNlIHNvIG1hbnkgdGltZXMsIHBlb3BsZSB3b3VsZCBiZSBsaWtlLCDigJxXZWxsLCBpdOKAmXMgbm90IGJhZOKAnSBvciDigJxJIGRvbuKAmXQgZXZlbiBzZWUgYW55dGhpbmcs4oCdIGJ1dCBpdOKAmXMgbGlrZSwg4oCcT2theSwgd2VsbCBJIGFtIGZlZWxpbmcgdGhlc2Ugc3ltcHRvbXMgYW5kIGl0IGlzIG1lbnRhbGx5IGNhdXNpbmcgbWXigJMgaXTigJlzIG1ha2luZyBtZSBpbiBteSBoZWFkLiBJdOKAmXMgbWFraW5nIG1lIGRlcHJlc3NlZC4gSXTigJlzIG1ha2luZyBtZSB1cHNldCBhYm91dCBteSBib2R5IHNvIGxldOKAmXMgZmluZCBzb21lb25lIHRvIGFjdHVhbGx5IHdvcmsgb24gdGhhdCB3aXRoIG1lIGluc3RlYWQgb2YgZGlzbWlzc2luZyB0aGF0IHdhcyBodWdlIGJlY2F1c2UgeWVhaC4gSSBkb27igJl0IGhhdmUgYSBncmFkZSA0IHByb2xhcHNlIG9yIGdyYWRlIDMgb3Igd2hhdGV2ZXIgaXQgaXMgdGhhdCB5b3UgY29uc2lkZXIgYmFjaywgYnV0IGlmIGl04oCZcyBtYWtpbmcgbXkgZGF5LXRvLWRheSBhbmQgbWUgbm90IGJlIGFibGUgdG8gZG8gdGhpbmdzLCB0aGVuIHRoYXTigJlzIGEgcHJvYmxlbS7CoE1lYWdhbjogWWVzLiBJIGxvdmUgdGhhdCB5b3UgYXJlIHRhbGtpbmcgYWJvdXQgdGhhdC4gV29tZW4gb2YgU3RyZW5ndGgsIGF0IGxlYXN0IGhlcmUgaW4gdGhlIFUuUy4sIHRha2Ugd2F5IHRvbyBsb25nIHRvIGJlIGNoZWNrZWQgaW4gb24gYWZ0ZXIgaGF2aW5nIGEgYmFieS4gU2l4IHdlZWtzIGlzIG1pbmQtYm9nZ2xpbmcgdG8gbWUuIEEgbG90IGhhcHBlbnMgaW4gc2l4IHdlZWtzLiBXZSBoYXZlIGEgbG90IG9mIGhvcm1vbmVzIHNoaWZ0aW5nLiBXZSBoYXZlIGEgbG90IG9mIHJlY292ZXJpbmcuIFdlIGhhdmUgYSBsb3Qgb2YgdGhpbmdzIHRoYXQgbWF5IG5lZWQgdG8gYmUgYWRkcmVzc2VkIGVhcmxpZXIgb24gb3IgdGhhdCBjYW4gc3RhcnQgaGVscGluZyB1cyB3aXRoIG91ciBtZW50YWwgaGVhbHRoLiBUaGVyZSBhcmUgc28gbWFueSB0aGluZ3MuwqBJIGFncmVlLiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbnkgdHlwZSBvZiB0aGVzZSBzeW1wdG9tcyBhbmQgeW91ciBoZWFydCBpcyBsaWtlLCDigJxUaGlzIGlzbuKAmXQgZ29vZCBvciB0aGlzIGlzIGFmZmVjdGluZyBtZSzigJ0gcmVhY2ggb3V0IHRvIHNvbWVvbmUuIElmIHlvdeKAmXJlIE9CIG9yIHlvdXIgbWlkd2lmZSdzIG9mZmljZSBpcyBsaWtlLCDigJxXZeKAmWxsIHNlZSB5b3UgYXQgc2l4IHdlZWtzLOKAnSBnbyB0byB0aGF0IHBlbHZpYyBmbG9vciBQVC4gUmV2aWV3IHdpdGggdGhlbS7CoDMyOjAxIFN5bXB0b21zIG9mIHV0ZXJpbmUgcHJvbGFwc2VNZWFnYW46IEkgd2FudCB0byB0YWxrIGFib3V0IHNvbWUgb2YgdGhlIHN5bXB0b21zIG9mIHV0ZXJpbmUgc3BlY2lmaWNhbGx5IGFuZCB3aGF0IGl0IGlzLiBVdGVyaW5lIHByb2xhcHNlIG9jY3VycyB3aGVuIHRoZSBtdXNjbGVzIGFuZCB0aXNzdWVzIGluIHlvdXIgcGVsdmlzIGFyZSB3ZWFrZW5lZC4gV2Uga25vdyB0aGF0IHRocm91Z2ggY2hpbGRiaXJ0aCwgdGhhdCBoYXBwZW5zLiBXZSBwdXNoIGFuZCBzb21ldGltZXMgd2hlbiB3ZSBwdXNoIGxvbmdlciBob3VycyBvciB3aGF0ZXZlciwgd2UgY2FuIHdlYWtlbiB0aGF0LsKgQnV0IG1vc3QgcGVvcGxlIHdpdGggdXRlcmluZSBwcm9sYXBzZSBhcmUgYSBsaXR0bGUgb2xkZXIuIFRoZXkgYXJlIDUwLTgwIHllYXJzIG9sZCBidXQgaXQgY2FuIGhhcHBlbiBpbiBjaGlsZGJpcnRoLiBTbyBoZXJlIGFyZSBzb21lIG9mIHRoZSBzeW1wdG9tcy7CoExlYWtpbmcgb2YgdXJpbmUsIGluYWJpbGl0eSB0byBjb21wbGV0ZWx5IGVtcHR5IHlvdXIgYmxhZGRlcuKAkyBzbyB5b3UgZ28gdG8gdGhlIGJhdGhyb29tLCB5b3Ugc3RhbmQgdXAgYW5kIHlvdeKAmXJlIGxpa2UsIOKAnE9oLCB0aGVyZeKAmXMgbW9yZSzigJ0gb3IgeW91IHN0YXJ0IGxlYWtpbmcgbW9yZS4gVGhhdCBoZWF2aW5lc3MgZG93biB0aGVyZeKAkyBzbyBJIGhhZCBhIGN5c3RvY2VsZSBhcyB3ZWxsLiBJdOKAmXMgc28gd2VpcmQsIGJ1dCBJIHJlbWVtYmVyIHdhbnRpbmcgdG8gc2l0IG9uIHRoZSBjb3JuZXIgb2YgdGhlIGNvdWNoIG9yIG9uIHRoZSBlZGdlIG9mIHRoZSBjb3VjaCBqdXN0IHRvIHB1dCBzb21lIGNvdW50ZXIgcHJlc3N1cmUuIERvIHlvdSBrbm93IHdoYXQgSSBtZWFuP8KgSGF5bGV5OiBZZXAuIFllcC7CoE1lYWdhbjogVGhhdCBidWxnaW5nLCBsb3dlciBiYWNrIHBhaW4gd2hpY2ggYSBsb3Qgb2YgdGhlIHRpbWUgd2UgYXJlIGxpa2UsIOKAnE9oLCBiYWNrIHBhaW4uIFdlIGFyZSBudXJzaW5nLiBXZSBhcmUgcmVjb3ZlcmluZy4gV2UgYXJlIGh1bmNoZWQuIFllYWgsIHRoYXTigJlzIG5vcm1hbC7igJ0gTG93ZXIgYmFjayBwYWluIGlzIG5vdCBuZWNlc3NhcmlseSBub3JtYWwuIEFjaGluZyBvciBmZWVsaW5nIHRoYXQgaW4geW91ciBsb3dlciBhYmRvbWVuIG9yIGRvd24gaW4geW91ciBwZWx2aWMgYXJlYSBhbmQgZXZlbiBzZXZlcmUgY29uc3RpcGF0aW9uLiBXZSBrbm93IHRoYXQgYWZ0ZXIgY2hpbGRiaXJ0aCwgZXNwZWNpYWxseSBpZiB3ZSBoYXZlIGFuIGVwaWR1cmFsIG9yIHdl4oCZdmUgaGFkIGEgbG90IG9mIGludGVydmVudGlvbiBhbmQgc3R1ZmYgbGlrZSB0aGF0LCBjb25zdGlwYXRpb24gY2FuIGhhcHBlbi4gQSBsb3Qgb2YgcGVvcGxlIGdldCBpcm9uIHN1cHBsZW1lbnRzIGFuZCBzdHVmZiBsaWtlIHRoYXQgdG8gaGF2ZSB0aGF0IGJlIGxlc3NlbmVkLCBidXQgdGhlc2UgYXJlIHN5bXB0b21zIHRoYXQgdHJ1bHkgbmVlZCB0byBiZSBkaXNjdXNzZWQgYW5kIG5vdCBpZ25vcmVkIGZvciBzaXggd2Vla3MgYmVjYXVzZSBsaWtlIEhheWxleSB3YXMgc2F5aW5nLCBpdCBjYW4gc3RhcnQgd2VhcmluZyBvbiBvdXIgbWVudGFsIGhlYWx0aC4gSSByZW1lbWJlciB3YW50aW5nIHRvIGdvIG91dCBhbmQgd2FsayBhcm91bmQgdGhlIGJsb2NrIHdpdGggbXkga2lkcyBhbmQganVzdCB3YW50aW5nIHRvIGhvbGQgbXlzZWxmIGRvd24gdGhlcmUgYmVjYXVzZSBpdCB3YXMgc28gYnVsZ3kgYW5kIGFjaHkuwqBIYXlsZXk6IFllcy7CoE1lYWdhbjogQWNjb3JkaW5nIHRvIGEgc3R1ZHksIGl0IHNhaWQgdGhhdCBhcm91bmQgMzUlIG9mIHdvbWVuIHdobyBoYXZlIHJlY2VudGx5IGdpdmVuIGJpcnRoIHN1ZmZlciBmcm9tIHByb2xhcHNlLiAzNSUuIFRoYXTigJlzIGEgbG90IG9mIHVzLCB5b3UgZ3V5cy4gQSBsb3Qgb2YgcGVvcGxlLiBUaGUgY3lzdG9jZWxlIGlzIHdoZW4gdGhlIHdhbGwgYmV0d2VlbiB0aGUgYmxhZGRlciBhbmQgdGhlIHZhZ2luYWwgd2FsbCB3ZWFrZW5zIHNvIHdlIGNhbuKAmXQga2VnZWwuIEl04oCZcyBub3QgdGlnaHQuIEl04oCZcyB3ZWFrZW5lZCBzbyBpdCBjb21lcyBkb3duLsKgQWdhaW4sIGlmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIGFueSBvZiB0aGVzZSBzeW1wdG9tcywga25vdyB0aGF0IGl04oCZcyBub3QgbmVjZXNzYXJpbHkgc29tZXRoaW5nIHlvdSBoYXZlIHRvIGp1c3QgZGVhbCB3aXRoLiBBbmQgeWVzLCBpdCB3aWxsIHByb2JhYmx5IHJlc29sdmUgaW4gdGltZSwgYnV0IHlvdSBjb3VsZCBhbHNvIHByb2JhYmx5IGdldCBzb21lIGhlbHAgc29vbmVyIHJhdGhlciB0aGFuIGxhdGVyIGFuZCBoZWxwIHlvdXJzZWxmIG1lbnRhbGx5IG5vdCB3b3JyeSBhYm91dCB0aGF0LsKgSSBoYXZlIGEgZnJpZW5kIHdobyBoYWQgYSBwcmV0dHkgaGlnaC1ncmFkZSBwcm9sYXBzZS4gU2hlIGVuZGVkIHVwIHNjaGVkdWxpbmcgd2hpY2ggaXMgdG90YWxseSBmaW5lLiBTaGUgZW5kZWQgdXAgc2NoZWR1bGluZyBDLXNlY3Rpb25zIGZvciB0aGUgcmVzdCBvZiBoZXIgYmlydGhzIGJlY2F1c2Ugc2hlIHdhcyBzbyB0ZXJyaWZpZWQgb2YgaGF2aW5nIHRoYXQgaXNzdWUgYmVjYXVzZSBzaGUgZGlkIGhhdmUgYmxhZGRlciBhbmQgZmVjYWwgaXNzdWVzLiBXaGVuIHlvdSBhcmUgcGVlaW5nIGFuZCBwb29waW5nIHlvdXJzZWxmLCB0aGF04oCZcyBub3QgZnVuLiBJdOKAmXMgbm90IGZ1biwgYnV0IHlvdSBjYW4gZ2V0IHRoZSBzdXBwb3J0IG91dCB0aGVyZSBhbmQgeW91IGRlc2VydmUgdGhlIHN1cHBvcnQgYW5kIHlvdSBkbyBub3QgbmVlZCB0byBiZSBwdXNoZWQgb2ZmIGZvciBzaXggd2Vla3MuwqBNYWtlIHN1cmUgdG8gZm9sbG93IHlvdXIgaGVhcnQgYW5kIGdldCB0aGUgaGVscCB5b3UgbmVlZC7CoDM1OjI5IFByb2xhcHNlIGNhbiBoYXBwZW5IYXlsZXk6IFllYWgsIGV4YWN0bHkuIEkgdGhpbmsgYW5vdGhlciB0aGluZyB0aGF0IEkgd291bGQgaGF2ZSBsb3ZlZCB0byBoYXZlIGtub3duLCBJIGZlZWwgbGlrZSBubyBvbmUgdGFsa3MgYWJvdXQgcHJvbGFwc2UuIFdoZW4gSSB3ZW50IHRocm91Z2ggbXkgcHJlZ25hbmN5IGNsYXNzZXMgb3IgZXZlbiBqdXN0IHdpdGggdGhlIGRvY3RvciBvciB3aXRoIG15IG1pZHdpZmUsIG5vIG9uZSBldmVyIG1lbnRpb25lZCwg4oCcT2gsIHRoaXMgY291bGQgaGFwcGVuLiBUaGlzIGNvdWxkIGJlIGEgY29tcGxpY2F0aW9uLiBUaGlzIGNvdWxkIGhhcHBlbiBhZnRlciBiaXJ0aC7igJ0gTm8gb25lIGV2ZXIgbWVudGlvbmVkIHRoYXQgdG8gbWUsIHNvIEkgd2FzIGxpa2UsIOKAnEkgZG9u4oCZdCBldmVuIGtub3cgd2hhdCB0aGlzIGlzLOKAnSB0aGVuIEkgZmVsdCByZWFsbHkgYWxvbmUgbGlrZSwg4oCcV2h5IGFtIEkgdGhlIG9ubHkgcG9zdHBhcnR1bSBwZXJzb24gd2hvIGhhcyB0aGlzIGhhcHBlbj/igJ3CoE1lYWdhbjogUmlnaHQgb3IgdGhhdOKAmXMganVzdCB0YWxraW5nIGFib3V0IGl0LsKgSGF5bGV5OiBJbiByZWFsaXR5LCBJ4oCZbSBub3QuwqBNZWFnYW46IE5vLCB5b3XigJlyZSBub3QuIFllYWguIFRoZXJlIGFyZSBhIHRvbiBvZiByaXNrIGZhY3RvcnMsIGJ1dCBnaXZpbmcgYmlydGggaXMgZWFzaWx5IHRoZSBoaWdoZXN0IHJpc2suIFRoaW5rIGFib3V0IHRoZSBhbW91bnQgb2YgcHJlc3N1cmUgdGhhdCB3ZSBhcmUgcHV0dGluZyBvbiBvdXIgcGVsdmljIGZsb29yIGFuZCBvdXIgb3JnYW5zIHdoZW4gd2UgYXJlIHB1c2hpbmcgb3V0IGEgYmFieS4gSSB0aGluayB0aGF0IGlzIGFub3RoZXIgcmVhc29uLiBJIGtub3cgeW91IGRpZCB0aGlzLiBJIGtub3cgeW91IHdlbnQgdG8gcGVsdmljIFBUIGJlZm9yZWhhbmQsIGJ1dCBlc3BlY2lhbGx5IGlmIHlvdeKAmXZlIGhhZCB0aGlzIGluIHRoZSBwYXN0IG9yIHlvdSBhcmUgdGhpbmtpbmcgYWJvdXQgdGhpcywgdGFsayB0byB5b3VyIHBlbHZpYyBmbG9vciBQVCBhbmQgc2F5LCDigJxPa2F5LiBDYW4geW91IGdpdmUgbWUgc29tZSBndWlkYW5jZSBvbiBwdXNoaW5nPyBDYW4gd2UgdGFsayBhYm91dCBob3cgdG8gdHJ5IHRvIGF2b2lkIHRoaXM/4oCdwqBJIGFjdHVhbGx5IGhhZCBhbm90aGVyIGNsaWVudOKAkyBteSBvdGhlciBvbmUgd2FzIGp1c3QgYSBmcmllbmQuIEkgd2FzbuKAmXQgaGVyIGRvdWxhLCBidXQgdGhpcyB3YXMgYSBjbGllbnQuIFNoZSBoYWQgc29tZSBwcmV0dHkgcm91Z2ggUFQgdGhpbmdzIGFuZCBoYWQgdG8gZ28gdGhyb3VnaCBhIGxvdCBvZiBQVC4gVGhhdCB3YXMgaGVyIHRoaW5nIGFuZCB0aGV5IHNhaWQsIOKAnEFzIHNvb24gYXMgeW91IGZlZWwgdGhpcywgSSB3YW50IHlvdSB0byBjaGFuZ2UgcG9zaXRpb25zLiBJIHdhbnQgeW91IHRvIHB1c2ggZGlmZmVyZW50bHkuIEkgd2FudCB5b3UgdG8gYnJlYXRoZSBkaWZmZXJlbnRseS7igJ0gU2hlIGJlbGlldmVzIHRoYXQgaGVyIHdvcmsgYmVmb3JlIGFuZCBoZXIgd29yayBkdXJpbmcgYW5kIGhlciBkaWZmZXJlbnQgc3R5bGUgb2YgcHVzaGluZyBoZWxwZWQuIEJhYnkgY2FtZSBvdXQgcmVhbGx5IGZhc3QuIFNoZSBhY3R1YWxseSBkaWRu4oCZdCBoYXZlIGFueSBwZWx2aWMgaXNzdWVzIHdoaWNoIHdhcyBhIHJlYWxseSBncmF0ZWZ1bCB0aGluZyBmb3IgaGVyIGJlY2F1c2Ugc2hlIGhhZCBhIHByZXR0eSBzZXZlcmUgY29tcGxpY2F0aW9uLsKgWWVhaC4gSXQgZG9lc27igJl0IGFsd2F5cyBoYXZlIHRvIGJlIHRoYXQgc28gdGhhdCB3YXMgYW5vdGhlciBtZXNzYWdlLiBJZiB5b3UgaGF2ZSBpdCwgaXQgZG9lc27igJl0IGhhdmUgdG8gYmUgbGlrZSB0aGF0IG5leHQgdGltZSBvciBpdCBkb2VzbuKAmXQgbWVhbiBpdOKAmXMgYWx3YXlzIGdvaW5nIHRvIGJlIGxpa2UgdGhhdCBuZXh0IHRpbWUuIEJ1dCBrbm93IHRoYXQgaWYgeW91IGFyZSBoYXZpbmcgdGhhdCwgeW914oCZcmUgcHJvYmFibHkgbm90IHRoZSBvbmx5IG9uZS4gMzUlIG9mIHVzLCB0aGF04oCZcyBhIGxhcmdlIGNodW5rIG9mIHBlb3BsZS4gVGhhdOKAmXMgcmlnaHQgdXAgdGhlcmUgd2l0aCB0aGUgQ2VzYXJlYW4gcmF0ZS4gSXTigJlzIHF1aXRlIGhpZ2guwqBIYXlsZXk6IFRoYXTigJlzIHRydWUuwqBNZWFnYW46IFNvIGtub3cgdGhhdCBpdOKAmXMgb2theSB0byB0YWxrIGFib3V0IGl0LiBJdOKAmXMgb2theSB0byBvcGVuIHVwLiBZb3UgZG8gbm90IGhhdmUgdG8gZGVhbCB3aXRoIGl0LiBZb3UgY2FuIGdldCBoZWxwIGFuZCB5b3UgZGVzZXJ2ZSBpdC7CoEhheWxleTogWWVhaC4gWWVhaC4gRXhhY3RseS4gSSBmZWVsIGxpa2UgZm9yIGEgd2hpbGUsIEkganVzdCBjcmllZCB0byBteSBodXNiYW5kIGFuZCBoZSB3YXMgbGlrZSwg4oCcSXTigJlzIG9rYXkgdG8gZmVlbCB0aGlzIHdheS7igJ0gU3RvcCBibGFtaW5nIHlvdXJzZWxmLiBSZWFsbHkgZ2V0dGluZyBvdXQgb2YgeW91ciBoZWFkLiBZb3UgZGlkbuKAmXQgY2F1c2UgdGhpcyBhbmQgeWVhaC4gWW91IGNhbiBhYnNvbHV0ZWx5IGdldCBoZWxwLiBJZiBwZW9wbGUgYXJlIHB1c2hpbmcgeW91IG9mZiwgbGV04oCZcyBmaW5kIHNvbWVib2R5IGVsc2UgdGhlbiB3aG8gd2lsbCB0YWxrIHRvIHlvdSBpbiB0aGUgbWVhbnRpbWUgYmVjYXVzZSB5b3VyIG1lbnRhbCBoZWFsdGggbWF0dGVycy4gSG93IHlvdSBhcmUgZmVlbGluZyBtYXR0ZXJzIGJlY2F1c2UgeWVhaC4gTm93LCBoZXJlIEkgYW0gZ2V0dGluZyBjbG9zZSB0byBhIHllYXIgcG9zdHBhcnR1bSBhbmQgSeKAmW0gZmVlbGluZyBzbyBtdWNoIGJldHRlciwgYnV0IGl04oCZcyBiZWNhdXNlIEnigJl2ZSBiZWVuIGxpc3RlbmluZyB0byBteSBib2R5IGFuZCBJ4oCZdmUgYmVlbiB3b3JraW5nIHdpdGggYSBQVCBkb2luZyBleGVyY2lzZXMgYW5kIHN1cHBvcnRpbmcgbXlzZWxmIGFuZCB3b3JraW5nIG9uIGRyaW5raW5nIHdhdGVyLCBub3QgZ2V0dGluZyBjb25zdGlwYXRlZCBsaWtlIHlvdSBzYWlkIGFuZCBhbGwgb2YgdGhlc2UgdGhpbmdzLsKgQWdhaW4sIHdlcmUgdGhlcmUgdGltZXMgaW4gbXkgcG9zdHBhcnR1bSBqb3VybmV5IHdoZW4gSSB3YXMgbGlrZSwg4oCcVGhpcyBpcyBub3Qgd2hhdCBJIHdhbnQgdG8gYmUgZGVhbGluZyB3aXRoP+KAnSBZZXMuIEJ1dCB5b3UgY2FuIGFic29sdXRlbHnigJMgaXQgZG9lcyBnZXQgYmV0dGVyLiBJZiB5b3XigJlyZSBmZWVsaW5nIHRoaXMgd2F5LCBpdCBzdWNrcyBhbmQgeW91IGZlZWwgbGlrZSBpdOKAmXMgbmV2ZXIgZ29pbmcgdG8gZ2V0IGJldHRlci4gSSBnZXQgaXQuIEkgd2FzIHRoZXJlLCBidXQgaXQgcmVhbGx5IGRvZXMgYW5kIHlvdeKAmXJlIG5vdCB0aGUgb25seSBwZXJzb24uwqBBdCB0aGUgc2FtZSB0aW1lLCBJIGRvbuKAmXQgd2FudCB0byBzY2FyZSBwZW9wbGUuIFRoaXMgbWF5IG5vdCBoYXBwZW4gdG8geW91IGVpdGhlciBmb3Igc3VyZS4gQnV0IGlmIGl0IGRvZXMsIGxpc3RlbiB0byB5b3Vyc2VsZiBhbmQgeW91IGNhbiBnZXQgaGVscC7CoE1lYWdhbjogQW5kIHRoYXTigJlzIHRoZSBtZXNzYWdlLCByaWdodD8gSXTigJlzIG5vdCBnb2luZyB0byBoYXBwZW4gdG8gZXZlcnlib2R5IGJ1dCBpdCBkb2VzIGhhcHBlbiBhbmQgaXTigJlzIGltcG9ydGFudCB0byBrbm93IHRoYXQgeW91IGRvbuKAmXQgaGF2ZSB0byBpZ25vcmUgaXQuIFlvdSBkb27igJl0IGhhdmUgdG8gc3VmZmVyIGluIHNpbGVuY2UuIFlvdSBjYW4gZ2V0IGhlbHAgYW5kIGhhdmUgYSBiZXR0ZXIgcG9zdHBhcnR1bS4gVGhlcmUgYXJlIHRvbnMgb2YgdGhpbmdz4oCTIEkgdGhpbmsgSeKAmXZlIHRhbGtlZCBhYm91dCB0aGlz4oCTIGluIG15IHBvc3RwYXJ0dW0gam91cm5leSB3aGVyZSBJIHdhcyBsaWtlLCDigJxJIGdvdCB0aGUgYmlydGggSSB3YW50ZWQsIGJ1dCBJ4oCZbSBzbyBmcnVzdHJhdGVkIHRoYXQgdGhlc2UgdGhpbmdzIGFyZSBoYXBwZW5pbmcu4oCdIFlvdSBjYW4gYWxzbyBoYXZlIGJvdGggb2YgdGhvc2UgZmVlbGluZ3MuIFlvdSBjYW4gYmUgc3VwZXIgaGFwcHkgZm9yIHlvdXIgYmlydGggYnV0IGFsc28gcmVhbGx5IGZydXN0cmF0ZWQgd2l0aCB5b3VyIHBvc3RwYXJ0dW0gam91cm5leSBvciB2aWNlIHZlcnNhIHdoZXJlIHlvdeKAmXJlIGxpa2UsIOKAnEkgaGFkIGEgcmVhbGx5IGNyYXBweSBiaXJ0aCwgYnV0IG1hbiwgSeKAmW0gc28gZ3JhdGVmdWwgZm9yIHRoaXMgcG9zdHBhcnR1bSBqb3VybmV5LuKAnSBZb3UgY2FuIGhhdmUgdGhvc2UgZmVlbGluZ3MgdG9nZXRoZXIuIFlvdSBkb27igJl0IGhhdmUgdG8gYmUgcXVpZXQgYmVjYXVzZSB5b3UgaGFkIHRoZSBiaXJ0aCB0aGF0IGV2ZXJ5b25lIGtuZXcgeW91IHdhbnRlZC7CoEhheWxleTogUmlnaHQsIGV4YWN0bHkuIEl0IGRvZXNu4oCZdCBkaW1pbmlzaCBob3cgcHJvdWQgSSBhbSBvZiBoYXZpbmcgYSBuYXR1cmFsIFZCQUMgYW5kIGRvaW5nIHRoYXQgZXZlbiB0aG91Z2ggYXQgdGltZXMgaW4gdGhlIGJlZ2lubmluZywgSSBkaWQgcXVlc3Rpb24gdGhhdC7CoE1lYWdhbjogT2ggeWVhaC4gWWVhaC4gVGhhdOKAmXMgbmF0dXJhbC7CoEhheWxleTogQnV0IGxvb2tpbmcgYmFjaywgSeKAmW0gbGlrZSwg4oCcVGhhdOKAmXMgYW1hemluZy7igJ0gSeKAmW0gc28gcHJvdWQgb2YgbXlzZWxmIHRoYXQgSSBhY2hpZXZlZCBhIFZCQUMgYW5kIGhhZCBhbiB1bm1lZGljYXRlZCBvbmUuIEl04oCZcyBqdXN0IGNyYXp5IHRvIG1lLsKgTWVhZ2FuOiBBYnNvbHV0ZWx5LiBXZWxsLCB0aGFuayB5b3UgZm9yIHNoYXJpbmcgeW91ciBzdG9yeSB0b2RheS7CoEhheWxleTogVGhhbmsgeW91IGZvciBoYXZpbmcgbWUuIEkga25vdyBJIGNhbiB0YWxrIGEgbG90LsKgTWVhZ2FuOiBJdCB3YXMgd29uZGVyZnVsLsKgQ2xvc2luZ1dvdWxkIHlvdSBsaWtlIHRvIGJlIGEgZ3Vlc3Qgb24gdGhlIHBvZGNhc3Q/IFRlbGwgdXMgYWJvdXQgeW91ciBleHBlcmllbmNlIGF0IHRoZXZiYWNsaW5rLmNvbS9zaGFyZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gYWxsIHRoaW5ncyBWQkFDIGluY2x1ZGluZyBvbmxpbmUgYW5kIGluLXBlcnNvbiBWQkFDIGNsYXNzZXMsIFRoZSBWQkFDIExpbmsgYmxvZywgYW5kIE1lYWdhbuKAmXMgYmlvLCBoZWFkIG92ZXIgdG8gdGhldmJhY2xpbmsuY29tLiBDb25ncmF0dWxhdGlvbnMgb24gc3RhcnRpbmcgeW91ciBqb3VybmV5IG9mIGxlYXJuaW5nIGFuZCBkaXNjb3Zlcnkgd2l0aCBUaGUgVkJBQyBMaW5rLlN1cHBvcnQgdGhpcyBwb2RjYXN0IGF0IOKAlCBodHRwczovL3JlZGNpcmNsZS5jb20vdGhlLXZiYWMtbGluay9kb25hdGlvbnNBZHZlcnRpc2luZyBJbnF1aXJpZXM6IGh0dHBzOi8vcmVkY2lyY2xlLmNvbS9icmFuZHMiLCJkdXJhdGlvbiI6eyJ0b3RhbE1pbGxpc2Vjb25kcyI6MjQ2NTgyOH0sImlkIjoiMkdybEFmTUhmcjY3RWw5Ujd5VXFUSyIsIm1lZGlhVHlwZXMiOlsiQVVESU8iXSwibmFtZSI6IkVwaXNvZGUgMjkwIEhheWxleSdzIFVubWVkaWNhdGVkIFZCQUMgKyBFcGlkdXJhbCBhbmQgUHJvbGFwc2UgVGFsayIsInBsYXlhYmlsaXR5Ijp7InBsYXlhYmxlIjp0cnVlLCJyZWFzb24iOiJQTEFZQUJMRSJ9LCJwbGF5ZWRTdGF0ZSI6eyJwbGF5UG9zaXRpb25NaWxsaXNlY29uZHMiOjAsInN0YXRlIjoiTk9UX1NUQVJURUQifSwicG9kY2FzdFYyIjp7Il9fdHlwZW5hbWUiOiJQb2RjYXN0UmVzcG9uc2VXcmFwcGVyIiwiZGF0YSI6eyJfX3R5cGVuYW1lIjoiUG9kY2FzdCIsImNvdmVyQXJ0Ijp7InNvdXJjZXMiOlt7ImhlaWdodCI6NjQsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMGY2OGRiYjVmNzZiYTQzMmRmYzMwM2YzN2Y4MDYiLCJ3aWR0aCI6NjR9LHsiaGVpZ2h0IjozMDAsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMDVmMWZiYjVmNzZiYTQzMmRmYzMwM2YzN2Y4MDYiLCJ3aWR0aCI6MzAwfSx7ImhlaWdodCI6NjQwLCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDBiYThhYmI1Zjc2YmE0MzJkZmMzMDNmMzdmODA2Iiwid2lkdGgiOjY0MH1dfSwibmFtZSI6IlRoZSBWQkFDIExpbmsiLCJzaG93VHlwZXMiOltdLCJ1cmkiOiJzcG90aWZ5OnNob3c6MzZiVnhxT0dkMUVZY1Iwb0p0ZUY1biJ9fSwicmVsZWFzZURhdGUiOnsiaXNvU3RyaW5nIjoiMjAyNC0wNC0xMFQwNzoxMDowMFoifSwicmVzdHJpY3Rpb25zIjp7InBheXdhbGxDb250ZW50IjpmYWxzZX0sInVyaSI6InNwb3RpZnk6ZXBpc29kZToyR3JsQWZNSGZyNjdFbDlSN3lVcVRLIn0seyJfX3R5cGVuYW1lIjoiRXBpc29kZSIsImF1ZGlvIjp7Iml0ZW1zIjpbeyJmaWxlSWQiOiIxNDVmZGFiOGRiNGRiZmE0OGU4OWFhZDUwYTg4YWVhZmI0ODJjMjZlIiwiZm9ybWF0IjoiTVA0XzEyOF9DQkNTIiwidXJsIjoiaHR0cHM6Ly9wLnNjZG4uY28vbXAzLXByZXZpZXcvMTQ1ZmRhYjhkYjRkYmZhNDhlODlhYWQ1MGE4OGFlYWZiNDgyYzI2ZSJ9LHsiZmlsZUlkIjoiZDdhZGNiM2FkYmNiNGRhMTM4NjY3NmJlNDM2ZTJiZWUyMjk5MTg2ZSIsImZvcm1hdCI6Ik1QNF8xMjhfRFVBTCIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3L2Q3YWRjYjNhZGJjYjRkYTEzODY2NzZiZTQzNmUyYmVlMjI5OTE4NmUifSx7ImZpbGVJZCI6IjU0ODI3NGZlNTk0MjUwNGM4NTE3N2M0OWUyMTJhMjc3M2VkNGZhMDciLCJmb3JtYXQiOiJBQUNfMjQiLCJ1cmwiOiJodHRwczovL3Auc2Nkbi5jby9tcDMtcHJldmlldy81NDgyNzRmZTU5NDI1MDRjODUxNzdjNDllMjEyYTI3NzNlZDRmYTA3In0seyJmaWxlSWQiOiJlYTFkMjhjM2E3ZTIyNWY3Y2E1MGZjYmFiYTkzNjUwYmFlNmQ4ZTJkIiwiZm9ybWF0IjoiT0dHX1ZPUkJJU185NiIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3L2VhMWQyOGMzYTdlMjI1ZjdjYTUwZmNiYWJhOTM2NTBiYWU2ZDhlMmQifSx7ImZpbGVJZCI6ImY2YjI4YTVmYmU0YTE0ZjY5OGNmN2M4YzhiM2QzMzAxZDY2ZjUwMTIiLCJmb3JtYXQiOiJNUDRfMTI4IiwidXJsIjoiaHR0cHM6Ly9wLnNjZG4uY28vbXAzLXByZXZpZXcvZjZiMjhhNWZiZTRhMTRmNjk4Y2Y3YzhjOGIzZDMzMDFkNjZmNTAxMiJ9XX0sImNvbnRlbnRSYXRpbmciOnsibGFiZWwiOiJOT05FIn0sImNvdmVyQXJ0Ijp7InNvdXJjZXMiOlt7ImhlaWdodCI6NjQsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMGY2OGQ3YWEzMTZhM2NmNmRhMTJkYjMwMTdiYzUiLCJ3aWR0aCI6NjR9LHsiaGVpZ2h0IjozMDAsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMDVmMWY3YWEzMTZhM2NmNmRhMTJkYjMwMTdiYzUiLCJ3aWR0aCI6MzAwfSx7ImhlaWdodCI6NjQwLCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDBiYThhN2FhMzE2YTNjZjZkYTEyZGIzMDE3YmM1Iiwid2lkdGgiOjY0MH1dfSwiZGVzY3JpcHRpb24iOiJEdXJpbmcgaGVyIGZpcnN0IHByZWduYW5jeSwgU2VsYWjigJlzIGRvY3RvciBwcmVkaWN0ZWQgdGhhdCBoZXIgYmFieSB3b3VsZCBiZSBvdmVyIDEwIHBvdW5kcy4gU2hlIGluc2lzdGVkIHRoYXQgaXQgd2FzIG5vdCBzYWZlIHRvIGRlbGl2ZXIgdmFnaW5hbGx5LiBTZWxhaCB3ZW50IHJpZ2h0IGludG8gaGVyIGZpcnN0IENlc2FyZWFuLiBTaGUgZGlkbuKAmXQgZXZlbiBoYXZlIHRoZSBjaGFuY2UgdG8gdHJ5LiBIZXIgYmFieSB3ZW50IHRvIHRoZSBOSUNVIHNob3J0bHkgYWZ0ZXIgYmlydGggZHVlIHRvIGx1bmcgYW5kIGJsb29kIHN1Z2FyIGNvbXBsaWNhdGlvbnMuV2hlbiBoZXIgZmx1aWQgbGV2ZWxzIHdlcmUgbG93IHdpdGggaGVyIHNlY29uZCBwcmVnbmFuY3ksIFNlbGFoIGNvbnNlbnRlZCB0byBhbm90aGVyIHNjaGVkdWxlZCBDZXNhcmVhbiByZW1lbWJlcmluZyBob3cgaGVyIGZpcnN0IG9uZSB3ZW50IHByZXR0eSBzbW9vdGhseS4gVW5mb3J0dW5hdGVseSwgYSB0dXJuIG9mIGV2ZW50cyByZXN1bHRlZCBpbiBhbiBlbWVyZ2VudCBzaXR1YXRpb24sIGFub3RoZXIgTklDVSBzdGF5LCBhbmQgb25jZSBhZ2FpbiwgU2VsYWggd2FzIG5vdCBhYmxlIHRvIGJvbmQgd2l0aCBoZXIgYmFieSBsaWtlIHNoZSB0aG91Z2h0IHNoZSB3b3VsZC7CoFNlbGFo4oCZcyBqb3VybmV5IHRvIGhlciBWQkEyQyBpbmNsdWRlZCBkaXNjb3ZlcmluZyBUaGUgVkJBQyBMaW5rLCBidWlsZGluZyBoZXIgc3VwcG9ydGl2ZSBjb21tdW5pdHksIHByZW5hdGFsIGNoaXJvcHJhY3RpYyBjYXJlLCBhbmQgcmVsZW50bGVzc2x5IGVkdWNhdGluZyBoZXJzZWxmIHRvIG1ha2Ugc3VyZSBzaGUgd2FzIHNldCB1cCBmb3Igc3VjY2Vzcy4gVGhvdWdoIGhlciBsYWJvciB3YXMgTVVDSCBsb25nZXIgdGhhbiBleHBlY3RlZCwgdGhlIHNwaXJpdHVhbCwgZW1vdGlvbmFsLCBhbmQgcGh5c2ljYWwgdHJhbnNmb3JtYXRpb24gc2hlIGV4cGVyaWVuY2VkIHdhcyBjb21wbGV0ZWx5IHdvcnRoIGl0LiBTZWxhaCBoYWQgYSBiZWF1dGlmdWwsIGVtcG93ZXJpbmcgVkJBMkMgd2l0aCBubyBjb21wbGljYXRpb25zLiBUaGUgYmVzdCBwYXJ04oCTIHNoZSBnb3QgdG8gaG9sZCB0aGF0IHN3ZWV0IGJhYnkgaW1tZWRpYXRlbHkgYW5kIGZvciBhcyBsb29vbmcgYXMgc2hlIHdhbnRlZC7CoE5lZWRlZCBXZWJzaXRlSG93IHRvIFZCQUM6IFRoZSBVbHRpbWF0ZSBQcmVwIENvdXJzZSBmb3IgUGFyZW50c0Z1bGwgVHJhbnNjcmlwdCB1bmRlciBFcGlzb2RlIERldGFpbHPCoDAxOjA0IFJldmlldyBvZiB0aGUgV2Vla8KgMDQ6MDggU2VsYWjigJlzIGZpcnN0IHByZWduYW5jeTA3OjI1IEZpcnN0IEMtc2VjdGlvbsKgMDk6MzYgTklDVTExOjEwIFNlY29uZCBwcmVnbmFuY3kxMzowMiBMb3cgZmx1aWRzMTY6MjkgU2NoZWR1bGVkIENlc2FyZWFuIHR1cm5lZCBlbWVyZ2VudDIxOjM5IFN1cnByaXNlIHRoaXJkIHByZWduYW5jeTI3OjMzIENoYW5naW5nIHByb3ZpZGVyczM2OjMzIEdvaW5nIGludG8gbGFib3IzOToyMCBHb2luZyB0byB0aGUgaG9zcGl0YWw0NDo1NCBQaXRvY2luNDg6MzUgVGhlIGZpbmFsIGhvdXJzNTY6NDcgQSBjcmFjayBpbiB0aGUgY2F0aGV0ZXIxOjAwOjAwIFRoZSBiZXN0IGZlZWxpbmdNZWFnYW46IEhlbGxvLCBoZWxsbyBldmVyeWJvZHkuIFlvdSBhcmUgbGlzdGVuaW5nIHRvIFRoZSBWQkFDIExpbmsgYW5kIHRoaXMgaXMgTWVhZ2FuLCB5b3VyIGhvc3QuIFdlIGhhdmUgb3VyIGZyaWVuZCwgU2VsYWgsIHRvZGF5LiBIaSwgU2VsYWguwqBTZWxhaDogSGkuIEhlbGxvLsKgTWVhZ2FuOiBUaGFuayB5b3Ugc28gbXVjaCBmb3IgYmVpbmcgaGVyZSB3aXRoIHVzLiBJIGZlZWwgbGlrZSB0aGVyZSBhcmUgc28gbWFueSBwYXJ0cyBvZiB5b3VyIHN0b3J5IHRoYXQgdHJ1bHkgYXJlIHRoaW5ncyB0aGF0IHBlb3BsZSBhcmUgZ29pbmcgdG8gcmVsYXRlIHRvLiBXZeKAmXJlIGdvaW5nIHRvIGJlIHRhbGtpbmcgYWJvdXQgYmlnZ2VyIGJhYmllcy4gV2XigJlyZSBnb2luZyB0byB0YWxrIGEgbGl0dGxlIGJpdCBhYm91dCB0aGF0LiBXZeKAmXJlIGdvaW5nIHRvIHRhbGsgYWJvdXQgY2hhbmdpbmcgYSBwcm92aWRlciByZWFsbHkgbGF0ZSBpbiBwcmVnbmFuY3kuIEkgYWN0dWFsbHkgbG92ZSB0aGlzIHRvcGljIGJlY2F1c2UgSSBkaWQgaXQgbXlzZWxmIGFuZCBpdOKAmXMgb25lIHRoYXQgaXMgc2Nhcnkgc29tZXRpbWVzIHRvIGRvLsKgU2VsYWg6IFllYWguwqBNZWFnYW46IEl04oCZcyBpbnRpbWlkYXRpbmcuIFdl4oCZbGwgdGFsayBhIGxpdHRsZSBiaXQgYWJvdXQgbG93IGZsdWlkLiBTaGXigJlzIGdvdCBhIE5JQ1Ugc3RheS4gVGhlcmUgYXJlIGxvdHMgb2YgbGl0dGxlIHRoaW5ncy7CoFNlbGFoOiBBIGxpdHRsZSBiaXQgb2YgZXZlcnl0aGluZy7CoE1lYWdhbjogWW91IGFyZSBnb2luZyB0byBoYXZlIHJlbGF0aW9ucyB0byBoZXIgc3RvcnkuIFNoZSBpcyBhIFZCQUMgYWZ0ZXIgdHdvIEMtc2VjdGlvbiBtYW1hIHN0b3J5IHNvIGlmIHlvdSBhcmUgYSBWQkFDIGFmdGVyIHR3byBDLXNlY3Rpb25zLCBsaXN0ZW4gdXAuIEl04oCZcyBnb2luZyB0byBiZSBhbWF6aW5nLjAxOjA0IFJldmlldyBvZiB0aGUgV2Vla8KgTWVhZ2FuOiBXZSBoYXZlIGEgcmV2aWV3IG9mIHRoZSB3ZWVrIHNvIHdlIGFyZSBnb2luZyB0byBnZXQgaW50byB0aGF0IHRoZW4gd2UgYXJlIGdvaW5nIHRvIHR1cm4gdGhlIHRpbWUgb3ZlciB0byB5b3UsIG15IGxvdmUuwqBTZWxhaDogWWF5LsKgTWVhZ2FuOiBUaGlzIHJldmlldyBpc+KAkyBpZiBJIGNhbiBmaW5kIHRoZW0uIEkganVzdCBsb3N0IG15IHJldmlld3MuIEl0IGlzIGZyb20gaGFubmFoYXJnZW50aW5hIGFuZCBpdCB3YXMgb24gQXBwbGUgUG9kY2FzdHMgYmFjayBpbiAyMDIzIGluIEZlYnJ1YXJ5IHNvIGp1c3Qgb3ZlciBhIHllYXIgYWdvLiBJdCBzYXlzLCDigJxJIGhhdmUgaGFkIGEgbmF0dXJhbCBiaXJ0aCBjZW50ZXIgYmlydGgsIHRoZW4gbW92ZWQgb3V0IHRvIHRoZSBjb3VudHJ5IGFuZCBoYWQgYSB2ZXJ5IHRyYXVtYXRpYyBDLXNlY3Rpb24uIEkgYW0gbm93IDM3IHdlZWtzIHByZWduYW50IGFuZCBiYWNrIHN0YXRlc2lkZSB3b3JraW5nIHdpdGggYW4gYW1hemluZyBiaXJ0aCB0ZWFtLiBJIGFtIHJlYWxseSBob3BpbmcgZm9yIGEgVkJBQyBpbiBhIGZldyB3ZWVrcyBhbmQgSSBsb3ZlIGxpc3RlbmluZyB0byBhbGwgb2YgdGhlIHN0b3JpZXMuIEhlYXJpbmcgZGlmZmVyZW50IHBlcnNwZWN0aXZlcywgYW5kIG91dGNvbWVzLCBhbmQgZ2FpbmluZyB3aXNkb20sIEkgZmVlbCBzbyBtdWNoIG1vcmUgY29uZmlkZW50IGluIG15IFZCQUMgYWZ0ZXIgbGlzdGVuaW5nIHRvIHRoaXMgcG9kY2FzdC7igJ3CoFdlbGwsIGl04oCZcyBiZWVuIGp1c3Qgb3ZlciBhIHllYXIgc28gaGFubmFoYXJnZW50aW5hLCBpZiB5b3UgYXJlIHN0aWxsIHdpdGggdXMsIHJlYWNoIG91dCBhdCBpbmZvQHRoZXZiYWNsaW5rLmNvbSBhbmQgdGVsbCB1cyBob3cgaXQgd2VudC7CoFNlbGFoOiBBd3csIHRoYXTigJlzIGF3ZXNvbWUuwqBNZWFnYW46IEkga25vdyByaWdodCwgYW5kIGhlcmUgd2UgYXJlIGZvciB5b3UgYW5kIHlvdXIgYmFieeKAmXMgYmlydGhkYXkgaXMgaW4gYSBjb3VwbGUgb2YgZGF5cy7CoFNlbGFoOiBJIGNhbuKAmXQgZXZlbiBiZWxpZXZlIGl0IGFuZCBJIGdvdCB0ZWFycyBpbiBteSBleWVzIGxpc3RlbmluZyB0byB0aGF0IHJldmlldyBiZWNhdXNlIHRoYXQgd2FzIG1lLiBUaGF0IHdhcyBtZSBsaXN0ZW5pbmcgdG8gZXZlcnkgc2luZ2xlIHBvZGNhc3QsIHlvdXIgc3RvcnksIGFsbCBvZiB0aGUgc3RvcmllcywgYW5kIGl0IGhlbHBlZCBzbyB0cmVtZW5kb3VzbHkuIEkgY2Fu4oCZdCBldmVuIHRlbGwgeW91LiBUbyBiZSBvbiB0b2RheSBpcyBzdWNoIGFuIGhvbm9yIGJlY2F1c2UgSSB3YXMgc28gaGVscGVkIGJ5IHlvdSBhbmQgeW91ciBwb2RjYXN0IGFuZCB0aGUgY29tbXVuaXR5LiBJIGNvdWxkIG5vdCBoYXZlIGRvbmUgaXQgd2l0aG91dCB5b3Ugc28gdGhhbmsgeW91LiBUaGFuayB5b3UgZm9yIGhhdmluZyBtZS7CoE1lYWdhbjogWWVzLiBUaGFuayB5b3UgYW5kIEkgYWxzbyB3YW50IHRvIHRvb3QgdGhlIGhvcm4gb2YgdGhlIGNvbW11bml0eS4gVGhleSBhcmUgc28gc3BlY2lhbC4gSWYgeW91IGd1eXMgaGF2ZSBub3QgY2hlY2tlZCBpdCBvdXQgeWV0IG9yIGlmIHlvdSBhcmUgbm90IG9uIEZhY2Vib29rLCBJIHdvdWxkIHNheSBjcmVhdGUgYSBzZWNyZXQgRmFjZWJvb2sganVzdCB0byBiZSBpbiB0aGF0IGNvbW11bml0eSBiZWNhdXNlIHRoZSBGYWNlYm9vayBjb21tdW5pdHkgaXMgYW1hemluZyBvciBqb2luIHVzIG9uIEluc3RhZ3JhbS4gVGhlc2Ugb3RoZXIgV29tZW4gb2YgU3RyZW5ndGggdHJ1bHkgZG8gcHJvdmlkZSBzbyBtdWNoIHBvd2VyLsKgU2VsYWg6IFNvIG11Y2ggcG93ZXIgYW5kIGhlbHAgYW5kIHJlc291cmNlcy4gSSBtZWFuLCBJIHdhcyBvbiB0aGVyZSBldmVyeSBkYXkganVzdCBsb29raW5nIGFuZCBwb3N0aW5nIGV2ZXJ5IHNpbmdsZSB3b3JyeSBhbmQgY29uY2Vybi4gWWVhaC4gSXTigJlzIGEgbG90LiBJdOKAmXMgYSBsb3QgdG8gbGVhcm4gYW5kIHRvIGRvLiBZb3UgbmVlZCB0aGF0IGNvbW11bml0eS4gWW91IG5lZWQgdGhhdCBzdXBwb3J0LsKgTWVhZ2FuOiBBYnNvbHV0ZWx5LiBXZWxsLCBsZXTigJlzIGRpdmUgaW50byB0aGF0IGZpcnN0IHN0b3J5IG9mIHlvdXJzIHRoYXQgYmVnYW4gdGhpcyBqb3VybmV5IHRvIHlvdSBiZWluZyBoZXJlIHJpZ2h0IG5vdy7CoDA0OjA4IFNlbGFo4oCZcyBmaXJzdCBwcmVnbmFuY3lTZWxhaDogWWVzLCBzbyB0aGUgYmFjayBzdG9yeSBpcyBJIGhhZCBteSBmaXJzdCBzb24gaW4gMjAxOCBhbmQgaGUgd2FzIGFuIElWRiBiYWJ5LiBXZSBzdHJ1Z2dsZWQgd2l0aCBpbmZlcnRpbGl0eSBmb3IgZm91ciB5ZWFycyBhYm91dCwgSSB0aGluay4gRmluYWxseSwgd2UgZGlkIElWRiBhbmQgd2Ugd2VyZSBzdWNjZXNzZnVsIG9uIG91ciBmaXJzdCB0cnkgd2hpY2ggd2FzIGdyZWF0LiBIb3dldmVyLCB0b3dhcmQgdGhlIGVuZCBvZiBteSBwcmVnbmFuY3ksIG15IGRvY3RvciBsb29rZWQgYXQgbWUgYW5kIHNhaWQsIOKAnEhvdyBiaWcgYXJlIHlvdSB3aWxsaW5nIHRvIHB1c2ggb3V0IGFzIGZhciBhcyBiYWJ5IGdvZXM/4oCdwqBNZWFnYW46IE9oLsKgU2VsYWg6IFllYWguIEkgbG9va2VkIGF0IGhlciBhbmQgYnkgdGhlIHdheSwgSSBjb25zaWRlcmVkIG15c2VsZiB2ZXJ5IHdlbGwtZWR1Y2F0ZWQuIEkgd2FzIG5vdCBpbiBoaW5kc2lnaHQuIEkgaGFkIHJlYWQgYSBmZXcgYmlydGggYm9va3MgYnV0IEkgZGlkIG5vdCBrbm93IHdoYXQgSSBrbm93IG5vdyB0aGFua3MgdG8geW91IGFuZCB0aGUgY29tbXVuaXR5LiBJIGRpZCwgYnkgdGhlIHdheSwgZG8gVGhlIFZCQUMgTGluayBDb3Vyc2Ugc28gSSBkaWQgYWxsIG9mIGl0LsKgTWVhZ2FuOiBPaCB5b3UgZGlkP8KgU2VsYWg6IFllcy4gWWVzLiBTbyBJIHdhcyBub3QgZWR1Y2F0ZWQgdG8gdGhlIHBvaW50IHRoYXQgSSBhbSBub3csIGJ1dCBJIHRob3VnaHQgSSB3YXMuIEkgbG9va2VkIGF0IGhlciBhbmQgdmVyeSBjb25maWRlbnRseSBzYWlkLCDigJwxMiBwb3VuZHMu4oCdIEkgZGlkbuKAmXQgZXZlbiBmbGluY2guwqBNZWFnYW46IEkgbG92ZSB0aGF0LsKgU2VsYWg6IEhlciBleWVzIHR1cm5lZCByZWFsbHkgd2lkZSBhbmQgd2FzIGxpa2UsIOKAnE5vLCBubywgbm8sIG5vLCBuby4gWW91IGNhbm5vdCBwdXNoIG91dCBhIDEyLXBvdW5kIGJhYnku4oCdIE1lYWdhbjogVGhlbiBkb27igJl0IGFzayBtZSB3aGF0IEnigJltIHdpbGxpbmcgdG8gZG8gaGVyZS7CoFNlbGFoOiBFeGFjdGx5LiBJIHdhcyBhIHBlcnNvbmFsIHRyYWluZXIuIEkgd2FzIGEgZ3JvdXAgZml0bmVzcyBpbnN0cnVjdG9yLiBJIGNvbnNpZGVyIG15c2VsZiB2ZXJ5IHN0cm9uZyBzbyBJIHRob3VnaHQsIOKAnEkgY291bGQgZG8gdGhhdC4gTm8gcHJvYmxlbS7igJ0gU2hlIHNhaWQsIOKAnE5vLiBJIHdpbGwgbm90IGxldCB5b3UgZG8gdGhhdC4gVGhpcyBiYWJ5IGlzIG1lYXN1cmluZyBiaWdnZXIgdGhhbiAxMCBwb3VuZHMu4oCdIEF0IHRoYXQgcG9pbnQsIEkgdGhpbmsgSSB3YXMganVzdCBhdCBteSA0MC13ZWVrIG1hcmsgc28gc2hlIHdhcyBsaWtlLCDigJxIZeKAmXMgb25seSBnb2luZyB0byBnZXQgYmlnZ2VyLiBZb3XigJlyZSBub3QgZ29pbmcgdG8gYmUgYWJsZSB0byBkZWxpdmVyIHRoaXMgYmFieSB2YWdpbmFsbHkuIEluIGZhY3QsIEkgd29u4oCZdCBldmVuIHJlYWxseSBsZXQgeW91IHRyeS7igJ3CoE1lYWdhbjogV293LsKgU2VsYWg6IEkga25vdy7CoE1lYWdhbjogVGhhdCB0b29rIGEgcmVhbGx5IGZhc3QgdHVybiBmcm9tLCDigJxIZXksIGhvdyBiaWcgYXJlIHlvdSB3aWxsaW5nIHRvPyBIZXksIGxldOKAmXMgb2ZmZXIgYW4gaW5kdWN0aW9u4oCdIHRvIOKAnEhleSwgSeKAmW0gbm90IGV2ZW4gd2lsbGluZyB0byBsZXQgeW91IHRyeS7igJ3CoFNlbGFoOiBFeGFjdGx5LiBBbmQgbG9va2luZyBiYWNrLCBJ4oCZbSBwcmV0dHkgc2hvY2tlZCBhdCB0aGF0IHRoYXQgSSB3YXNu4oCZdCBldmVuIG9mZmVyZWQgYW4gaW5kdWN0aW9uIG9yIGFueXRoaW5nLiBJbiBmYWN0LCBteSB3YXRlcuKAkyBzbyB3ZSBzY2hlZHVsZWQgdGhlIEMtc2VjdGlvbiBmb3IgdGhyZWUgZGF5cyBmcm9tIHRoZW4gYW5kIG15IHdhdGVyIGVuZGVkIHVwIGJyZWFraW5nIG5hdHVyYWxseSB0aGUgZGF5IGJlZm9yZSB0aGUgQy1zZWN0aW9uLiBJIGtub3cuIEkgd2FzIGxpa2UsIOKAnE9oLiBJ4oCZbSBnb2luZyB0byBkbyB0aGlzLiBJIGNhbiBkbyB0aGlzLiBJIGRvbuKAmXQgY2FyZSBob3cgYmlnIHRoZSBiYWJ5IGlzLuKAncKgTWVhZ2FuOiBZZWFoLsKgU2VsYWg6IEV2ZW4gdGhlbiwgdGhleSB3b3VsZCBub3QgbGV0IG1lIHRyeSBiZWNhdXNlIHRoZXJlIHdhcyBtZWNvbml1bSBpbiB0aGUgd2F0ZXIuwqBNZWFnYW46IFdoaWNoIGlzbuKAmXQgYSByZWFzb24gZm9yIGEgQ2VzYXJlYW4sIHJpZ2h0P8KgU2VsYWg6IEl0IGlzIG5vdC4gUmlnaHQuIFJpZ2h0LiBUaGF04oCZcyB3aGF0IEkga25vdyBub3csIGJ1dCBiYWNrIHRoZW7igJNNZWFnYW46IFlvdSBkaWRu4oCZdCBrbm93LsKgU2VsYWg6IEkgZGlkbuKAmXQga25vdyBhbmQgaXJvbmljYWxseSwgSSBoYWQgYSBkb3VsYSB3aG8gc2FpZCwg4oCcT2gsIHlvdSBuZWVkIHRvIGdvIHN0cmFpZ2h0IHRvIHRoZSBob3NwaXRhbC7igJ0gSSBrbm93LsKgTWVhZ2FuOiBJbnRlcmVzdGluZy7CoFNlbGFoOiBWZXJ5IGludGVyZXN0aW5nLiBUaGF0IGlzIGFsc28gYSBsZXNzb24gaW4gcmVhbGx5IGludGVydmlld2luZyB5b3VyIGRvdWxhcywgdW5kZXJzdGFuZGluZyBiaXJ0aCBtb3JlIHJlYWxseSwgYW5kIGFsc28ga25vd2luZyB3aGF0IHRoZSBkb3VsYeKAmXMgZXhwZXJpZW5jZXMgd2l0aCBib3RoIEMtc2VjdGlvbnMsIG9mIGNvdXJzZSBWQkFDcywgYW5kIHdpdGggZXZlcnl0aGluZy4gVGhpcyBkb3VsYSwgbG9va2luZyBiYWNrLCBkaWQgbm90IGhhdmUgYSBsb3Qgb2YgZXhwZXJpZW5jZSwgSSBkb27igJl0IHRoaW5rLCBlc3BlY2lhbGx5IHdpdGggYmlnIGJhYmllcywgYnV0IGluIGdlbmVyYWwuIEkgdGhpbmsgYWxzbyBzaGUgd2FzIG9sZGVyIGFuZCBub3QgdGhhdCB0aGVyZSBpcyBhbnl0aGluZ+KAkyBsaXN0ZW4uIEkgYW0gb2xkZXIuIEJ1dCBJIHRoaW5rIHNoZSB3YXMgZnJvbSBhIG1lZGljYWwgbWluZHNldCB3aGVyZSB0aGF0IHdvdWxkIGJlIHZlcnkgc2NhcnkgdG8gaGVyLCBtZWNvbml1bSBpbiB0aGUgd2F0ZXIsIHdoZXJlIG5vdywgdGhlIGRvdWxhIHRoYXQgSSBoYWQgZm9yIG15IFZCQUMgd2FzIG11Y2ggbW9yZSBsaWtlLCDigJxOby4gVGhpcyBqdXN0IG1lYW5zIHRoZSBiYWJ5IGlzIHJlYWR5IHRvIGNvbWUgb3V0IGFuZCBpdCBtZWFucyBhIGxvdCBvZiB0aGluZ3Mu4oCdwqAwNzoyNSBGaXJzdCBDLXNlY3Rpb25TZWxhaDogSSBydXNoZWQgdG8gdGhlIGhvc3BpdGFsLiBUaGV5IHNhaWQsIOKAnFllcy4gVGhlcmUgaXMgbWVjb25pdW0gaW4gdGhlIHdhdGVyLiBZZXMsIHlvdSBoYXZlIGEgdmVyeSBiaWcgYmFieS4gV2XigJlyZSBnb2luZyBzdHJhaWdodCB0byB0aGUgQy1zZWN0aW9uLiBZb3UgZG9u4oCZdCBldmVuIGdldCB0byB0cnku4oCdIEkgbmV2ZXIgZXZlbiBmZWx0IGEgY29udHJhY3Rpb24uwqBJIHdhcyBwcmV0dHkgZGV2YXN0YXRlZC4gSSBoYWQgYWxsIG9mIHRoZXNlIHBsYW5zIGZvciBhIGRydWctZnJlZSBiaXJ0aC4gSSBoYWQgcmVhZCBUaGUgQnJhZGxleSBNZXRob2QuIEkgaGFkIGRvbmUgSHlwbm9CYWJpZXMuIE15IG1vbeKAkyBJ4oCZbSBvbmUgb2YgZWlnaHQga2lkc+KAkyBoYWQgcHVzaGVkIGV2ZXJ5IHNpbmdsZSBvbmUgb2YgdXMgb3V0IG5hdHVyYWxseSB3aXRob3V0IGRydWdzLiBJIGtuZXcgSSBjb3VsZCBkbyBpdC4gRG8geW91IGtub3cgd2hhdCBJIG1lYW4/IEkganVzdCB3YXMgbGlrZSwg4oCcV293LiBUaGlzIGlzIG5vdCBoYXBwZW5pbmcgZm9yIG1lIGFuZCBJ4oCZbSBzaG9ja2VkLuKAnSBJIHdhcyB2ZXJ5IHNob2NrZWQuwqBNZWFnYW46IFllYWguIFllYWguwqBTZWxhaDogU28gd2Ugd2VudCBpbnRvIHRoZSBDLXNlY3Rpb24gYnV0IEkgYWxzbyBmZWx0IGxpa2UgSSBoYWQgbm8gY2hvaWNlIGF0IHRoYXQgcG9pbnQuIFRoaXMgd2FzIGRlZmluaXRlbHnigJNNZWFnYW46IFlvdSB3ZXJlIHN0dWNrLsKgU2VsYWg6IFllYWguIOKAnFlvdeKAmXJlIGdvaW5nIGluLiBUaGF04oCZcyBpdC7igJ0gRXZlcnl0aGluZyB3YXMganVzdCBibGFjayBhbmQgd2hpdGUgdG8gdGhlIG1lZGljYWwgdGVhbSBhbmQgZXZlbiB0byBteSBkb3VsYSBmcmFua2x5LiBTbyB3ZSB3ZW50IGluIGFuZCBteSBkb2N0b3Igd2FzIGxvdmVseS4gSSBoYXZlIHRvIHNheSBzaGUgd2FzIHZlcnkgZW1wYXRoZXRpYyBhbmQgc2hlIGtuZXcgSSByZWFsbHkgd2FudGVkIGEgbmF0dXJhbCBiaXJ0aC4gU2hlIHdhcyBhcyBsb3ZlbHkgYW5kIGVtcGF0aGV0aWMgYXMgeW91IGNhbiBiZS4gU2hlIGxldCBtZSBwbGF5IG11c2ljIGFuZCBzZXQgdXAgdGhlIHJvb20gaW4gYSB3YXkgdGhhdCBmZWx0IHZlcnkgbG92aW5nLiBTaGUgbGV0IHRoZSBudXJzZSBhbmQgZXZlcnlvbmUgdGFrZSBwaWN0dXJlcyBhbmQgdmlkZW9zIHdoaWNoIHRoZXkgYXJlIG5vdCBhbHdheXMgc3VwcG9zZWQgdG8gZG8uwqBTbyBpdCB3YXMgYXMgZ29vZCBhcyBpdCBjb3VsZCBiZS4gSSBnb3QgdG8gaG9sZCBoaW0gcmlnaHQgYXdheS4gV2UgaGFkIHRoZSBmaXJzdCAxMiBob3VycyB0b2dldGhlci4gQnV0IHRoZW4gYmVjYXVzZSBoZSB3YXMgc28gYmln4oCTIDEwIHBvdW5kcywgMTUgb3VuY2VzLCBoaXMgYmxvb2Qgc3VnYXIgc3RhcnRlZCBkcm9wcGluZywgYW5kIGhpcyBsdW5ncywgYmVjYXVzZSBvZiB0aGUgQy1zZWN0aW9uLCB3ZXJlbuKAmXQgZnVsbHkgZGV2ZWxvcGVkLiBZb3Uga25vdyBob3cgdGhleSBnZXQgdGhlIHByYWN0aWNlLsKgTWVhZ2FuOiBZZWFoLiBZZWFoLiBTb21ldGltZXMgdGhlcmUgaXMgZmx1aWQgbGVmdCBpbiB0aGUgYmFieeKAmXMgbHVuZ3MgdG9vIHNvIHRoZXkgY2FuIGhhdmUgYSBoYXJkZXIgdGltZS7CoFNlbGFoOiBFeGFjdGx5LiBUaGVyZSB3YXMgZmx1aWQgbGVmdCBpbiB0aGUgbHVuZ3MuIEl04oCZcyBsaWtlIHRoYXQgc3BvbmdlIHdoZXJlIG5vdCBhbGwgb2YgdGhlIHNwb25nZSBpcyB0aGVyZS7CoE1lYWdhbjogVGhhdOKAmXMgYSByZWFsbHkgZ29vZCBhbmFsb2d5LiBZZXMuwqBTZWxhaDogVGhhdOKAmXMgd2hhdCB0aGV5IHRvbGQgbWUgd2hpY2ggaXMgd2hhdCBoYXBwZW5lZC4gV2hlbiB0aGV5IGdvIHRocm91Z2ggdGhlIGNhbmFsLCB0aGVpciBsdW5ncyBnZXQgdGhhdCBwcmFjdGljZSBnb2luZyBiYWNrIGFuZCBmb3J0aC7CoDA5OjM2IE5JQ1XCoFNlbGFoOiBTbyBoZSB3ZW50IHRvIHRoZSBOSUNVIGFmdGVyIGFib3V0IDEyIGhvdXJzIHdpdGggbWUgYW5kIHRoYXQgd2FzIGEgdGVycmlibGUgZXhwZXJpZW5jZSBmb3IgbGFjayBvZiBhIGJldHRlciB3b3JkLiBNeSBoZWFydCBqdXN0IGdvZXMgb3V0IHRvIGV2ZXJ5IE5JQ1UgbWFtYSB3aG8gaGFzIGhhZCB0aGF0IGV4cGVyaWVuY2UuIEl04oCZcyByZWFsbHksIHJlYWxseSBoYXJkLiBJIHdhcyBvbmx5IHRoZXJlIGZvciBmaXZlIGRheXMuIEkgY2Fu4oCZdCBpbWFnaW5lIHdoZXJlIHlvdSBoYXZlIGJlZW4gdGhlcmUgZm9yIG1vbnRocy4gVGhlcmUgYXJlIHNvIG1hbnkgcmVhc29ucyB3aHkgaXQgaXMgaGFyZCBidXQgZm9yIG1lLCBpdCB3YXMgaGFyZCBiZWNhdXNlIEkgd2FzIHJlY292ZXJpbmcgZnJvbSBhIEMtc2VjdGlvbi4gV2Ugd2VyZSBicmVhc3RmZWVkaW5nIGJ1dCBub3cgaGXigJlzIGhvb2tlZCB1cCBvbiB3aXJlcyBzbyB0aGF0IHdhcyBzdXBlciBoYXJkLiBJIGFsbCBvZiBhIHN1ZGRlbiBmb3VuZCBteXNlbGYgaGF2aW5nIHRvIGJvdHRsZSBmZWVkIGFuZCBwdW1wIGFuZCBub3cgSeKAmW0gZW5nb3JnZWQgYmVjYXVzZSBJ4oCZbSBwdW1waW5nIHNvIG11Y2guIEl0IGp1c3Qgd2FzIHRoaXMgY3JhenkgY3ljbGUuwqBFdmVudHVhbGx5LCBsaWtlIEkgc2FpZCwgaGUgZ290IG91dCBhZnRlciBmaXZlIGRheXMgYW5kIHRoYXQgd2FzIGZpbmUuIEkgZmVsdCBsaWtlIG15IGhlYWxpbmcgZnJvbSB0aGF0IEMtc2VjdGlvbiB3YXMgZ29vZCBiZWNhdXNlIEkgZGlkbuKAmXQgaGF2ZSBhbnkgb3RoZXIgY2hpbGRyZW4gdG8gd2F0Y2guwqBNZWFnYW46IFllcC4gSXQgbWFrZXMgYSBkaWZmZXJlbmNlLsKgU2VsYWg6IEl0IG1ha2VzIGEgaHVnZSBkaWZmZXJlbmNlIGFuZCBJIGhhZCBwZWFjZSBhYm91dCB0aGUgQy1zZWN0aW9uLiBJIHJlYWxseSBkaWQuIFdoZW4gaGUgd2FzIHB1bGxlZCBvdXQgb2YgbWUsIG15IGZpcnN0IHRob3VnaHQgd2FzLCDigJxPaCBteSBnb3NoLiBIZSBpcyBodW1vbmdvdXMuIEhlIGlzIGEgZ2lhbnQuIEhlIGlzIHNvIGNodW5reS4gTWF5YmUgdGhpcyB3YXMgdGhlIHJpZ2h0IHRoaW5nLiBNYXliZSBJIGNvdWxkbuKAmXQgaGF2ZS7igJ0gSGlzIGhlYWQgd2FzIGh1Z2UuIEV2ZXJ5dGhpbmcgd2FzIGh1Z2UuwqBZb3Uga25vdywgeW91IGRvIHdvcnJ5IGFib3V0IHBlbHZpYyBmbG9vciBkYW1hZ2UgYW5kIHNob3VsZGVyIGR5c3RvY2lhLCBhbGwgb2YgdGhhdCBzdHVmZi4gU28gSSBkaWQgaGF2ZSBwZWFjZS4gSSB0aG91Z2h0IG1heWJlIHRoaXMgd2FzIHRoZSByaWdodCBkZWNpc2lvbiBhbmQgaXQgd2FzIGdvb2QgdG8gaGF2ZSB0aGF0IGNsb3N1cmUgYW5kIHRoYXQgcGVhY2UuwqAxMToxMCBTZWNvbmQgcHJlZ25hbmN5U2VsYWg6IEJ1dCB0aGVuIGZsYXNoIGZvcndhcmQgdG8gbXkgc2Vjb25kIHByZWduYW5jeSB3aGljaCwgYnkgdGhlIHdheSwgd2FzIG5hdHVyYWwuIEl0IHdhcyBub3QgdGhyb3VnaCBJVkYuIEkgc2hvdWxkIGhhdmUga25vd24gSSBjb3VsZCBnZXQgcHJlZ25hbnQgbmF0dXJhbGx5IGJ1dCBJIHRob3VnaHQgaXQgd2FzIGEgZmx1a2UgYWZ0ZXIgdHJ5aW5nIHNvIGhhcmQuwqBNeSBzZWNvbmQgcHJlZ25hbmN5IHdhcyBpbiB0aGUgdGhpY2sgb2YgdGhlIHBhbmRlbWljLiBJbiBmYWN0LCBhdCBvdXIgZmlyc3QgcHJlbmF0YWwgYXBwb2ludG1lbnQsIHNoZSB3YXMgbGlrZSwg4oCcRG9u4oCZdCB3b3JyeS4gQnkgdGhlIHRpbWUgeW91IGdpdmUgYmlydGggaW4gQXVndXN0IDIwMjAsIHRoaXMgd2lsbCBhbGwgYmUgb3Zlci7igJ0gTGl0dGxlIGRpZCB3ZSBrbm93LsKgTWVhZ2FuOiBOb3BlLiBUaGF0IHdhcyByZWFsbHkgdGhpY2sgcmlnaHQgdGhlcmUuIEl04oCZcyBub3Qgb3Zlci4gSXTigJlzIHRydWRnaW5nLsKgU2VsYWg6IFllcy4gRXhhY3RseS4gR29pbmcgdG8gYWxsIG9mIHRoZSBhcHBvaW50bWVudHMgYWxvbmUsIEkgd2FzIGx1Y2t5IHRvIGhhdmUgbXkgcGFydG5lciBpbiB0aGUgYmlydGhpbmcgcm9vbSBhbmQgaW4gdGhlIE9SLiBTYW1lIE9CLCBieSB0aGUgd2F5LiBTYW1lIE9CLiBJIGRpZG7igJl0IGtub3cgd2hhdCBJIGRpZG7igJl0IGtub3cuIEkganVzdCBhc3N1bWVkIEkgd291bGQgaGF2ZSBhIFZCQUMuIEkgdG9sZCBoZXIgdGhhdCBhdCB0aGUgZmlyc3QgYXBwb2ludG1lbnQuIOKAnFRoaXMgdGltZSwgSeKAmW0gaGF2aW5nIGEgVkJBQyBqdXN0IHNvIHlvdSBrbm93LuKAncKgSSBkaWRu4oCZdCBwcmVwYXJlIGFueXRoaW5nIHRob3VnaC4gSSBkaWRu4oCZdOKAkyBhZ2FpbiwgSSBkaWRu4oCZdCBrbm93IHdoYXQgSSBkaWRu4oCZdCBrbm93LiBJIGRpZG7igJl0IGtub3cgYWJvdXQgdGhpcyBwb2RjYXN0IG9yIHRoZSBjb21tdW5pdHkuIEkgZGlkbuKAmXQgZ28gdG8gYSBwcmVuYXRhbCBjaGlyb3ByYWN0b3IuIEkgZGlkbuKAmXQgZXZlbiBoYXZlIGEgZG91bGEgdGhpcyB0aW1lIGJlY2F1c2UgSSB0aG91Z2h0LCDigJxXZWxsLCBzaGUgZGlkbuKAmXQgaGVscCBtZS7igJ3CoE1lYWdhbjogSG9uZXN0bHksIEkgYmV0IHlvdXIgb3BpbmlvbiBvZiB0aGF0IHdhcyBsaWtlLCDigJxNZWgu4oCdwqBTZWxhaDogWWVhaC5NZWFnYW46IEFuZCByaWdodGZ1bGx5IHNvLiBZb3UgZGlkbuKAmXQgaGF2ZSB0aGUgYmVzdCBzdXBwb3J0IHRoZXJlLsKgU2VsYWg6IEV4YWN0bHkuIEkgZGlkIG5vdC4gSSBqdXN0IGZlbHQgbGlrZSwg4oCcV2VsbCwgdGhpcyB0aW1lLCBJ4oCZbSBqdXN0IGRvaW5nIGl0LiBJIGtub3cgd2hhdCB0byBkby7igJ0gSSBkaWQgdGhlIEh5cG5vQmFiaWVzIGNvdXJzZSBmb3IgdGhlIGZpcnN0IHRpbWUuIEkgZGlkbuKAmXQgZXZlbiBkbyBpdCBhZ2Fpbi4gSSB0aG91Z2h0IEkgd2FzIGdvaW5nIHRvIGRvIGl0LiBBbHNvLCBpdCB3YXMgdGhlIHRoaWNrIG9mIHRoZSBwYW5kZW1pYy4gSSBoYWQgYSB0d28teWVhci1vbGQgYXQgaG9tZS4gSXQgd2FzIGp1c3QgY2hhb3RpYy7CoE1lYWdhbjogSXQgd2FzIGEgbG90LsKgU2VsYWg6IEl0IHdhcyBhIGxvdC4gU28gSSBkbyBnaXZlIG15c2VsZiBhIGxpdHRsZSBzbGFjayBpbiB0aGF0LsKgTWVhZ2FuOiAxMDAlLiBQbGVhc2UgZG8uwqBTZWxhaDogUmlnaHQ/wqAxMzowMiBMb3cgZmx1aWRzU2VsYWg6IEkgZ28gYWxvbmcgb24gdGhpcyBwcmVnbmFuY3kgYW5kIGhl4oCZcyBub3QgbWVhc3VyaW5nIGV4dHJhIGJpZyB0aGlzIHRpbWUgYXJvdW5kIGJ1dCBhcm91bmQgd2VlayAzOCwgSSBnbyB0byBteSBhcHBvaW50bWVudCBpbiB0aGUgbW9ybmluZyBhbmQgaXTigJlzIEF1Z3VzdCwgdmVyeSBob3QgaW4gQ2FsaWZvcm5pYS4gSeKAmW0gcHJvYmFibHkgZGVoeWRyYXRlZCBhbmQgYSBsb3Qgb2YgdGhpbmdzLiBJIHJlbWVtYmVyIGdvaW5nIG9uIGEgYmlnIHdhbGsgdGhlIG5pZ2h0IGJlZm9yZS7CoFNvbWV0aGluZyBteSBkb3VsYSBub3cgaGFzIHRvbGQgbWUgaXMgdGhhdCBpbiB0aGUgbW9ybmluZywgeW914oCZcmUgb2J2aW91c2x5IHZlcnkgZGVoeWRyYXRlZCBzbyBpZiB5b3UgZ28gdG8geW91ciBhcHBvaW50bWVudCwgdGhleSBtYXkgc2F5IHlvdXIgZmx1aWRzIGFyZSBsb3cuwqBJIHdlbnQgdG8gdGhlIDM4LXdlZWsgYXBwb2ludG1lbnQgYW5kIHNoZSBzYWlkLCDigJxZb3VyIGZsdWlkcyBhcmUgdmVyeSBsb3cuIFlvdSBuZWVkIHRvIGdvIHNlZSBhIHNwZWNpYWxpc3QgYXQgTUZNLCBtYXRlcm5hbC1mZXRhbCBtZWRpY2luZS7igJ0gTWVkaWNpbmUsIHRoYW5rIHlvdS7CoE1lYWdhbjogTWhtbS4gTWF0ZXJuYWwtZmV0YWwgbWVkaWNpbmUuwqBTZWxhaDogTWF0ZXJuYWwtZmV0YWwgbWVkaWNpbmUgdG8gZ28gYW5kIGNoZWNrIHlvdXIgZmx1aWQgbGV2ZWxzLiBTaWRlIG5vdGUsIEkgd2VudCB0byB0aGUgc2FtZSBNRk0gb24gbXkgZmlyc3QgcHJlZ25hbmN5IHRvIGRvdWJsZS1jaGVjayBoaXMgd2VpZ2h0IHdoZW4gdGhleSBzYWlkIGl0IHdhcyBhIGJpZyBiYWJ5LiBTbyBJIHdpbGwgc2F5IHRoYXQgd2FzIHNtYXJ0IG9mIG1lIHRvIGdldCBhIHNlY29uZCBvcGluaW9uIGFuZCB0aGUgTUZNIG9uIG15IGZpcnN0IHByZWduYW5jeSBnb3QgdGhlIHdlaWdodCByaWdodCB3aXRoaW4gYW4gb3VuY2Ugc28gSSByZXNwZWN0ZWQgaGltIGFuZCB0aG91Z2h0LCDigJxZZWFoLiBJ4oCZbGwgZ28gYmFjay7igJ3CoFN1cmUgZW5vdWdoLCBteSBmbHVpZHMgd2VyZSBsb3cuIEhlIGFncmVlZCB3aXRoIGhlciB0aGF0IEkgc2hvdWxkIGdldCB0aGUgYmFieSBvdXQgdGhhdCBuaWdodCBhbmQgc2FpZCwg4oCcWW91IGtub3csIHlvdSBoYXZlIGEgaGlzdG9yeSBvZiBiaWcgYmFiaWVzLiBUaGlzIGJhYnkgaXMgbWVhc3VyaW5nIGJpZyBhbHJlYWR5LuKAnSBIZSB3YXMgbm90IGFzIHNwb3Qgb24gd2l0aCB0aGlzIGJhYnksIGJ1dCBoZSBzYWlkIGFyb3VuZCA5IHBvdW5kcyBhbmQgbXkgc2Vjb25kIHR1cm5lZCBvdXQgdG8gYmUgOGxiIDExIG96LiBCdXQgaXTigJlzIG5vdCBhYm5vcm1hbGx5IGJpZywgZXNwZWNpYWxseSA4bGIgMTEgb3ogaXMgbm90IHRoYXQgYmlnLsKgTWVhZ2FuOiBObywgYW5kIG5vIHRhbGsgb2YgaW5kdWN0aW9uIGxpa2UsIOKAnE9oLCB5b3VyIGZsdWlkcyBhcmUgbG93LiBMZXTigJlzIGluZHVjZS7igJ3CoFNlbGFoOiBObywgYW5kIHRoYXTigJlzIHdoYXQgSSBkb27igJl0IHVuZGVyc3RhbmQgZWl0aGVyLiBCdXQgc2hlIGRpZCBzYXksIEkgZ3Vlc3MgSSBkbyB1bmRlcnN0YW5kIGJlY2F1c2Ugc2hlIGRpZCBzYXksIOKAnE5vLCBJIHdpbGwgbm90IGluZHVjZSBiZWNhdXNlIG9mIHlvdXIgQy1zZWN0aW9uIGJlZm9yZS4gSSBkb27igJl0IGJlbGlldmUgaW4gaW5kdWN0aW9uLuKAncKgTWVhZ2FuOiBNbW0uIFNvIG5vdCBldmlkZW5jZS1iYXNlZC7CoFNlbGFoOiBFeGFjdGx5IHdoaWNoIGFnYWluLCBJIGhhdmUgbGVhcm5lZCBzaW5jZSB0aGVuLsKgTWVhZ2FuOiBZb3UgZGlkbuKAmXQga25vdy7CoFNlbGFoOiBZZWFoLiBJIGRpZG7igJl0IGtub3cuIEkganVzdCBzYWlkLCDigJxPa2F5LuKAnSBTaGUganVzdCBzYWlkLCDigJxUaGVyZSBpcyB3YXkgdG9vIG11Y2ggcmlzayBvZiB1dGVyaW5lIHJ1cHR1cmUu4oCdIE5vIG51bWJlcnMsIGp1c3Qgd2F5IHRvbyBtdWNoLiDigJxUaGlzIGlzbuKAmXQgYSBnb29kIGlkZWEu4oCdwqBNZWFnYW46IFllYWguwqBTZWxhaDogQW5kIGFsc28gc2hlIHNhaWQgd2l0aCB0aGUgZmx1aWRzIGJlaW5nIGxvdywgaXQgd2FzIHRvbyBlbWVyZ2VudCBvZiBhIHNpdHVhdGlvbi4gV2UgbmVlZCB0byBnZXQgYmFieSBvdXQuwqBNZWFnYW46IFllYWguIEl0IGNhbiBjYXVzZSBiYWJ5IHN0cmVzcy4gSXQgY2FuLsKgU2VsYWg6IEl0IGNhbiwgYnV0IHRoZXJlIHdhcyBubyBzdHJlc3MuIFdlIGRpZCB0aGUgc3RyZXNzIG1vbml0b3IgYW5kIHRoZXJlIHdhcyBub3RoaW5nLsKgTWVhZ2FuOiBOU1Q/wqBTZWxhaDogWWVzLiBUaGVyZSB3YXMgbm90aGluZyB0byBiZSBhZnJhaWQgb2YgZXhjZXB0IGZvciB0aGUgZmx1aWRzIGJlaW5nIGxvdy7CoFNoZSBkaWQgZ2l2ZSBtZSBhbiBvcHRpb24gdG8gZ28gZ2V0IElWIGZsdWlkcyBpbiB0aGUgaG9zcGl0YWwsIGJ1dCBzaGUgZGlkIGl0IHdpdGggYSBjYXZlYXQgb2YsIOKAnEl04oCZcyBwcm9iYWJseSBub3QgZ29pbmcgdG8gd29yay7igJ0gQWdhaW4sIEkgZmVsdCBoZWxwbGVzcyBhbmQgc3R1Y2suIEkgdGhvdWdodCwg4oCcV2VsbCwgSSBndWVzcyB0aGlzIGlzIGp1c3QgbXkgbG90LiBJ4oCZbSBzdXBwb3NlZCB0byBqdXN0IGhhdmUgQy1zZWN0aW9ucy4gSSBkb27igJl0IGdldCB0byB0cnkgYWdhaW4u4oCdIEJlY2F1c2UgSSBkaWRu4oCZdCBrbm93IHdoYXQgSSBkaWRu4oCZdCBrbm93LiBJIGRpZG7igJl0IGtub3cgdG8gYXNrIGZvciBhIGxvdyBkb3NlIG9mIFBpdG9jaW4uIEkgZGlkbuKAmXQga25vdyB0byBhc2sgZm9yIGFueXRoaW5nIG9yIGp1c3QgdG8gZ2l2ZSBpdCBhbm90aGVyIHRyeSBvciBldmVuIHRvIHRyeSB0aGUgSVYgb3IgZHJpbmsgYSBidW5jaCBvZiB3YXRlciBhbmQgY29tZSBiYWNrLiBJIGRpZG7igJl0IGtub3cgYW55dGhpbmcuwqBNZWFnYW46IFJpZ2h0LsKgU2VsYWg6IEFuZCBJIGRpZCBub3QgaGF2ZSBhIGRvdWxhIHRvIGhlbHAgbWUgb3IgYW55dGhpbmcgbGlrZSB0aGF0LiBJIGp1c3Qgd2VudCBhbG9uZyB3aXRoIGl0LsKgMTY6MjkgU2NoZWR1bGVkIENlc2FyZWFuIHR1cm5lZCBlbWVyZ2VudFNlbGFoOiBBbmQgaW4gdGhlIEMtc2VjdGlvbiwgdGhpcyBpcyB3aGVyZSBldmVyeXRoaW5nIHN0YXJ0ZWQgdG8gZmFsbOKAkyBvaCwgYW5kIEkgYWxzbyB0aG91Z2h0LCDigJxXZWxsLCBteSBwcmV2aW91cyBDLXNlY3Rpb24gd2FzbuKAmXQgc28gYmFkLuKAnSBJIGhhZCBwZWFjZSBhYm91dCBpdC4gSSBoZWFsZWQgdmVyeSBxdWlja2x5LiBJIHdhcyBva2F5LiBJdOKAmXMgZ29pbmcgdG8gYmUgZmluZS4gTWF5YmUgdGhpcyBpcyBqdXN0IHRoZSB3YXkgaXTigJlzIHN1cHBvc2VkIHRvIGJlLsKgU2FkbHksIEkgaGFkIHNvIG1hbnkgZnJpZW5kcyB3aG8gaGFkIHR3byBDLXNlY3Rpb25zIGFuZCBwZW9wbGUgaW4gbXkgbGlmZS4gU28gSSB0aG91Z2h0LCDigJxJdOKAmXMgbm90IHNvIGJhZC4gVGhlc2UgcGVvcGxlIGRpZCBpdC7igJ3CoE1lYWdhbjogUmlnaHQuwqBTZWxhaDogUmlnaHQuIEkgZ28gaW50byBpdC4gSeKAmW0gbHlpbmcgdGhlcmUuIEFsbCBvZiBhIHN1ZGRlbiwgaXQgdHVybnMgaW50byBhbiBlbWVyZ2VudCBzaXR1YXRpb24uIFRoZSBkb2N0b3Igc3RhcnRzIHllbGxpbmcvc2NyZWFtaW5nIGZvciBleHRyYSB0b29scy4g4oCcSSBuZWVkIGEga25pZmUuIEkgbmVlZCB0aGlzLuKAnSBFdmVyeWJvZHkgaXMgZnJhbnRpYy4gU2hlIHN0YXJ0cyB5ZWxsaW5nIGZvciBtb3JlIHRlYW0gbWVtYmVycy4g4oCcSSBuZWVkIHRoZSBOSUNVLiBJIG5lZWQgdGhpcyBzdGFmZiBhbmQgdGhpcyBwZXJzb24u4oCdIEV2ZXJ5Ym9keSBzdGFydHMgcnVubmluZyBpbi4gVGhlcmUgYXJlIG1vcmUgcGVvcGxlIGluIHRoZSByb29tLiBJIGhlYXIgbXkgaHVzYmFuZOKAmXMgdm9pY2Ugc2hha2luZyBsaWtlIGhl4oCZcyBnb2luZyB0byBjcnkgc2F5aW5nLCDigJxJcyBldmVyeXRoaW5nIG9rYXk/4oCdIE5vYm9keSBhbnN3ZXJlZCBmb3Igd2hhdCBmZWx0IGxpa2UgYW4gZXRlcm5pdHkuwqBNZWFnYW46IEkgaGF2ZSBjaGlsbHMgYWxsIHVwIGFuZCBkb3duIG15IGJvZHkgZm9yIHlvdSByaWdodCBub3cuIFNvIHNjYXJ5LlNlbGFoOiBTbyBjcmF6eS4gU28gc2NhcnkuIFdoZW4gSSBoZWFyZCBoaXMgdm9pY2UsIEkgdGhvdWdodCwg4oCcT25lIG9mIHVzIGlzIG5vdCBtYWtpbmcgaXQgb3V0IGFsaXZlLiBJIGRvbuKAmXQga25vdyB3aGF04oCZcyBoYXBwZW5pbmcu4oCdIEl0IHdhcyBzbyBzY2FyeS4gT2J2aW91c2x5LCBJIHN0aWxsIGdldCBlbW90aW9uYWwgdGhpbmtpbmcgYWJvdXQgaXQgYmVjYXVzZSBJIGRpZG7igJl0IGtub3cgd2hhdCB3YXMgaGFwcGVuaW5nLsKgRmluYWxseSwgSSBoZWFyZCBoaW0gY3J5IGFuZCBldmVyeXRoaW5nIHdhcyBva2F5LCBidXQgdGhleSB3aGlza2VkIGhpbSBhd2F5IGltbWVkaWF0ZWx5LiBNeSBodXNiYW5kIHNhaWQgSSBkaWQgcHV0IGhpbSBvbiBteSBjaGVzdCBmb3IgSSB0aGluayBpdCB3YXMgYSBtaW51dGUsIGJ1dCBJIGJhcmVseSByZW1lbWJlciB0aGF0LiBUaGF04oCZcyBob3cgdHJhdW1hdGljIGl0IHdhcy4gWWVzLiBJIGRvIGhhdmUgYSBwaWN0dXJlIG9mIG1lIHJlYWNoaW5nIG15IGFybXMgb3V0IHRvIGhpbSBzbyBJIGtub3cgaGUgZGlkIGxhbmQgb24gbXkgY2hlc3QsIGJ1dCBteSBleWVzIGFyZSBmaWxsZWQgd2l0aCB0ZWFycyByZWFjaGluZyBteSBhcm1zIHRvIGhpbS7CoFRoZXkgd2hpc2sgaGltIGF3YXkgdG8gdGhlIE5JQ1UgaW1tZWRpYXRlbHkuIFNhbWUgcHJvYmxlbSB3aXRoIGhpcyBsdW5ncy4gSGUgd2FzbuKAmXQgYnJlYXRoaW5nLiBUaGV5IHdlcmUgd29yc2UgdGhhbiBteSBmaXJzdCBhY3R1YWxseS7CoExhdGVyLCBJIGZvdW5kIG91dOKAkyBteSBkb2N0b3IgY2FtZSB0byB2aXNpdCBtZSBhbmQgc2hlIHNhaWQsIOKAnFdoYXQgaGFwcGVuZWQgd2FzIHdoZW4gc2hlIG1hZGUgdGhlIGluY2lzaW9uLCBoaXMgaGVhZCBoYWQgbW92ZWQs4oCdIHNvIHNoZSBkaWRu4oCZdCB3YW50IHRvIGN1dCB0aHJvdWdoIHRoZSBwbGFjZW50YSBmcm9tIHdoYXQgSSB1bmRlcnN0YW5kIG9idmlvdXNseS4gU28gc2hlIGhhZCB0byBtYWtlIGEgYmlnZ2VyIGluY2lzaW9uLiBTaGUgbmVlZGVkIHNwZWNpYWwgdG9vbHMuwqBNZWFnYW46IFNwZWNpYWwgc2Nhci4gSXMgaXQgYSBzcGVjaWFsIHNjYXIgb3IganVzdCBsb25nZXI/wqBTZWxhaDogSXTigJlzIGp1c3QgbG9uZ2VyLCB5ZWFoLsKgTWVhZ2FuOiBPa2F5LCBzbyBpdOKAmXMgbm90IHVwLsKgU2VsYWg6IEV4YWN0bHkuIFRoYW5rIEdvZCBiZWNhdXNlIEkgdGhpbmsgdGhhdCB3b3VsZCBoYXZlIG1hZGUgaXQgc2Nhcmllci7CoE1lYWdhbjogQSBsaXR0bGUgYml0IG1vcmUgZGlmZmljdWx0IHNvbWV0aW1lcyB0byBWQkFDIHRoZSBuZXh0IHRpbWUgdG9vIHRvIGdldCBzdXBwb3J0LsKgU2VsYWg6IEV4YWN0bHkuIFRvIGdldCBzdXBwb3J0LCBleGFjdGx5LiBZZWFoLiBUaGF0IHdhcyBnb29kIGF0IGxlYXN0IHRoYXQgc2hlIGp1c3QgbWFkZSBpdCBhIGxpdHRsZSBsb25nZXIuIEJ1dCB0aGF0IHdhcyB3aHkgaXQgYmVjYW1lIHNvIGVtZXJnZW50LiBTYW1lIHRoaW5nLiBIZSB3YXMgaW4gdGhlIE5JQ1UgdGhlIHdob2xlIGZpdmUgZGF5cy4gSSByZW1lbWJlciBzYXlpbmcgdG8gbXkgaHVzYmFuZCBpbiB0aGUgTklDVS4gSSBsb29rZWQgYXQgaGltIGFuZCBJIHNhaWQsIOKAnFdlIGFyZSBkb25lLiBXZSBhcmUgbm90IGdldHRpbmcgcHJlZ25hbnQgYWdhaW4uIEkgY2Fubm90IGdvIHRocm91Z2ggdGhpcyBhZ2Fpbi7igJ0gSSBkaWRu4oCZdCB0aGluayBJ4oCZZCBldmVyIGJlIGFibGUgdG8gYmlydGggbmF0dXJhbGx5IGZpcnN0IG9mIGFsbCwgc28gSSBjYW5ub3QgaGF2ZSBhbm90aGVyIEMtc2VjdGlvbi4gVGhpcyB3YXMgd2F5IHRvbyBtdWNoLsKgTWVhZ2FuOiBZZWFoLsKgU2VsYWg6IEFuZCB0aGVuIHRoZSBoZWFsaW5nIHdhcyBhd2Z1bCBiZWNhdXNlIEkgaGFkIGEgdHdvLXllYXItb2xkIGF0IGhvbWUuIEV2ZXJ5dGhpbmcgYWJvdXQgdGhpcyB3YXMganVzdCBub3QgZ29vZC4gSSBkaWQgbm90IHdhbnQgdG8gZXZlciBkbyB0aGlzIGFnYWluLsKgMjE6MzkgU3VycHJpc2UgdGhpcmQgcHJlZ25hbmN5U2VsYWg6IFNvIGZsYXNoIGZvcndhcmQgdG8gMjAyMiwgdHdvIHllYXJzIGxhdGVyLCBJ4oCZbSBzdGlsbCBicmVhc3RmZWVkaW5nIG15IHR3by15ZWFyLW9sZCBqdXN0IGF0IG5pZ2h0LiBJIGhhZCBteSBwZXJpb2QgYmFjay4gSSBzaG91bGQgaGF2ZSBrbm93biwgYnV0IEkgd2FzIHRyYWNraW5nIG15IG92dWxhdGlvbiBjeWNsZS4gSSB3YXMgbm90IG92dWxhdGluZy4gSeKAmW0gNDEgeWVhcnMgb2xkIGFuZCBJIHRoaW5rLCDigJxUaGVyZeKAmXMgbm8gd2F5LiBJ4oCZbSBub3Qgb3Z1bGF0aW5nLiBJ4oCZbSA0MS4gSeKAmW0gYnJlYXN0ZmVlZGluZyzigJ0gYnV0IGJhbS4gSSBnb3QgcHJlZ25hbnQuIFN1cnByaXNlLCBzdXJwcmlzZSBhZnRlciAyMCB5ZWFycyBvZiBpbmZlcnRpbGl0eSwgSeKAmW0gbGlrZSwg4oCcV2h5IGFtIEkgZmVydGlsZSBNeXJ0bGUgbm93P+KAncKgTWVhZ2FuOiBPaCBteSBnb3NoLsKgU2VsYWg6IEkga25vdy4gSXQgd2FzIGNyYXp5LiBJIGhhdmUgYSB2aWRlbyBvbiBteSBJbnN0YWdyYW0gb2YgbXkgaHVzYmFuZOKAmXMgZXhwcmVzc2lvbiBmaW5kaW5nIG91dC4gSXQgd2FzIHV0dGVyIGRpc2JlbGllZi4gU28geWVzLiBXZSBmaW5kIG91cnNlbHZlcyBwcmVnbmFudCBhZ2FpbiBhbmQgSSB0aG91Z2h0LCDigJxPaCBuby4gV2hhdCBhbSBJIGdvaW5nIHRvIGRvPyBJIGNhbuKAmXQgaW4gdGhlIG9wZXJhdGluZyByb29tIGFnYWluLiBJIGNhbuKAmXQgZG8gaXQuIEkgd2lsbCBub3QgZG8gaXQuIFRoZXJlIGhhcyB0byBiZSBhbm90aGVyIHdheS7igJ3CoEJ1dCBJIGNyYXppbHkgY2FsbGVkIHRoZSBzYW1lIHByb3ZpZGVyIGJlY2F1c2UgSSBkaWRu4oCZdCBrbm93IHdobyBlbHNlIEkgd2FzIGdvaW5nIHRvIGdvIHRvLsKgTWVhZ2FuOiBSaWdodC4gVGhhdOKAmXMgd2hvIHlvdSBrbm93LsKgU2VsYWg6IEl04oCZcyB3aG8geW91IGtub3cuIFRoZSByZWNlcHRpb25pc3Qgc2FpZCwg4oCcT2gsIHNoZeKAmXMgbm90IGRlbGl2ZXJpbmcgYW55bW9yZS7igJ3CoE1lYWdhbjogT2guwqBTZWxhaDogSSBrbm93LiBJIGdvdCBjaGlsbHMgYWxsIG92ZXIgbXkgYm9keS4gSSBrbmV3IHRoaXMgd2FzIGEgc2lnbiBmcm9tIEdvZC4gSSBqdXN0IGtuZXcgaXQgdGhhdCB0aGVyZSBoYWQgdG8gYmUgYW5vdGhlciB3YXkgYW5kIHRoYXQgSSB3YXMgZ29pbmcgdG8gZG8gc29tZXRoaW5nIGRpZmZlcmVudCB0aGlzIHRpbWUuIEkgd2FzIG5vdCBnb2luZyB0byBiZSBkb3duIHRoYXQgc2FtZSByb2FkIG9mIGEgQy1zZWN0aW9uIGluIHRoZSBPUiBhbmQgSSBkaWRu4oCZdCBoYXZlIHRvIGdvIHRocm91Z2ggdGhhdCBhZ2Fpbi7CoEkgcmVhY2hlZCBvdXQgdG8gb25lIG9mIG15IGZyaWVuZHMgSSBrbmV3IHdobyBoYWQgYSBWQkFDLiBJdCB3YXMgYWN0dWFsbHkgYSBob21lIGJpcnRoIFZCQUMuIEl0IHdhcyBhIEhCQUMuIFNoZSBzYWlkLCDigJxZb3UgaGF2ZSB0byBzdGFydCBsaXN0ZW5pbmcgdG8gVGhlIFZCQUMgTGluayBpbW1lZGlhdGVseS7igJ3CoE1lYWdhbjogT2gsIHRlbGwgaGVyIHRoYW5rIHlvdS7CoFNlbGFoOiBZZXMuIFRoZXNlIGFyZSBhbGwgb2YgdGhlIHJlc291cmNlcy4gU2hlIGtuZXcgdGhpcyBNRk0gaW4gTG9uZyBCZWFjaC4gSeKAmW0gaW4gTG9zIEFuZ2VsZXMgc28gaXQgd2FzIGFib3V0IGFuIGhvdXIgYXdheSB3aG8gYWxzbyBkZWxpdmVycyBhbmQgaGUgaXMgdmVyeSBWQkFDIHN1cHBvcnRpdmUuIEluIGZhY3QsIGhlIGRvZXMgYWxsIHNvcnRzIG9mIGJpcnRocy4gSGlnaCByaXNrIGJpcnRocyBoZSBpcyBrbm93biBmb3IuIEhlIHdhcyBhbiBob3VyIGF3YXkgc28gdGhhdCB3YXNu4oCZdCBteSB0b3AgY2hvaWNlLCBidXQgc2hlIHNlbnQgbWUgYSBidW5jaCBvZiBkaWZmZXJlbnQgaWRlYXMgZm9yIGEgZG91bGEgYW5kIGRpZmZlcmVudCBkb2N0b3JzLsKgSSBzZXQgYWJvdXQgb24gbXkgam91cm5leS4gSSBpbnRlcnZpZXdlZCBmaXZlIGRpZmZlcmVudCBPQnMuIFRoZSBmaXJzdCB0d28gc2FpZCwg4oCcQWJzb2x1dGVseSBub3QuIFdlIHdpbGwgbm90IGRvIGEgVkJBQyBhZnRlciB0d28gQy1zZWN0aW9ucyBhbmQgYW55Ym9keSB3aG8gZG9lcyBpcyBiYXNpY2FsbHkgYSBiYWQgZG9jdG9yLiBJdOKAmXMgdG9vIHJpc2t5LuKAnSBNZWFnYW46IE9oIG15LiBUaGF0IGRvZXNu4oCZdCBtYWtlIHlvdSBmZWVsIGdvb2QuwqBTZWxhaDogSSBrbm93LiBCdXQgYnkgdGhlbiwgSSBoYWQgYmVlbiBsaXN0ZW5pbmcgdG8gdGhlIHBvZGNhc3Qgc28gSSBrbmV3LiBJ4oCZbSBsaWtlLCDigJxNbW0sIG5vLiBUaGVzZSBhcmUgdGhlIHJlYXNvbnMuIFRoaXMgaXMgdGhlIHJhdGUgb2YgcmlzayBmb3IgdXRlcmluZSBydXB0dXJlLiBUaGlzIGlzIHRoZSByYXRlIG9mIHJpc2sgZm9yIGEgdGhpcmQgQy1zZWN0aW9uLiBJIGFtIGRvaW5nIHRoaXMgYW5kIEnigJltIGp1c3QgZ29pbmcgdG8gZmluZCBzb21lb25lIHdobyBpcyBnb2luZyB0byBsZXQgbWUu4oCdwqBTbyBJIHRoZW4gaW50ZXJ2aWV3ZWQgdHdvIG1vcmUgSSBub3cga25vdyBhcyBWQkFDIHRvbGVyYW50LCBub3QgYXMgVkJBQyBzdXBwb3J0aXZlLiBUaGV5IGhhZCBhIGxpc3Qgb2Ygc3RpcHVsYXRpb25zIHRoYXQgSSBuZWVkZWQgdG8gbWVldCBpbiBvcmRlciB0byBkbyBpdC4gVGhlbiB0aGUgZmlmdGggb25lIHdhcyBhIGRvY3RvciB0aGF0IEkgaGFkIGtub3duIHByZXZpb3VzbHkuIEkgd2FzIG5vdCBjcmF6eSBhYm91dCBoaW0uIEhlIGp1c3QgaGFkIGEgd2VpcmQgYmVkc2lkZSBtYW5uZXIgZm9yIGxhY2sgb2YgYSBiZXR0ZXIgd29yZC4gSSBqdXN0IGZlbHQgbGlrZSBJIGRpZG7igJl0IG1lc2ggd2l0aCBoaW0uIEhlIHdhcyB2ZXJ5IFZCQUMgc3VwcG9ydGl2ZSwgYW5vdGhlciBoaWdoLXJpc2sgcHJlZ25hbmN5IGRvY3RvciBpbiBMb3MgQW5nZWxlcyB3aG8gaXMgVkVSWSB3ZWxsLWtub3duIGFzIHNvbWVvbmUgd2hvIGRlbGl2ZXJzIHRyaXBsZXRzIG5hdHVyYWxseSwgZGVsaXZlcnMgdHdpbnMgbmF0dXJhbGx5LiBIZSBkb2VzIGJyZWVjaCBiaXJ0aHMuIEkgaGFkIGJlZW4gaW4gbXkgZnJpZW5k4oCZcyBicmVlY2ggYmlydGjigJMgd2VsbCwgc2hlIHdhc27igJl0IGJyZWVjaCB3aGVuIHNoZSBkZWxpdmVyZWQuIEhlIGZsaXBwZWQgYmFieSBiZWZvcmUgc2hlIGRlbGl2ZXJlZCBhbmQgSSB3YXMgaW4gdGhlIHJvb20uIFRoaXMgd2FzIHByZS1DT1ZJRCB3aGVuIGhlIHdhcyBoZXIgZG9jdG9yIHNvIEkga25ldyBoaW0gcmVhbGx5IHdlbGwuwqBJIGp1c3QgZGlkIG5vdCBtZXNoIHdpdGggaGltIHBlcnNvbmFsaXR5LXdpc2UuIFNvIEkgY2hvc2UgdGhlIG90aGVyIGRvY3Rvciwgb25lIG9mIHRoZSBWQkFDIHRvbGVyYW50IGRvY3RvcnMuIEhlIHdhcyBzbyBraW5kIGFuZCBzbyBsb3ZlbHksIGJ1dCBoZSBkaWQgaGF2ZSBhIGxpc3Qgb2Ygd2hhdCBJIG5lZWRlZCB0byBtZWV0LiBJIHdhcyBzaG93aW5nIHRoaXMgbGlzdCB0byB0aGUgY29tbXVuaXR5IG1lbWJlcnMgb24gRmFjZWJvb2suIEV2ZXJ5Ym9keSB3YXMgbGlrZSwg4oCcTm8uIEhlIGlzIG5vdCBhIHN1cHBvcnRpdmUgZG9jdG9yLuKAncKgSGUgc2FpZCwg4oCcWW914oCZcmUgb2xkZXIuIFRoYXQgYWZmZWN0cyB0aGluZ3Ms4oCdIHdoaWNoIHRoZXJlIGlzIG5vIGV2aWRlbmNlIG9mIHRoYXQgYXQgYWxsLiBIZSBzYWlkLCDigJxZb3UgaGF2ZSB0byBnbyBpbnRvIGxhYm9yIGJ5IDQwIHdlZWtzLOKAnSB3aGljaCBhZ2FpbiwgdGhlcmUgaXMgbm8gZXZpZGVuY2Ugb2YgdGhhdC4gQWxsIG9mIHRoZXNlIHN0aXB1bGF0aW9ucy4gVGhlIHdvcnN0IHBhcnQgd2FzIHRoYXQgaGUgbWFkZSBtZSBnbyBzZWUgYW4gTUZNIHRoYXQgaGUgd29ya2VkIHdpdGggb2YgaGlzIGNob29zaW5nIGJ5IHRoZSB3YXkuIEkgY291ZGxu4oCZdCBnbyB0byB0aGF0IG90aGVyIG9uZSB0aGF0IEkgcmVhbGx5IHJlc3BlY3RlZC4gSSBoYWQgdG8gZ28gdG8gaGlzIE1GTSBhbmQgdGhhdCBNRk0gaGFkIHRvIG1vbml0b3IgbWUgYW5kIGxvb2sgYXQgdGhlIHV0ZXJpbmUgd2FsbCB0byBzZWUgaWYgdGhlIHdhbGwgd2FzIG9rYXkgdGhyb3VnaG91dCBwcmVnbmFuY3kuIEkga25vdy7CoE1lYWdhbjogTW1tLW1tbS7CoFNlbGFoOiBJIGhhZCB0byBnbyB0byBjb3VudGxlc3MgYXBwb2ludG1lbnRzLiBFdmVyeSB3ZWVrIEkgd2FzIGluIHRoZSBkb2N0b3IuIEkga25vdy4gVGhhdCBNRk0sIGFyb3VuZCAyMCB3ZWVrcyBzYWlkLCDigJxMaXN0ZW4uIFlvdXIgdXRlcmluZSB3YWxsIGhhcyBhIHdpbmRvdyBvZiBJIHRoaW5rIGl0IHdhcyAxIGNlbnRpbWV0ZXJzIGFuZCAzIG1pbGxpbWV0ZXJzIHRoaW4uIEkgZG8gbm90IHRoaW5rIHlvdSBhcmUgZ29pbmcgdG8gYmUgYWJsZSB0byBkbyB0aGlzIGJlY2F1c2UgdGhlcmUgaXMgYSB3aW5kb3cgaW4geW91ciB1dGVyaW5lIHdhbGwu4oCdwqBUaGlzIHdhcyBhdCAyMCB3ZWVrcywgc28gSSB0aG91Z2h0LCDigJxJdOKAmXMgb25seSBnb2luZyB0byBnZXQgd29yc2UgZm9yIG1lIGZyb20gaGVyZS7igJ3CoE1lYWdhbjogVGhhdCB3b3VsZCBtYWtlIHNlbnNlIGZvciB5b3UuIFRoYXQgd291bGQgbWFrZSBzZW5zZSB0byB0aGluayB0aGF0LsKgU2VsYWg6IEkgc3RhcnRlZCB0aGlua2luZyBvZiBvdGhlciBvcHRpb25zIGJlY2F1c2UgSSBoYWQgYSBzbmVha3kgc3VzcGljaW9uIHRoYXQgdGhpcyBNRk0gaXMgbm90IGdvaW5nIHRvIGNsZWFyIG1lIHdoaWNoIG15IE9CIHNhaWQsIOKAnElmIGhlIGRvZXNu4oCZdCBjbGVhciB5b3UsIEkgd2lsbCBub3QgZG8gaXQu4oCdwqBNZWFnYW46IOKAnEkgd29u4oCZdCBzdXBwb3J0IGl0LuKAncKgU2VsYWg6IOKAnEkgd29u4oCZdCBzdXBwb3J0IGl0LuKAnSBSaWdodC7CoDI3OjMzIENoYW5naW5nIHByb3ZpZGVyc1NlbGFoOiBJIHN0YXJ0ZWQgZ2V0dGluZyBhIGxpdHRsZSB3b3JyaWVkIG5vdy4gUGF1c2UgdG8gc2F5IHRoYXQgSSBoYWQgYmVlbiBnb2luZyB0byBwcmVuYXRhbCBjaGlyb3ByYWN0b3IgYXBwb2ludG1lbnRzIHdpdGggYW4gYW1hemluZyBEci4gQmVybGluIGluIExvcyBBbmdlbGVzLiBFdmVyeWJvZHkga25vd3MgaGltLsKgTWVhZ2FuOiBXZSBsb3ZlIGhpbSBzbyBtdWNoLiBZZXMuIFdl4oCZdmUgaGFkIGhpbSBvbiB0aGUgcG9kY2FzdCBhbmQgSSBhY3R1YWxseSBqdXN0IHdhcyBvbiBoaXMgcG9kY2FzdCB3aGljaCB3YXMgYW1hemluZy4gSXQgd2FzIGp1c3Qgc28gY3JhenkgdGhhdCBpdCB3YXMgaGFwcGVuaW5nLiBXZSBsb3ZlIERyLiBCZXJsaW4uwqBTZWxhaDogSGXigJlzIHRoZSBiZXN0LiBIZSBpcyBzbyBncmVhdC4gSSBtZWFuLCBoZSB3YXMgYSBkb3VsYSBoaW1zZWxmIGFuZCBoZSBvYnZpb3VzbHkgaXMgc3VjaCBhbiBhbWF6aW5nIGNoaXJvcHJhY3Rvci4gSGUgd2FzIG1ha2luZyBzdXJlIHRoZSBiYWJ5IHdhcyBpbiB0aGUgcmlnaHQgcG9zaXRpb24sIHRoYXQgbXkgYm9keSB3YXMgb3BlbiwgYW5kIGFsbCB0aGF0LiBJIHdhcyBnb2luZyBldmVyeSB3ZWVrLiBJIG1lYW4sIGhlIGp1c3Qgd2FzIHNvIGtub3dsZWRnZWFibGUuIEhlIHNhaWQsIOKAnExpc3Rlbi4gWW91IG1pZ2h0IHdhbnQgdG8gZ2l2ZSB0aGF0IGZpcnN0IGRvY3RvciB5b3UgZGlkbuKAmXQgbWVzaCB3aXRoIGFub3RoZXIgY29uc2lkZXJhdGlvbi4gSeKAmXZlIGJlZW4gaW4gc28gbWFueSBiaXJ0aHMgd2l0aCBoaW0uIEhlIGlzIHNvIGdvb2QgYXQgaGlnaC1yaXNrIGJpcnRoLiBJZiB5b3UgcmVhbGx5IHdhbnQgdGhpcyBWQkFDLCB5b3UgbWlnaHQgd2FudCB0byBnbyBiYWNrIHRvIGhpbS7igJ3CoEkgc3RhcnRlZCByZXRoaW5raW5nLiBIZSB3YXMgaW4gdGhlIGJhY2sgb2YgbXkgbWluZC4gTWVhbndoaWxlLCBJIGFsc28gaGFkIHRoaXMgaW5jcmVkaWJsZSBkb3VsYSB0aGlzIHRpbWUgYXJvdW5kIG5hbWVkIEpvaGFubmEsIEpvaGFubmEgU3RvcnkuIFNoZSBzYWlkIHRoZSBzYW1lIHRoaW5nLiBTaGUgc2FpZCwg4oCcTGlzdGVuLuKAnSBTaGUgaGFkIGJlZW4gaW4gMjUwMCBiaXJ0aHMgaW4gTG9zIEFuZ2VsZXMuwqBNZWFnYW46IFdob2EhwqBTZWxhaDogWWVzLiBTaGUgaXMgYWxzbyBhIGxpY2Vuc2VkIG1pZHdpZmUgc28gc2hlIGhhcyBkZWxpdmVyZWQgYmFiaWVzLiBCeSB0aGUgd2F5LCBJIGhhZCBjb25zaWRlcmVkIGEgaG9tZSBiaXJ0aCBmb3IgYSBob3Qgc2Vjb25kIHdpdGggSm9oYW5uYSwgYnV0IG15IGh1c2JhbmQgd2FzIG5vdC4gSGUgd2FzIHNvIHN1cHBvcnRpdmUgb2YgdGhlIFZCQUMgdGhhdCBJIGRpZG7igJl0IHdhbnQgdG8gcHVzaCBoaW0uIEhlIHdhcyB0aGUgYmVzdCB0ZWFtbWF0ZSBhbmQgbm90IGxldCBtZSwgYnV0IGhlIHdhcyBvbiBib2FyZCB3aXRoIGV2ZXJ5dGhpbmcgSSB3YW50ZWQgdG8gZG8uIFNvIEkganVzdCB0aG91Z2h0LCDigJxZb3Uga25vdywgaGXigJlzIG5vdCBjcmF6eSBhYm91dCB0aGUgaG9tZSBiaXJ0aCB3aXRoIG91ciB0d28gb3RoZXJzIHJ1bm5pbmcgYXJvdW5kLiBJIGdldCBpdC7igJ0gSSBzYWlkLCDigJxMZXTigJlzIGRvIHRoZSBob3NwaXRhbCBiaXJ0aCB3aXRoIEpvaGFubmEu4oCdwqBUaGUgcmVhc29uIEkgYWxzbyBsaWtlZCBKb2hhbm5hIGlzIHNoZSB3YXMgZ29pbmcgdG8gZG/igJMgb2ggbXkgZ29zaCwgSSBhbSBibGFua2luZyBvbiB0aGUgd29yZOKAkyB3aGVyZSB0aGV5IG1vbml0b3IgeW91IHVudGlsIHlvdSBhcmUgYWJvdXQgdG/igJPCoE1lYWdhbjogTGlrZSBNb25pdHJpY2U/wqBTZWxhaDogWWVzIE1vbml0cmljZS4gU28gSm9oYW5uYSwgYmVjYXVzZSBzaGUgaXMgYSBsaWNlbnNlZCBtaWR3aWZlLCBzaGUgY291bGQgZG8gbW9uaXRyaWNlLiBJIGZlbHQgbGlrZSB0aGF0IHdhcyB0aGUgYmVzdCBvZiBib3RoIHdvcmxkcy4gTGV04oCZcyBoYXZlIGhlciBtb25pdG9yIG1lIHVudGlsIHRoZSBsYXN0IG1pbnV0ZSB0aGVuIHdlIHdpbGwgZ28gaW4uIEFzIEkgbGVhcm5lZCBvbiB0aGUgcG9kY2FzdCwgdGhhdCBpcyB0aGUgcGxhbi4gV2FpdCB1bnRpbCB0aGUgbGFzdCBtaW51dGUgc28gdGhleSBjYW7igJl0IGRvIGFueXRoaW5nIHRvIHlvdS7CoE1lYWdhbjogTGFib3IgYXMgbG9uZyBhcyB5b3UgY2FuIGF0IGhvbWUuwqBTZWxhaDogWWVzLiBUaGF0IHdhcyB0aGUgcGxhbi4gVGhhdCB3YXMgd2h5IEkgaGFkIEpvaGFubmEuIFNoZSBhbHNvIGVuY291cmFnZWQgbWUgdG8gZ28gYmFjayB0byBEci4gQnJvY2suwqBNZWFnYW46IEkgd2FzIHdvbmRlcmluZyBpZiBpdCB3YXMgRHIuIEJyb2NrLsKgU2VsYWg6IEl0IHdhcyBEci4gQnJvY2suIEhlIGlzIHZlcnkgcXVpcmt5LCBoaXMgcGVyc29uYWxpdHkuwqBNZWFnYW46IFdlIGhhdmUgaGFkIGhpbSBvbiB0aGUgcG9kY2FzdCBhcyB3ZWxsLsKgU2VsYWg6IEhlIGlzIHdvbmRlcmZ1bCBhbmQgaGUganVzdCBoYXMgYSBxdWlya3kgc2Vuc2Ugb2YgaHVtb3Igc28gdGhhdCBpcyB3aGF0IGl0IGlzLiBJIGRpZG7igJl0IGtub3cgdGhhdCBhdCBmaXJzdC4gSSBraW5kIG9mIHRob3VnaHQsIOKAnFdobyBpcyB0aGlzIGd1eT8gV2hhdCBpcyBoZSBzYXlpbmc/4oCdIEJ1dCBib3RoIERyLiBCZXJsaW4gYW5kIEpvaGFubmEgZW5jb3VyYWdlZCBtZSB0byBnbyBiYWNrIHRvIGhpbSB3aXRoIHRoYXQgZnJhbWUgb2YgbWluZC4gSGXigJlzIGp1c3QgYSBsaXR0bGUgcXVpcmt5LiDigJxKdXN0IGdvIGJhY2sgYW5kIHRhbGsgdG8gaGltIGFnYWluLuKAncKgQnV0IEkgd2FudGVkIHRvIHdhaXQgdW50aWwgSSB3ZW50IHRvIG15IGxhc3QgTUZNIGFwcG9pbnRtZW50IHdpdGggdGhlIE1GTSB0aGF0IG15IGZpcnN0IE9CIGhhZC7CoE1lYWdhbjogVGhlIG9uZSB3aG8gc2FpZCB5b3UgaGFkIGEgd2luZG93LCB0aGF0IG9uZT/CoFNlbGFoOiBUaGUgb25lIEkgaGFkIGEgd2luZG93LCB5ZXMuIEhlIHNhaWQsIOKAnFRoaXMgd2luZG93IGhhcyBvbmx5IGdvdHRlbiBiaWdnZXIsIG9idmlvdXNseSBhdCAzMiB3ZWVrcy4gSSBkbyBub3QgcmVjb21tZW5kIGEgVkJBMkMuIEkgY2Fubm90IHJlY29tbWVuZCBpdCB0byB5b3VyIE9CLiBTb3JyeS7igJ0gSSBjcmllZCBpbiB0aGF0IG9mZmljZSB0aGlua2luZyBtYXliZSB0aGVyZSB3YXMgYSBtaXJhY2xlIGFuZCB0aGluZ3Mgd2VyZSBnb2luZyB0byBjaGFuZ2UuwqBJIGFjdHVhbGx5IGVuZGVkIHVwIGdvaW5nIHRvIHNlZSB0aGF0IGZpcnN0IE1GTSB3aG8gd2FzIGFuIGhvdXIgYXdheSBmb3IgYSBzZWNvbmQgb3Bpbmlvbi4gSGUgZXhwbGFpbmVkIHRvIG1lLCDigJxZZXMuIFRoZXJlIGlzIHdoYXQgeW91IGNhbiBzZWUgYSB3aW5kb3cgb24gYW4gdWx0cmFzb3VuZC7igJ0gSGUgc2FpZCwg4oCcRmlyc3Qgb2YgYWxsLCBJIGRvIG5vdCBmaW5kIHVsdHJhc291bmRzIHZlcnkgYWNjdXJhdGUuIEkgZG8gbm90IGtub3cgaG93IGJpZyBpdCBpcyBhbmQgaG93IHRoaWNrIGl0IGlzLiBTZWNvbmRseSwgZXZlbiBpZiB0aGVyZSBpcyBhIHdpbmRvdywgdGhlcmUgaXMgYWJzb2x1dGVseSBubyBldmlkZW5jZSBvZiBhIGNvcnJlbGF0aW9uIGJldHdlZW4gdGhhdCBhbmQgYSBydXB0dXJlLiBUaGVyZeKAmXMgbm8gZXZpZGVuY2Uu4oCdwqBNZWFnYW46IFllYWguIFRoZXkgY2Fu4oCZdCByZWFsbHkgZG8gdGhlIG1lYXN1cmluZyB0aGluZyBhbmQgdGVsbCB5b3UgdGhhdCB5b3UgYXJlIGdvaW5nIHRvIHJ1cHR1cmUgb3Igbm90LsKgU2VsYWg6IFRoYXTigJlzIHdoYXQgaGUgc2FpZC4gSGUgc2FpZCwg4oCcSSByZWFsbHkgdGhpbmsgeW914oCZcmUgb2theSB0byB0cnkuIFlvdSB3aWxsIGtub3cgaW4gdGhlIGJpcnRoIGFuZCB5b3VyIGRvY3RvciBzaG91bGQga25vdyBpZiBzb21ldGhpbmcgaXMgZ29pbmcgd3JvbmcgYW5kIHlvdXIgZG91bGEgdG9vLuKAnSBIZSBzYWlkLCDigJxJIHJlYWxseSB0aGluayB5b3Ugc2hvdWxkIHRyeSBhbmQgeW91IG5lZWQgdG8gdHJ5LuKAnSBPaCwgdGhlIG90aGVyIGNvb2wgdGhpbmcgaGUgZGlk4oCTIEkgcmVhbGx5IGxvdmUgaGltLiBEci4gU2hpdmVyYSBpbiBMb25nIEJlYWNoIGlmIGFueW9uZSBpcyBsb2NhbC4gSGUgaXMgcmVhbGx5IHdvbmRlcmZ1bCBhbmQgZG9lcyBhIHRvbiBvZiBoaWdoLXJpc2sgYmlydGguIEkganVzdCBkaWRu4oCZdCB3YW50IHRvIGdvIHRoYXQgZmFyIHNvIHRoYXQgd2FzIG15IHRoaW5nIHdpdGggdGhhdC7CoEJ1dCBoZSBzYWlkLCDigJxJIGxvb2tlZCBhdCB3aGF0IGhhcHBlbmVkIGluIHRoZSBvcGVyYXRpbmcgcm9vbSB3aXRoIHlvdXIgc2Vjb25kIEMtc2VjdGlvbiwgYW5kIGV4YWN0bHkgd2hhdCB5b3Ugc2FpZCBiZWZvcmUsIGl0IGlzIG5vdCBhIHNwZWNpYWwgc2Nhci7igJ0gSGUgbG9va2VkIGF0IGFsbCBvZiB0aGUgZGV0YWlscy4gSXQgcmVhbGx5IG1hZGUgbWUgZmVlbCB0aGF0IHRoZXJlIHdhcyBub3RoaW5nIHdyb25nIHdpdGggdGhhdCBiaXJ0aC7CoE1lYWdhbjogT3IgYWJub3JtYWxpdHksIHllYWguwqBTZWxhaDogTm8gYWJub3JtYWxpdHksIHllYWguIEhlIHdhcyBsaWtlLCDigJxJIHJlYWxseSB0aGluayB5b3UgYXJlIG9rYXkgdG8gdHJ5LuKAnSBUaGF0IHdhcyByZWFsbHkgcmVhc3N1cmluZyB0b28uIEkgY3JpZWQgd2l0aCBoYXBwaW5lc3MuIEkgY3JpZWQgZXZlcnl3aGVyZS7CoE1lYWdhbjogWWVhaC4gTG90cyBvZiBlbW90aW9ucy7CoFNlbGFoOiBMb3RzIG9mIGVtb3Rpb24uIFRoZW4gYXQgMzIgd2Vla3MsIEkgd2VudCBiYWNrIHRvIG15IGZpcnN0IE9CIGFuZCBoZSBoYWQgZ290dGVuIHRoZSByZXN1bHRzIGZyb20gdGhhdCBNRk0gYW5kIHN1cmUgZW5vdWdoIHNhaWQsIOKAnEkgY2Fubm90IHN1cHBvcnQgYSBWQkEyQy7igJ0gVGhlcmUsIGl0IHdhcyB2ZXJ5IGludGVyZXN0aW5nLiBJIGRpZCBjcnkgdGhlcmUgdG9vIGJ1dCBJIGZlbHQgdGhpcyB3ZWlyZCBzZW5zZSBvZiBzaGFtZSBsaWtlIEkgc2hvdWxkIG5vdCBoYXZlIGdvdHRlbiBwcmVnbmFudC4gSSBzaG91bGQgbm90IGJlIGluIHRoaXMgcG9zaXRpb24gYmVjYXVzZSB0aGV5IG1hZGUgbWUgZmVlbCBsaWtlIHlvdSBhcmUgcmlza2luZyB0b28gbXVjaC4gWW91IGFyZSByaXNraW5nIHlvdXIgYmFieeKAmXMgbGlmZS4gWW91IGFyZSByaXNraW5nIHlvdXIgbGlmZS4gV2h5IGRvIHlvdSB3YW50IHRoaXMgc28gbXVjaD8gT24gdGhlIG90aGVyIHNpZGUsIEkgdGhvdWdodCwg4oCcSSBjYW7igJl0IGdvIGludG8gdGhlIG9wZXJhdGluZyByb29tLiBJIGNhbuKAmXQgZG8gaXQgZW1vdGlvbmFsbHkgb3IgcHN5Y2hvbG9naWNhbGx5LiBJIGp1c3QgY2Fu4oCZdC4gUHV0IG1lIG91dCB0aGVuIGJlY2F1c2UgSSB3b27igJl0IGJlIGFibGUgdG8gYmUgdGhlcmUu4oCdwqBUaGF0IHdhcyB3aGVyZSB0aGlzIHdlaXJkIHNoYW1lIGNhbWUgaW4gbGlrZSwg4oCcV2h5IGRpZCBJIGV2ZW4gZ2V0IHByZWduYW50P+KAnSBJIGV2ZW4gc2FpZCBpdCBvdXQgbG91ZCB0byBteSBodXNiYW5kIHRoZW4gSSBldmVuIGZlbHQgc2hhbWUgYWJvdXQgdGhhdC4gV2UgaGFkIHRoaXMgbWlyYWNsZSBiYWJ5LiBJIGNvdWxkbuKAmXQgYmVsaWV2ZSBpdC7CoEJ1dCB0aGVyZSB3ZXJlIGFsbCBvZiB0aGVzZSB3ZWlyZCBlbW90aW9ucyBhbmQgdGhpbmdzIHRoYXQgd2VyZSBhc3NvY2lhdGVkIHdpdGggdGhhdCBzZWNvbmQgQy1zZWN0aW9uIGluIHBhcnRpY3VsYXIuwqBJIHdlbnQgYmFjayB0byBEci4gQmVybGluLiBJIHJlbWVtYmVyIGNyeWluZyBpbiBoaXMgb2ZmaWNlIHRvbyBhbmQgaGUgd2FzIGp1c3Qgc2F5aW5nLCDigJxHbyB0byBEci4gQnJvY2suIEdvIHRvIERyLiBCcm9jayzigJ0gYW5kIEpvaGFubmEgdG9vLiBGaW5hbGx5LCBJIG1hZGUgYW4gYXBwb2ludG1lbnQuIEkgdGhpbmsgaXQgd2FzIGF0IDM0IHdlZWtzIHdoZW4gSSBzYXcgRHIuIEJyb2NrLiBIZSBzYWlkLCDigJxZb3XigJl2ZSBuZXZlciB0cmllZCB0byBsYWJvci4gWW914oCZdmUgbmV2ZXIgZmVsdCBhIGNvbnRyYWN0aW9uLiBZb3UgY2FuIGRvIHRoaXMuIEkgdGhpbmsgeW91IGNhbiBkbyB0aGlzIGFuZCB0aGUgYmFieSBpcyBpbiB0aGUgcGVyZmVjdCBwb3NpdGlvbi4gSGUgaXMgbm90IG1lYXN1cmluZyBiaWcu4oCdIEkgYWxzbyBsb3ZlZCB0aGlzLiBIZSBkaWQgdGhlIGZ1bmRhbCBtZWFzdXJlbWVudC7CoE1lYWdhbjogRnVuZGFsIG1lYXN1cmVtZW50IGlzIHRoZSB3aG9sZSBmcm9tIHRoZSBwdWJpYyBib25lLXVwIHRoaW5nLsKgU2VsYWg6IEl0IGFsbW9zdCBmZWx0IGxpa2UgYSBtaWR3aWZlIHRlY2huaXF1ZSB0byBtZWFzdXJlIHRoZSB3ZWlnaHQgYW5kIGV2ZXJ5dGhpbmcsIG5vdCB0aGUgdWx0cmFzb3VuZC4gSSByZW1lbWJlciBiZWluZyBzbyBzY2FyZWQgZXZlcnkgdGltZSBJIHdlbnQgaW50byB0aGUgdWx0cmFzb3VuZCwgaG93IGJpZyBpcyBoZSBnb2luZyB0byBiZT8gWWVhaCwgYnV0IGhlIGRpZG7igJl0IGV2ZW4gd2FudCB0byB0YWxrIGFib3V0IHdlaWdodC4gSGUgc2FpZCB0byBtZSwg4oCcV2VsbCwgaG93IGJpZyBkbyB5b3UgdGhpbmsgdGhpcyBiYWJ5IGlzP+KAnSBJIHNhaWQsIOKAnFVoLCA4IHBvdW5kcy4gSGUgZmVlbHMgbm9ybWFsIHRvIG1lLiBJIGRvbuKAmXQga25vdy7igJ0gSGUgc2FpZCwg4oCcU28gdGhlbiBoZSB3aWxsIGJlLuKAncKgSGUganVzdCB3YXMgdmVyeSBjYWxtIGFuZCB0aGUgb3RoZXIgaHVnZSB0aGluZyBoZSBkaWQgd2hpY2ggSSBmb3Jnb3QgdG8gbWVudGlvbi4gVGhlIGZpcnN0IE9CIHdpdGggdGhpcyBNRk0gY2hhbmdlZCBteSBkdWUgZGF0ZSBiZWNhdXNlIHRoZXkgc2FpZCB0aGUgYmFieSB3YXMgbWVhc3VyaW5nIGVhcmx5IHNvIHRoZXkgY2hhbmdlZCBpdCB0byBNYXJjaCAxN3RoIGJ1dCBhY2NvcmRpbmcgdG8gbXkgY3ljbGUsIGhlIHdhcyBkdWUgTWFyY2ggMzFzdC7CoE1lYWdhbjogVGhhdOKAmXMgYSBkaWZmZXJlbmNlLsKgU2VsYWg6IEl04oCZcyBhIGh1Z2UgZGlmZmVyZW5jZS4gMzFzdC4gVGhlIGxhc3QgZGF5IG9mIHRoZSBtb250aC7CoE1lYWdhbjogVGhlIGxhc3QgZGF5LCB1aC1odWguwqBTZWxhaDogVGhlIGxhc3QgZGF5LiBUaGF0IGlzIGEgaHVnZSBkaWZmZXJlbmNlLiBTbyB3aGVuIEkgd2VudCB0byBEci4gQnJvY2ssIGhlIHNhaWQsIOKAnE5vLiBUaGlzIGJhYnkgaXMgZHVlIGFjY29yZGluZyB0byB5b3VyIGN5Y2xlLCBNYXJjaCAzMHRoIG9yIE1hcmNoIDMxc3QuIFlvdSBkb27igJl0IGhhdmUgYW55dGhpbmcgdG8gd29ycnkgYWJvdXQuIFlvdSBhcmUgbWVhc3VyaW5nIGNvbXBsZXRlbHkgb24gdGltZS4gR28gb24u4oCdwqBOb3csIGluIGhpbmRzaWdodCwgaGUgd2FzIGJvcm4gYXQgNDAgd2Vla3MgYW5kIDMgZGF5cy4gU28geWVhaCwgSSBndWVzcyBpdCB3YXMgTWFyY2ggMzB0aC4gSGUgd2FzIGJvcm4gYXQgNDAgd2Vla3MgYW5kIDMgZGF5cy4gSWYgaXQgaGFkIGJlZW4gYWNjb3JkaW5nIHRvIHRoZSBmaXJzdCBkdWUgZGF0ZSwgdGhlcmUgaXMgbm8gd2F5IHRoZSBPQiB3b3VsZCBoYXZlIGxldCBtZSBrZWVwIGdvaW5nLiBJIG1lYW4sIHRoYXQgd2FzIDEwIGRheXMgYWZ0ZXIuIFRoYW5rIEdvZCBEci4gQnJvY2sgY2hhbmdlZCBteSBkdWUgZGF0ZSBhbmQgd2FzIGNvbXBsZXRlbHkgcmVsYXhlZCBhYm91dCBldmVyeXRoaW5nLiBJIG5ldmVyIGZlbHQgc3RyZXNzZWQuIEkgbmV2ZXIgZmVsdCBhbnkgYW54aWV0eSB0aGF0IEkgZmVsdCBnb2luZyB0byB0aGUgYXBwb2ludG1lbnRzIGZyb20gdGhlIGZpcnN0IE9CLsKgTWVhZ2FuOiBUaGF04oCZcyBnb29kLsKgU2VsYWg6IEhlIHdhcyBxdWlya3ksIGJ1dCBub3cgSSBzYXcgaGltIGluIGEgY29tcGxldGVseSBkaWZmZXJlbnQgbGlnaHQuIEkgc2F3IGhpbSBhcyBzb21lYm9keSB3aG8gd291bGQgc3VwcG9ydCBtZSBhbmQgbGV0IG1lIGRvIG15IHRoaW5nLsKgMzY6MzMgR29pbmcgaW50byBsYWJvclNlbGFoOiBTdXJlIGVub3VnaCwgZ29pbmcgaW50byB0aGUgbGFib3IsIEkgZmVsdCBsaWtlIHRoZSBuaWdodCBvZiBNYXJjaCAyNnRoLCB0aGVyZSB3YXMgYmxvb2R5IHNob3cgYXQgYXJvdW5kIDEwOjAwIFBNLiBJIHRleHRlZCBteSBkb3VsYSBhbmQgc2hlIHNhaWQsIOKAnEl0IGNvdWxkIGJlIGFueSBtaW51dGUgb3IgaXQgY291bGQgYmUgZGF5cyBzdGlsbCBzbyBqdXN0IGhhbmcgdGlnaHQuIFJlbGF4LiBHbyB0byBiZWQuIEdldCBzb21lIHNsZWVwLuKAncKgSSB3ZW50IHRvIGJlZCBhbmQgSSB3b2tlIHVwIHdpdGggdGhlIHdldG5lc3MuIEl0IHdhc27igJl0IGEgaHVnZSBndXNoIGxpa2UgdGhlIGZpcnN0IG9uZS4gSXQgd2FzIGp1c3QgYSBsaXR0bGUgYml0IG9mIHdldC7CoE1lYWdhbjogVHJpY2tsZT/CoFNlbGFoOiBUcmlja2xlLCB5ZXMuIEkgd2FzbuKAmXQgc3VyZS4gTXkgZG91bGEgc2FpZCBpdCBjb3VsZCBiZSBqdXN0IGEgbGl0dGxlIGJpdCBvZiBsZWFrYWdlIG9yIGl0IGNvdWxkIGhhdmUgYmVlbiBteSB3YXRlciBicmVha2luZy4gTGV04oCZcyBqdXN0IHdhaXQgYW5kIHNlZS7CoFN1cmUgZW5vdWdoLCBhIGNvdXBsZSBvZiBob3VycyBsYXRlciwgSSBzdGFydGVkIGZlZWxpbmcgY29udHJhY3Rpb25zIGFuZCBJIHdhcyBzbyBleGNpdGVkLiBJIHdhcyBqdXN0IGhhcHB5LiBJdCB3YXMgc28gY3JhenkgYmVjYXVzZSBvYnZpb3VzbHksIG1vc3QgcGVvcGxlIHdvdWxkIGJlIGxpa2UsIOKAnE93LCB0aGlzIGh1cnRzLOKAnSBhbmQgSSB3YXMganVzdCBsaWtlLCDigJxZZXMu4oCdwqBNZWFnYW46IENoZWVyaW5nIHRoZW0gb24sIHllcy4gV2VsbCwgeW91IGhhZCBuZXZlciBleHBlcmllbmNlZCB0aGVtIGJlZm9yZS7CoFNlbGFoOiBFeGFjdGx5LiBFeGFjdGx5LiBJIHRleHRlZCBteSBtb20uIFNoZSB3YXMgc28gZXhjaXRlZC4gSSBqdXN0IHdhcyB0aGlua2luZyB0aGUgd2hvbGUgdGltZSwg4oCcSSBjYW7igJl0IGJlbGlldmUgdGhpcyBpcyBmaW5hbGx5IGhhcHBlbmluZy7igJ0gQWdhaW4sIHdlIGRpZG7igJl0IGtub3cgdGhhdCBteSB3YXRlciBoYWQgYnJva2VuIGZvciBzdXJlIHNvIHdlIGp1c3Qgd2FudGVkIHRvIHNvcnQgb2Ygd2FpdCBiZWZvcmUgd2UgdG9sZCB0aGUgZG9jdG9yIGJlY2F1c2UgaGUgZGlkbuKAmXQgc2F5LCDigJxPaCwgdGhlcmUgaXMgYSAyNC1ob3VyIGNsb2NrIG9uY2UgeW91ciB3YXRlciBicmVha3Mu4oCdIEhlIGRpZG7igJl0IHNheSB0aGF0IGF0IGFsbCwgYnV0IHdlIHdlcmUgY29uY2VybmVkIGlmIHdlIHRvbGQgdGhlIGhvc3BpdGFs4oCTIHdoYXRldmVyLiBXZSBqdXN0IHdhbnRlZCB0byB3YWl0IGFuZCBzZWUgaG93IGxhYm9yIHByb2dyZXNzZWQuwqBUaGUgY29udHJhY3Rpb25zIGRpZCBzdGFydCBwcm9ncmVzc2luZy4gSXQgd2FzIGFib3V04oCTIEkgZG9u4oCZdCBrbm934oCTIGZpdmUgb3Igc2l4IGhvdXJzIGF0IGhvbWUgYW5kIHRoZXkgc3RhcnRlZCBnZXR0aW5nIHJlYWxseSBmYXN0IGFuZCBzdHJvbmcgZXZlcnkgZm91ciB0byBmaXZlIG1pbnV0ZXMuIFllYWguIEkgd2FzIGxpa2UsIOKAnE9oLCB0aGlzIGlzIGhhcHBlbmluZy4gVGhpcyBpcyBoYXBwZW5pbmcgZmFzdC4gSSBtYXkgZXZlbiBoYXZlIHRoaXMgYmFieSBhdCBob21lLOKAnSB3aGljaCBpcyBsYXVnaGFibGUgbm93IGxvb2tpbmcgYmFjay5JIHdlbnQgaW4gdGhlIHNob3dlci4gU2hlIGVuY291cmFnZWQgbWUgdG8gZ28gaW50byB0aGUgc2hvd2VyIGFuZCB0cnkgdG8gcmVzdC4gSSBjb3VsZG7igJl0IGJlY2F1c2UgSSB3YXMgc28gZXhjaXRlZCB0aGVuIG15IGtpZHMgd29rZSB1cCBhcm91bmQgNjowMCBBTS4gTXkgZG91bGEgZ290IHRoZXJlIGFyb3VuZCA1OjAwIEFNIGFuZCB0aGUgY29udHJhY3Rpb25zIGFnYWluIHdlcmUgY29taW5nIHN1cGVyIHN0cm9uZyBhbmQgaGFyZC4gU2hlIHdhcyBoZWxwaW5nIG1lLiBTaGUgd2FzIG1hc3NhZ2luZyBtZSwgYnV0IGJlY2F1c2UgdGhleSB3ZXJlIGNvbWluZyBzbyBmcmVxdWVudGx5LCB0aGV5IHN0YXJ0ZWQgc3BlZWRpbmcgdXAgdG8gZXZlcnkgMi0zIG1pbnV0ZXMsIEkgdGhvdWdodCwg4oCcV2XigJl2ZSBnb3QgdG8gZ2V0IHRvIHRoZSBob3NwaXRhbC7igJ0gSSByZWFsbHkgYWN0dWFsbHkgZGlkIHRoaW5rLCDigJxNYXliZSB0aGlzIGJhYnkgaXMgYWN0dWFsbHkgZ29pbmcgdG8gZmx5IG91dC7igJ0gVGhpcyBpcyBjcmF6eS4gSSBtaWdodCBoYXZlIGFuIGFjY2lkZW50YWwgaG9tZSBiaXJ0aCB3aGljaCBpcyB0aGUgZ29hbCwgcmlnaHQ/IFRoYXTigJlzIHdoYXQgZXZlcnlib2R5IHdhbnRzLsKgTWVhZ2FuOiBUbyBhIGxvdCBvZiBwZW9wbGUsIGl04oCZcyBhIGRyZWFtLCB5ZXMuwqBTZWxhaDogSXQgd2FzLiBJdCB3YXMgYWN0dWFsbHkgbXkgZHJlYW0uIOKAnE1heWJlIGl0IHdpbGwganVzdCBmbHkgb3V0LiBJdCB3aWxsIGJlIGZpbmUu4oCdIFdlIGdvLiBNeSBkb3VsYSwgdG8gZ2l2ZSBoZXIgY3JlZGl0LCB3YXMgbGlrZSwg4oCcSSBzdGlsbCB0aGluayB5b3Ugc2hvdWxkIHN0YXkgaG9tZS4gWW914oCZcmUganVzdCBwcm9iYWJseSByZWFsbHkgZXhjaXRlZC7igJ3CoEkgd2FzIHNjYXJlZCB0b28sIEkgdGhpbmssIGRlZXAgZG93bi4gSSBzYWlkLCDigJxPaCBuby4gSSBkb27igJl0IGtub3cuIFdlIHNob3VsZCBnbyB0byB0aGUgZG9jdG9yLuKAncKgMzk6MjAgR29pbmcgdG8gdGhlIGhvc3BpdGFsU2VsYWg6IFdlIHdlbnQgdG8gdGhlIGhvc3BpdGFsLiBXZSBoYWQgY2FsbGVkIHRoZSBkb2N0b3IuIEhlIHNhaWQsIOKAnFdoZW4gZGlkIHlvdXIgd2F0ZXIgYnJlYWs/4oCdIEkgc2FpZCwg4oCcSSBkb27igJl0IGtub3cuIEl0IG1pZ2h0IGhhdmUgYmVlbiB0aGlzIG1vcm5pbmcu4oCdIEkga2luZCBvZiBwdXNoZWQgaXQgYSBsaXR0bGUgYmVjYXVzZSBJIHJlYWxseSB3YXNu4oCZdCBzdXJlLiBXZSBnb3QgdG8gdGhlIGhvc3BpdGFsIGFuZCBhdCB0aGF0IHBvaW50LCBJIGhhZCBsYWJvcmVkIGFib3V0IDEwIGhvdXJzLCBidXQgaW4gdGhlIHRyaWFnZSwgYSByZXNpZGVudCBjaGVja2VkIG1lIGFuZCBzYWlkIEkgd2FzIG9ubHkgYXQgYSAxIGFuZCBpdCBoYWQgYmVlbiAxMCBob3Vycy7CoFRoaXMgaXMgdGhlIGxlc3NvbiB0byBldmVyeWJvZHkuIFBsZWFzZSB0cnkgdG8gbGFib3IgYXQgaG9tZSBsb25nZXIuIEkgc2hvdWxkIGhhdmUgc3RheWVkIGF0IGhvbWUgbG9uZ2VyLsKgTWVhZ2FuOiBXZWxsIGFuZCBhbHNvIG51bWJlcnMuIFdlIGxvb2sgYXQgMi0zIG1pbnV0ZXMgYXBhcnQgYW5kIHdl4oCZcmUgbGlrZSwg4oCcVGhleeKAmXJlIDItMyBtaW51dGVzIGFwYXJ0LiBUaGV54oCZcmUgMi0zIG51bWJlcnMgYXBhcnQu4oCdIEJ1dCBsZXTigJlzIGxvb2sgYXQgdGhlIGxlbmd0aCBhbmQgbGV04oCZcyBsb29rIGF0IHRoYXQgc3RyZW5ndGguIEhvdyBpcyBjb3Bpbmc/IEFyZSB0aGV5IHNvIGludGVuc2UgdGhhdCB5b3UgY2Fu4oCZdCBldmVuIGZvY3VzIG9uIHdoYXQgaXMgZ29pbmcgb24gaW4gdGhlIHNwYWNlIGFuZCBpdCB0YWtlcyB5b3UgYSBtaW51dGUgdG8gZ2V0IGJhY2sgaW50byB0aGF0IG1vbWVudCBvciBpcyBpdCBsaWtlLCDigJxXaG9hLCB0aGlzIGlzIHJlYWxseSwgcmVhbGx5IGhhcmQs4oCdIGFuZCB5b3XigJlyZSB0YWxraW5nIHRocm91Z2ggaXQsIGJ1dCB0aGVuIHRoZXnigJlyZSBnb25lLlNlbGFoOiBUaGF04oCZcyByaWdodC4gWWVzLiBJIHNob3VsZCBoYXZlIGxpc3RlbmVkIHRvIG15IGRvdWxhIGJlY2F1c2UgSSBmZWVsIGxpa2UgaXTigJlzIGV4YWN0bHkgd2hhdCB5b3UganVzdCBkZXNjcmliZWQuIEkgY291bGQgaGF2ZSBsYWJvcmVkIGF0IGhvbWUgbG9uZ2VyIGFzIHdlIHdpbGwgc2VlIGJlY2F1c2UgSSBlbmRlZCB1cCBsYWJvcmluZy7CoFNlbGFoOiBJ4oCZbGwgdGVsbCB5b3UgdGhlIG1pZGRsZSBvZiB3aGF0IGhhcHBlbmVkIGluIGJldHdlZW4gYnV0IGl0IGVuZGVkIHVwIGJlaW5nIDQ4IGhvdXJzIHRvdGFsIG9mIGJlaW5nIGluIGxhYm9yLiBJdCB3YXMgd2F5IHRvbyBlYXJseSB0byBnbyB0byB0aGUgaG9zcGl0YWwuIFRoZSByZWFzb24gd2h5IHRoYXQgd2FzIGEgcHJvYmxlbSB0b28gaXMgYmVjYXVzZSB0aGV5IGhvb2tlZCBtZSB1cCB0byB0aGUgbW9uaXRvciBiZWNhdXNlIGl0IHdhcyBhIFZCQUMgYW5kIGJlY2F1c2Ugb2YgYWxsIG9mIHRoZSByZWFzb25zIHRoZXkgZG8uIFdlIGluc2lzdGVkIG9uIGEgd2lyZWxlc3MgbW9uaXRvciBidXQgdGhleSBjb3VsZG7igJl0IGdldCBhIGdvb2QgY29ubmVjdGlvbiBzbyBJIGVuZGVkIHVwIGhhdmluZyB0byB3YWxrIGFyb3VuZCB3aXRoIHRoaXMgd2lyZSB3aGljaCB3YXMgbm90IGVhc3kgYW5kIEkgY291bGQgb25seSBnbyBzbyBmYXIuIEkgZmVlbCBsaWtlIGlmIEkgaGFkIGxhYm9yZWQgYXQgaG9tZSBhbmQgYmVlbiBhYmxlIHRvIG1vdmUgYW5kIGRvIHN0cmV0Y2hlcyBvciB3aGF0ZXZlciBtb3JlIGZyZWVseSwgaXQgd291bGQgaGF2ZSBiZWVuIHdheSBiZXR0ZXIgdG8gZG8gdGhhdC7CoFRoYXQgd2FzIGtpbmQgb2YgYSBidW1tZXIuwqBNZWFnYW46IFllYWguwqBTZWxhaDogQnV0IHRoYXQgc3RpbGwgd2FzbuKAmXQgZW5vdWdoIHRvIGRldGVyIG1lLiBJIHN0YXllZCB2ZXJ5IGNhbG0uIEkgbGlzdGVuZWQgdG8gd29yc2hpcCBtdXNpYyBmb3IgdGhlIGVudGlyZSA0OCBob3VycyBhbmQgYWxzbyBIeXBub0JhYmllcy4gSSB3b3VsZCBzYXkgbXkgbWFudHJhcyBvdmVyIGFuZCBvdmVyLiBJIHdhcyBsaXRlcmFsbHkgc2luZ2luZyBhbmQgcHJhaXNpbmcgR29kIGZvciBlYWNoIGNvbnRyYWN0aW9uLiBJdCB3YXMgY3JhenkuIEkgd291bGQgZmVlbCBhIGNvbnRyYWN0aW9uIGNvbWUgb24gYW5kIEkgd291bGQgdGhhbmsgR29kIGZvciBpdCBiZWNhdXNlIEkga25ldyB0aGlzIHdhcyBqdXN0IGdldHRpbmcgbWUgY2xvc2VyLiBUbyBiZSBpbiB0aGF0IHN0YXRlIG9mIGdyYXRpdHVkZSBhbmQgaGF2ZSB0aGF0IG9wZW5uZXNzIGFuZCBvcGVuIGhlYXJ0IGFuZCBiZSBqdXN0IHRoYW5rZnVsIGZvciBpdCBhZnRlciBhbGwgb2YgdGhpcyB0aW1lIGFuZCBhbGwgb2YgdGhlc2UgeWVhcnMgYW5kIHdpc2hlcyBhbmQgZHJlYW1zIGFuZCBkZXNpcmVzIG9mIG15IGhlYXJ0IHRvIGV4cGVyaWVuY2UgdGhpc+KAkyBpdCB3YXMgaW5jcmVkaWJsZeKAkyBJIG1lYW4sIGluY3JlZGlibGUgdG8gaGF2ZSB0aGF0IGZlZWxpbmcuwqBJIGhvbmVzdGx5IGZlbHQgbm8gcGFpbi4gSSBrbm93IHRoYXQgc291bmRzIGNyYXp5IGJlY2F1c2UgaXQgd2FzIHNvIGxvbmcuwqBNZWFnYW46IEl0IGRvZXNu4oCZdC7CoFNlbGFoOiBJdCB3YXMgdGhlIG1vc3QgaW50ZW5zZSBzcGlyaXR1YWwsIGluY3JlZGlibGUgY29ubmVjdGlvbiB0byBHb2QgSeKAmXZlIGV2ZXIgZmVsdC4gSSBkb27igJl0IGtub3cuIEl0IHdhcyBhbWF6aW5nLsKgTWVhZ2FuOiBBbWF6aW5nLCB5ZWFoLsKgU2VsYWg6IFRoZSBkb2N0b3IgYW5kIHRoZSBudXJzZXMgd2VyZSBhbGwgZW5jb3VyYWdpbmcgbWUgdG8gZ2V0IGEgY2F0aGV0ZXIgZm9yIGFuIGVwaWR1cmFsIHRvIHB1dCBpbiBhbmQgSSBrZXB0IHB1c2hpbmcgaXQgb2ZmLiBJIGRpZG7igJl0IHdhbnQgaXQuIEkgc2FpZCwg4oCcSeKAmW0gbm90IGdvaW5nIHRvIG5lZWQgaXQuIEkgZG9u4oCZdCB3YW50IGl0LuKAnSBUaGlzIGlzbuKAmXQgdG8gc2F5IHRoZXJlIGlzIGFueSBzaGFtZSBhdCBhbGwgaW4gaGF2aW5nIGFuIGVwaWR1cmFsLk1lYWdhbjogWW91IGp1c3QgZGlkbuKAmXQgd2FudCBpdC7CoFNlbGFoOiBJIGRpZG7igJl0IHdhbnQgaXQuIEkgcmVzZWFyY2hlZCB3aXRoIHlvdSBhbmQga25vd2luZyB0aGF0IGl0IGNvdWxkIGNhdXNlIG1vcmUgb2YgYSBjaGFuY2UgZm9yIGEgQy1zZWN0aW9uLCBJIGp1c3QgZGlkbuKAmXQgd2FudCBpdC4gSSBzYWlkLCDigJxJ4oCZbSBub3QgZ29pbmcgdG8gZG8gaXQu4oCdIEkgcHV0IGl0IG9mZiwgcHV0IGl0IG9mZiwgcHV0IGl0IG9mZi5JIHNob3VsZCBzYXkgdGhpcyB3YXMgdmVyeSBpbnRlcmVzdGluZy4gVGhlIGNvbnRyYWN0aW9ucyB3ZXJlIGhhcHBlbmluZyBhbGwgZGF5IHRoYXQgU3VuZGF5IDItNCBtaW51dGVzIGFwYXJ0LiBUaGV5IGZlbHQgdmVyeSBpbnRlbnNlIGxpa2UgdGhleSB3ZXJlIGJ1aWxkaW5nIHVwLCBidXQgYWdhaW4sIGl0IHdhc27igJl0IHN1cGVyIHBhaW5mdWwgYW5kIG15IGRvdWxhIGtlcHQgaGF2aW5nIG1lIHN3aXRjaCBwb3NpdGlvbnMuIFNoZSBhbmQgbXkgaHVzYmFuZCB3ZXJlIGluY3JlZGlibGUgd2l0aCBub24tc3RvcCBtYXNzYWdlcyBhbmQgZW5jb3VyYWdpbmcgd29yZHMgYW5kIHB1dHRpbmcgbWUgaW4gcG9zaXRpb25zIHRvIHJlYWxseSBoZWxwIG1lLiBUaGF0IGlzIGFub3RoZXIgcmVhc29uIEkgZGlkbuKAmXQgZmVlbCB0aGUgcGFpbiB0aGF0IG1heWJlIGFub3RoZXIgcGVyc29uIG1pZ2h0LiBUaGV5IHJlYWxseSwgcmVhbGx5IGhlbHBlZC7CoEJ1dCBpdCB3YXMgYWZ0ZXIgY2VydGFpbmx5IGJlZHRpbWUuIEkgdGhpbmsgaXQgd2FzIGFmdGVyIDI0IGhvdXJzIGFuZCBteSBkb2N0b3Igd2FzIGxpa2UsIOKAnE9rYXku4oCdIE9oLCBJIHNob3VsZCBzYXkgdGhlIGNvbnRyYWN0aW9ucyBzbG93ZWQgZG93biBmcm9tIGJlaW5nIDItNCBtaW51dGVzIGFwYXJ0IHRvIGhhcHBlbmluZyA1LTcsIGV2ZW4gMTAgbWludXRlcyBhcGFydC4gVGhleSByZWFsbHkgc2xvd2VkIGRvd24uIEF0IHRoYXQgcG9pbnQsIGFmdGVyIDI0IGhvdXJzLCBJIHdhcyBhdCBh4oCTIEkgdGhpbmssIEkgd2FudCB0byBzYXnigKZhY3R1YWxseSBsZXQgbWUgbG9vayBoZXJlIHJlYWxseSBxdWljay4gT2theSwgc28gZGF5IHR1cm5lZCBpbnRvIG5pZ2h0IGFyb3VuZCA4OjAwIFBNIHRoYXQgZmlyc3QgZGF5LiBJIGhhZCBkaWxhdGVkIHRvIGEgNCBhbmQgSSB3YXMgZnVsbHkgZWZmYWNlZCBhdCAwIHN0YXRpb24uIEkgcmVhbGx5IHRob3VnaHQgSSB3YXMgZ29pbmcgdG8ga2VlcCBkaWxhdGluZyBhbmQgSSB3b3VsZCBtZWV0IG15IGJhYnkgYnkgdGhlIGVuZCBvZiB0aGF0IG5pZ2h0LCB0aGF0IGZpcnN0IG5pZ2h0IGJ1dCBzb29uLCBpdCBnb3QgaW50byBJIHRoaW5rIGFib3V0IDI0IGhvdXJzIG9mIGxhYm9yIGFuZCB0aGF04oCZcyB3aGVuIHRoZSBjb250cmFjdGlvbnMgc3RhcnRlZCB0byBzbG93IGRvd24gdG8gNS03IG1pbnV0ZXMuwqBUaGUgZG9jdG9yIHdhbnRlZCB0byBzdGFydCBtZSBvbiBQaXRvY2luLiBZZWFoLCBpdCB3YXMgdGhlIDI0LWhvdXIgbWFyayBhdCAyOjAwIEFNIHRvIHByb2dyZXNzIG1vcmUuIEkgZGlkIG5vdCB3YW50IFBpdG9jaW4gYmVjYXVzZSBvZiBldmVyeXRoaW5nIEkgaGFkIGxlYXJuZWQuIEkganVzdCB0aG91Z2h0LCDigJxUaGVyZeKAmXMgbm8gd2F5LiBUaGlzIGlzIGdvaW5nIHRvIGxlYWQgdG8gYW5vdGhlciBDLXNlY3Rpb24uIEkgZG9u4oCZdCB3YW50IGl0LuKAnSBIZSBwcm9taXNlZCBtZS4gSGUgc2FpZCwg4oCcTGV0IG1lIHN0YXJ0IHlvdSB2ZXJ5IGxvdy4gV2XigJlyZSBqdXN0IGdvaW5nIHRvIHRyeSB0byBnZXQgdGhlc2UgY29udHJhY3Rpb25zIGdvaW5nIGEgbGl0dGxlIGJpdCBmYXN0ZXIu4oCdwqA0NDo1NCBQaXRvY2luU2VsYWg6IFNvIHdlIHN0YXJ0ZWQgdGhlIHZlcnkgbG93ZXN0IGRvc2UuIFRoZXkgc3RheWVkIDUtMTAgbWludXRlcyBhcGFydCwgYnV0IEkgZGlkIGdldCB0byBhIDYgdGhhdCB3YXkuIEkgZGlkIG5vdCBmZWVsIGFueSBwYWluIG9uIHRoZSBQaXRvY2luIHdoaWNoIEkgd2FzIHZlcnkgc2NhcmVkIG9mLiBJIGtub3cuwqBTbyBoZSBrZXB0IHVwcGluZyBpdCBhbmQgc29vbiwgSSB3YXMgYXQgdGhlIG1heCBsZXZlbCBvZiBQaXRvY2luLiBJIGRpZCBub3QgZmVlbCBhIGRpZmZlcmVuY2UuIE15IGNvbnRyYWN0aW9ucyBzdGF5ZWQgNS0xMCBtaW51dGVzIGFwYXJ0LiBUaGUgZ29vZCB0aGluZyBhYm91dCB0aGF0IHdhcyBiZXR3ZWVuIHRob3NlIGxvbmcgY29udHJhY3Rpb24gYnJlYWtzLCBJIHdvdWxkIGxpdGVyYWxseSBmYWxsIGFzbGVlcCBhbmQgZXZlcnlib2R5IGluIHRoZSByb29tIHdhcyBsYXVnaGluZyBiZWNhdXNlIHRoZXkgd2VyZSBsaWtlLCDigJxTaGXigJlzIHNub3Jpbmcu4oCdIFRoZXJlIHdhcyBhIHJ1bm5pbmcgam9rZSBpbiBteSBmcmllbmQgY2lyY2xlIGFuZCBmYW1pbHkgdGhhdCBJIGNhbiBzbGVlcCB0aHJvdWdoIGFueXRoaW5nIGFuZCBJ4oCZbSBhIHZlcnkgZGVlcCBzbGVlcGVyIHNvIHRoaXMgaXMgbm8gc3VycHJpc2UgdG8gdGhlbS4gTXkgaHVzYmFuZCB3YXMgbGF1Z2hpbmcuIEkgbWVhbiwgSSB3YXMgc291bmQgYXNsZWVwIGFuZCB0aGVuIEkgd291bGQgZmVlbCBhIGNvbnRyYWN0aW9uLCB3YWtlIHVwLCBhbmQgc3RhcnQgc2luZ2luZyBvdXQgbG91ZC4gSXQgd2FzIGhpbGFyaW91cy7CoFRoZXJlIHdlcmUgdmFyaW91cyBwb3NpdGlvbnMgdGhhdCB3ZXJlIGJldHRlciBmb3IgbWUuIEJlaW5nIG9uIHRoZSB0b2lsZXQgd2FzIGRlZmluaXRlbHkgaGVscGZ1bC4gQmVpbmcgaW4gYWxtb3N0IGxpa2UgYSBjaGlsZOKAmXMgcG9zZSBwb3NpdGlvbiwgYnV0IHRoZSBiZXN0IG9mIGFsbCB3YXMgc2lkZS1seWluZyB3aXRoIHRoZSBiYWxsIGluIGJldHdlZW4uIFRoYXQgcmVhbGx5IHNlZW1lZCB0byBoZWxwIG9wZW4gbWUgdXAgYW5kIGl0IHdhcyBhbHNvIGdyZWF0IGJlY2F1c2UgdGhlbiBhZnRlciB0aGUgY29udHJhY3Rpb24gd2FzIG92ZXIsIEkgd291bGQgZmFsbCBhc2xlZXAgZnJvbSB0aGF0IHNpZGUtbHlpbmcuIFRoYXTigJlzIGhvdyB0aGF0IGtlcHQgd29ya2luZyB3aXRoIHRoZSBzbGVlcCBicmVha3MuwqBTZWxhaDogQnV0IHRoYXQgYmVpbmcgc2FpZCwgdGhlIFBpdG9jaW4gZGlkIG5vdCBzZWVtIGxpa2UgaXQgd2FzIGRvaW5nIGFueXRoaW5nLiBUaGF04oCZcyB3aHkgaGUga2VwdCB1cHBpbmcgaXQuIFdlIGFyZSBub3cgYXQgYWJvdXQgMzYgaG91cnMgb2YgbGFib3IuIEkgd2FzIGF0IGEgNi4gU28gSSB3YXMgZ2V0dGluZyBhIGxpdHRsZSB3b3JyaWVkIHRoYXQgaGUgd2FzbuKAmXQgZ29pbmcgdG8gbGV0IG1lIGtlZXAgZ29pbmcsIGJ1dCBoZSBkaWQuIEhlIGtlcHQgbGV0dGluZyBtZSBnbyBhbmQgdGhlbiB0aGUgb25lIHRoaW5nIGhlIGRpZCBpbnNpc3Qgb24gdGhvdWdoLCBhdCBhYm91dCA0OjMwIG9uIGRheSB0d28gd2FzIHRoYXQgSSBnZXQgdGhhdCBjYXRoZXRlciBmb3IgdGhlIGVwaWR1cmFsIGluIG15IGJhY2suVGhhdCB3YXMgdGhlIG9ubHkgdGhpbmcgdGhhdCBlbmRlZCB1cCBjYXVzaW5nIHBhaW4uIEkgZG9u4oCZdCBrbm93IGlmIGl04oCZcyB3aGVyZSB0aGV5IHBsYWNlZCBpdC4gSSBkb27igJl0IGtub3cgd2hhdCwgYnV0IGFsbCBvZiBhIHN1ZGRlbiwgSSBzdGFydGVkIHZvbWl0aW5nIGZyb20gdGhhdCBhcmVhLiBJdCB3YXMgcmVhbGx5IGJhZC4gVGhhdCBjYXRoZXRlciBodXJ0IHNvIGJhZCBhbmQgdGhlcmUgd2FzIG5vdGhpbmcgdGhleSBjb3VsZCBkby4gVGhlcmUgd2FzIG5vIGVwaWR1cmFsIGluIHRoZXJlLiBJIGRpZG7igJl0IHdhbnQgdGhlIGVwaWR1cmFsLiBJIGRpZG7igJl0IG5lZWQgaXQgZm9yIHRoZSBjb250cmFjdGlvbnMuIEl0IHdhcyBqdXN0IHRoYXQgYXJlYS4gVGhleSBwdXQgc29tZSBudW1iaW5nIGNyZWFtIG9uIGl0LiBUaGF0IGtpbmQgb2YgaGVscGVkLCBidXQgdGhhdCBpcyB3aGF0IHJlYWxseSBodXJ0LiBJIGRvbuKAmXQga25vdyBpZiBpdCB3YXMgd2hlcmUgdGhlIGJhYnkgd2FzLsKgQXMgaGUgc3RhcnRlZCBkcm9wcGluZyBtb3JlLCB0aGUgcGFpbiBsZXNzZW5lZCBpbiB0aGF0IGFyZWEsIGJ1dCB0aGF0IGNhdGhldGVyIHJlYWxseSBodXJ0LiBFdmVyeWJvZHkgb24gdGhlIGNvbW11bml0eSBwYWdlIHNhaWQgbm90IHRvIGdldCBpdCB3aGljaCBpcyB3aHkgSSBwdXNoZWQgaGFyZCBhYm91dCBub3QgZ2V0dGluZyBpdC4gTm93LCBJIGZlZWwgbGlrZSB0aGV5IHdlcmUgcmlnaHQgYmVjYXVzZSBhZ2FpbiwgSSB1bmRlcnN0YW5kIHdoeSBwZW9wbGUgZG8gZ2V0IGl0IGp1c3QgaW4gY2FzZS4gTXkgZG9jdG9yIHNhaWQsIOKAnEhhdmUgeW91ciBzZWF0YmVsdCBvbi4gSWYgeW91IGdvIHRvIGEgQy1zZWN0aW9uLCB3ZSBuZWVkIHRoYXQgc28geW91IGRvIG5vdCBoYXZlIHRvIGJlIHB1dCB1bmRlci7igJ0gWW91IGtub3cgd2hhdCBJIG1lYW4/QnV0IEkgc2hvdWxkIGhhdmUgc2FpZCBpbiByZXRyb3NwZWN0LCDigJxZb3Uga25vdyB3aGF0PyBJZiBnbyB0byBhIEMtc2VjdGlvbiwgSSB3YW50IHRvIGJlIHB1dCB1bmRlci7igJ0gTWVhZ2FuOiBXZWxsLCBhbmQgdGhlIHRoaW5nIGlzIHRoYXQgaXQgc3RpbGwgaGFzIHRvIGJlIGRvc2VkIGFuZCB0aGF0IHN0aWxsIHRha2VzIHRpbWUgc2/igJNTZWxhaDogUmlnaHQuwqBNZWFnYW46IEkgZG9u4oCZdCBrbm93LiBNYXliZSwgSSBndWVzcyBpdOKAmXMgYSBsaXR0bGUgZmFzdGVyIGJ1dCBpdCBzdGlsbCBoYXMgdG8gYmUgZG9zZWQuwqBTZWxhaDogSXQgc3RpbGwgaGFzIHRvIGJlIGRvc2VkLiBJbiByZXRyb3NwZWN0LCBJIGRvbuKAmXQgdW5kZXJzdGFuZCB3aHkgaGUgaW5zaXN0ZWQgb24gdGhhdCBzbyBtdWNoLCBidXQgSSByZWFsbHkgYXBwcmVjaWF0ZWQgaGltIHNvIG11Y2ggYXQgdGhhdCBtb21lbnQgYW5kIGFsbCBoZSBoYWQgZG9uZSB0byBzdXBwb3J0IG1lIHRoYXQgSSB0aG91Z2h0LCDigJxUaGlzIGlzIHRoZSBvbmUgdGhpbmcgaGUgaXMgaW5zaXN0aW5nIG9uLiBJ4oCZbSBnb2luZyB0byBnbyB3aXRoIGl0LuKAncKgSSBzYWlkIHllcywgYnV0IGFnYWluLCBJIHdpc2ggSSBoYWRu4oCZdC4gSXQgcmVhbGx5LCByZWFsbHksIHJlYWxseSBodXJ0LsKgNDg6MzUgVGhlIGZpbmFsIGhvdXJzU2VsYWg6IFRoZSBjb250cmFjdGlvbnMgd2VyZSBzdGlsbCA1LTcgbWludXRlcyBhcGFydCwgYnV0IGFsbCBvZiBhIHN1ZGRlbiwgYXJvdW5kIDU6MzAgUE3igJMgdGhpcyBpcyBvbiBkYXkgdHdvLCBhbmQgcmVtZW1iZXIsIGV2ZXJ5dGhpbmcgaGFkIHN0YXJ0ZWQgYXJvdW5kIDI6MDAgQU0gdGhlIG5pZ2h0IGJlZm9yZS4gU28gbm93LCB3ZeKAmXJlIGFsbW9zdCB0byA0OCBob3Vycy4gQXQgNTozMCBQTSBvbiBkYXkgdHdvIGR1cmluZyBvbmUgb2YgbXkgbGl0dGxlIGNhdCBuYXBzLCBJIGFsbCBvZiBhIHN1ZGRlbiB3b2tlIHVwIHdpdGggdGhpcyBpbnZvbHVudGFyeSB1cmdlIHRvIHB1c2guIEkganVzdCBrZXB0IHB1c2hpbmcgd2l0aCBlYWNoIGNvbnRyYWN0aW9uLiBBbGwgc29ydHMgb2Ygc3R1ZmYgd2FzIGNvbWluZyBvdXQgb2YgbXkgYm9keS4gSXQgd2FzIGluc2FuZSBsaWtlLCDigJxXaGF0IGlzIGhhcHBlbmluZz/igJ3CoEV2ZXJ5b25lIGluIHRoZSByb29tIHdhcyBsaWtlLCDigJxPaCBteSBnb3NoLiBUaGlzIGJhYnkgaXMgY29taW5nLiBUaGlzIGlzIGF3ZXNvbWUu4oCdIEltYWdpbmUgbXkgc3VycHJpc2Ugd2hlbiB0aGUgcmVzaWRlbnQgZG9jdG9yIGNhbWUgaW4gYW5kIGNoZWNrZWQgbWUgYW5kIHNhaWQgSSB3YXMgb25seSBhdCBhbiA4IGFuZCBzdGF0aW9uICsxLsKgTWVhZ2FuOiBXaGF0P8KgU2VsYWg6IEkgYnVyc3QgaW50byB0ZWFycy4gSSB0aGluayB0aGF0IHdhcyB0aGUgbW9tZW50IEkgZ290IHJlYWxseSBkaXNjb3VyYWdlZC4gRXZlcnlvbmUgc2FpZCBvbiB0aGUgcG9kY2FzdCBhbmQgaW4gdGhlIGNvbW11bml0eSB0aGF0IG1lYW5zIGJhYnkgaXMgYWJvdXQgdG8gYmUgYm9ybi4gWW91IGFyZSBnZXR0aW5nIGNsb3NlLsKgTWVhZ2FuOiBXaGVuIHlvdSBzdGFydCBkb3VidGluZyBsaWtlIHRoYXQsIHllYWguwqBTZWxhaDogRXhhY3RseS4gRXhhY3RseSwgYnV0IEkganVzdCB0aG91Z2h0LCDigJxUaGVyZSBpcyBubyB3YXkuIEhvdyBjb3VsZCBJIG9ubHkgYmUgYW4gOD8gSSBkb27igJl0IGtub3cgaG93IG11Y2ggbG9uZ2VyIEkgY2FuIGRvIHRoaXMuIEl04oCZcyBhbG1vc3QgNDggaG91cnMu4oCdIEkgaGVhcmQgbXlzZWxmIHNheWluZyB0aGlzIG91dCBsb3VkLiBNeSBkb3VsYSByZW1pbmRlZCBtZS4gU2hlIHdhcyBsaWtlLCDigJxUaGVzZSBhcmUganVzdCBlc3RpbWF0ZXMuIFRoZSByZXNpZGVudHMgd2FudCB0byBlc3RpbWF0ZSBvbiB0aGUgbG93ZXIgc2lkZSBiZWNhdXNlIHRoZXkgZG9u4oCZdCB3YW50IHRvIGZvb2wgdGhlIGRvY3RvciBhbmQgaGF2ZSBoaW0gY29tZSBpbiBhbmQgYmUgbGlrZSwg4oCYV2h5IGRpZCB5b3Ugc2F5IHNoZSB3YXMgY29tcGxldGU/4oCZIEl0IHdvdWxkIG5vdCBiZSBnb29kLuKAncKgTWVhZ2FuOiBUaGF0IGhhcHBlbnMuIEp1c3QgdG8gbGV0IHlvdSBrbm93LCB0aGF0IHJlYWxseSBhY3R1YWxseSBkb2VzIGhhcHBlbi4gSeKAmXZlIHNlZW4gaXQgd2l0aCBteSBvd24gZXllcyBhcyBhIGRvdWxhLsKgU2VsYWg6IFJpZ2h0PyBUaGV5IGVyciBvbiB0aGUgc2lkZSB0aGF0IGJlbmVmaXRzIHRoZW0gZXNzZW50aWFsbHkuwqBNZWFnYW46IFRoZXkgZmx1ZmYgaXQgaW4gdGhlIGJhY2t3YXJkIHdheS7CoFNlbGFoOiBZZWFoLiBZZXMuwqBNZWFnYW46IFRoZXkgZmx1ZmYgaXQgbGlrZSwg4oCcT2gsIHlvdeKAmXJlIDkgY2VudGltZXRlcnMs4oCdIHdoZW4geW914oCZcmUgcmVhbGx5IDguIEl04oCZcyBsaWtlIHlvdSBhcmUgOCBjZW50aW1ldGVycyBhbmQgdGhleSBhcmUgc2F5aW5nIHlvdSBhcmUgNiBjZW50aW1ldGVycy4gVGhleSBkbyB0aGlzIHdlaXJkIHRoaW5nIGFuZCBpdOKAmXMgbGlrZSBtYWdpY2FsIHByb2dyZXNzaW9uLsKgU2VsYWg6IEV4YWN0bHkuIE15IGRvdWxhIGtlcHQgcmVtaW5kaW5nIG1lIG9mIHRoYXQgZXZlbiB3aGVuIHdlIGZpcnN0IGdvdCB0aGVyZSBhbmQgdGhleSBzYWlkIEkgd2FzIGEgMS4gU2hlIHNhaWQsIOKAnE5vLiBJIHRoaW5rIHlvdSBhcmUgYSAzIG9yIGEgNC7igJ0gU28geWVhaC4gRXhhY3RseS4gQnV0IEkgd2FzIHNvIGRpc2NvdXJhZ2VkLiBJIGRvIGZlZWwgbGlrZSBhbm90aGVyIHNpZGUgbm90ZSBHb2QgZ2F2ZSBtZSB0aGUgbnVyc2VzIGF0IHRoZSByaWdodCBwb2ludCB0aGF0IEkgbmVlZGVkLiBUaGV5IHdlcmUgcHJvZ3Jlc3NpdmVseSBtb3JlIHN1cHBvcnRpdmUuwqBUaGUgZmlyc3QgbnVyc2UgSSBzdGFydGVkIG9mZiB3aXRoIHdhcyBzdXBlciBpbnRlbnNlLiBTaGUsIGJ5IHRoZSB3YXksIHdhcyBpbnNpc3Rpbmcgb24gYeKAkyBpcyBpdCBjYWxsZWQgYSBVRVA/IEEgdXRlcmluZeKAk8KgTWVhZ2FuOiBJVVBDLiBJbnRyYXV0ZXJpbmUgcHJlc3N1cmUgY2F0aGV0ZXIuwqBTZWxhaDogWWVzLiBUaGF04oCZcyByaWdodC4gSVBDUC7CoE1lYWdhbjogSVVQQy4gWWVwLsKgU2VsYWg6IElVUEMuIFRoZXJlIHlvdSBnby4gU2hlIGtlcHQgaW5zaXN0aW5nIG9uIHRoYXQuIE15IGRvY3RvciB3YW50ZWQgdGhhdCB0b28sIGJ1dCBoZSBnYXZlIHVwIGJhc2ljYWxseSBiZWNhdXNlIEkgc2FpZCwg4oCcTm9wZS4gSeKAmW0gbm90IGdldHRpbmcgdGhhdC4gTm8u4oCdIEkgYmVsaWV2ZSB0aGVyZSBpcyBhIHNtYWxsLCBzbWFsbCBjaGFuY2Ugb2YgcnVwdHVyZSBmcm9tIHRoYXQsIHJpZ2h0P01lYWdhbjogV2VsbCwgaXQgY2F1c2VzIGluZmVjdGlvbi4gSXQgZ29lcyB1cCBpbnRvIHRoZSBib2R5IHNvIGFueXRpbWUgd2UgZG8gYW55IG9mIHRoYXQsIGl0IGNhbiBpbmNyZWFzZSB0aGUgY2hhbmNlcyBvZiB0aGluZ3MgbGlrZSBDZXNhcmVhbi7CoFNlbGFoOiBSaWdodCwgc28gSSB0aG91Z2h0LCDigJxJ4oCZdmUgY29tZSB0aGlzIGZhci4gSeKAmW0gbm90IGRvaW5nIHRoYXQuIFlvdeKAmXJlIG1vbml0b3JpbmcgbWUgd2l0aCB0aGUgbW9uaXRvci4gSeKAmW0gbm90IGRvaW5nIHRoaXMgb3RoZXIgY2F0aGV0ZXIu4oCdIEJ5IHRoZSB3YXksIEkgd2FzIGluIGxhYm9yIHBvc3RpbmcgdGhhdCBvbiB0aGUgY29tbXVuaXR5IHBhZ2UgYW5kIHBlb3BsZSB3ZXJlIGxpa2UsIOKAnERvIG5vdCBkbyB0aGF0LiBUaGlzIGlzIHdoeS7igJ0gU28gYWdhaW4sIHRoaXMgY29tbXVuaXR5IGlzIHNvIGhlbHBmdWwuwqBTbyBhbGwgdGhhdCB0byBzYXksIHRoZSBmaXJzdCBudXJzZSB3YXMgdmVyeSBpbnRlbnNlLiBUaGUgc2Vjb25kIG9uZSB3YXMgZmluZSwgYnV0IHRoZSB0aGlyZCBvbmUgdGhhdCBJIGhhZCBkdXJpbmcgdGhhdCBtb21lbnTigJMgaGVyIG5hbWUgd2FzIFNoYW1pa2EuIEkgd2lsbCBuZXZlciBmb3JnZXQuIFNoZSBzYWlkLCDigJxZb3UgYXJlIG5vdCBnaXZpbmcgdXAgbm93LiBJIGhhdmUgc2VlbiB5b3UuIEkgaGF2ZSBzZWVuIHlvdSBzaW5naW5nLiBJIGhhdmUgaGVhcmQgeW91IHNpbmdpbmcuIEkgaGF2ZSBzZWVuIHlvdSB0aGFua2luZyBHb2QgZHVyaW5nIHRoZXNlIGNvbnRyYWN0aW9ucy4gSeKAmXZlIHNlZW4geW91IGxhYm9yaW5nIHdpdGggam95LiBZb3UgYXJlIGRvaW5nIHRoaXMuIERvIG5vdCBnaXZlIHVwLuKAnSBJIGFtIHRlbGxpbmcgeW91LCBJIGZlbHQgbGlrZSBHb2QgcHV0IGhlciBpbiBteSBsYWJvciBhdCB0aGF0IG1vbWVudCBiZWNhdXNlIEkgbmVlZGVkIHRoYXQuwqBNeSBodXNiYW5kIGFuZCBteSBkb3VsYSwgSm9oYW5uYSwgd2VyZSBzYXlpbmcsIOKAnFlvdeKAmXJlIG5vdCBnaXZpbmcgdXAgbm93LiBZb3XigJl2ZSBjb21lIHRoaXMgZmFyLiBZb3XigJl2ZSBnb3QgdGhpcy7igJ0gQW5kIEpvaGFubmEgcmVtaW5kZWQgbWUgYWdhaW4sIOKAnFRoaXMgaXMganVzdCBhbiBlc3RpbWF0ZS7igJ3CoFNvIHN1cmUgZW5vdWdoLCBJIHdhcyB0aGVyZS4gSSByZWFsbHkgdGhvdWdodCwgSSBkb27igJl0IGtub3csIOKAnElzIGl0IGdvaW5nIHRvIGhhcHBlbiBpbiBhbm90aGVyIGZvdXIgaG91cnMgbGlrZSwgNTozMD/igJ0gQXJvdW5kIDg6MzAgYXQgbmlnaHQsIHRoZXkgY2hlY2tlZCBtZSBhZ2FpbiBhbmQgSSB3YXMgY29tcGxldGUuIFRoZSBkb2N0b3IgZ2V0cyBjYWxsZWQgaW4gYW5kIGhlIHNheXMsIOKAnEFsbCByaWdodC4gVGltZSB0byBwdXNoLuKAncKgSm9oYW5uYSBoYWQgd2FybmVkIG1lIGFib3V0IHRoaXMuIFNoZSBzYWlkLCDigJxEci4gQnJvY2sgcmVhbGx5IGxpa2VzIHdvbWVuIHRvIHB1c2ggb3V0IG9uIHRoZWlyIGJhY2su4oCdIEkga25vdyB0aGVyZeKAmXMgYSBsb3Qgb2Ygc3R1ZmYgYWJvdXQgdGhhdC5NZWFnYW46IENvbnRyb3ZlcnN5LsKgU2VsYWg6IFllYWgsIGNvbnRyb3ZlcnN5LiDigJxTbyBJIGp1c3Qgd2FudCB0byB3YXJuIHlvdSB0aGF0IGhl4oCZcyBnb2luZyB0byBoYXZlIHlvdSBvbiB5b3VyIGJhY2suIFlvdeKAmXJlIGdvaW5nIHRvIGJlIGluIHRoZSBzdGlycnVwcyBidXQgaWYgaXQgZG9lc27igJl0IHdvcmssIHdlIGNhbiBnbyBmcm9tIHRoZXJlLiBCdXQgbGV04oCZcyBzdGFydCBpbiB0aGF0IHBvc2l0aW9uLuKAnSBJ4oCZbSBzbyBnbGFkIHNoZSBwcmVwcGVkIG1lIGJlY2F1c2UgSSBoYXZlIGhlYXJkIGEgbG90IGluIHRoZSBWQkFDIGNvbW11bml0aWVzIHRoYXQgeW91IHNob3VsZG7igJl0IHB1c2ggb24geW91ciBiYWNrIGFuZCBhbGwgb2YgdGhhdCBzdHVmZi7CoEJ1dCBmb3IgbWUsIEkgYWN0dWFsbHkgZGlkIGxpa2Ugb24gbXkgYmFjayBiZWNhdXNlIGhlIGhhZCBtZSBob2xkIHRoZXNlIGJhcnMuIEkgZG9u4oCZdCBrbm93IGlmIHRoYXTigJlzIG5vcm1hbC7CoE1lYWdhbjogWWVhaC4gSeKAmXZlIHNlZW4gdGhlbS4gWWVhaC5TZWxhaDogSeKAmW0gYSB3b3Jrb3V0IGp1bmtpZSwgc28gZm9yIG1lLCBpdCBmZWx0IHZlcnkgc3Ryb25nIHRvIHB1bGwgb24gdGhlc2UgYmFycyB3aXRoIG15IHVwcGVyIGJvZHkgbXVzY2xlcyBhbmQgdGhlbiBwdXNoIHdpdGggbXkgbGVncy4gSXQgZmVsdCBkb2FibGUgaW4gb3RoZXIgd29yZHMsIGJ1dCBJIGRpZG7igJl0IHJlYWxpemUgaG93IG11Y2ggdGhpcyBpcyB0cnVlIHdoaWNoIGlzIHRoZSB0d28gc3RlcHMgZm9yd2FyZCwgb25lIHN0ZXAgYmFjay7CoE1lYWdhbjogMTAwJS7CoFNlbGFoOiBUaGF0IGlzIHNvIGZydXN0cmF0aW5nLiBJIGRpZG7igJl0IGtub3cuIEkga25vdyBJIGhhZCBoZWFyZCBpdCBidXQgSSBkaWRu4oCZdCByZWFsaXplIGhvdyB0cnVlIGl0IHdhcy4gVGhhdCB3YXMgdmVyeSBmcnVzdHJhdGluZyB0byBzZWUgaGlzIGhlYWQgY29tZSBvdXQgYW5kIHRoZW4gZ28gYmFjayBpbi4gQnV0IGFnYWluLCB0aGF04oCZcyBoaXMgbGl0dGxlIGx1bmdzIGdldHRpbmcgbW9yZSBkZXZlbG9wZWQgYW5kIGV2ZXJ5dGhpbmcuIEkgZGlkIGhhdmUgYSBtaXJyb3Igd2hpY2ggcmVhbGx5IGhlbHBlZCB0byBzZWUgYW5kIGl0IGZlbHQgbGlrZSBhZ2FpbiwgaXQgd2FzIGxpa2UgeW91IHdlcmUgZ29pbmcgdG8gdGhlIGJhdGhyb29tLsKgTWVhZ2FuOiBZZWFoLiBZZWFoLsKgU2VsYWg6IEkgZmVlbCBsaWtlIG1vcmUgcGVvcGxlIG5lZWQgdG8ga25vdyB0aGF0IHRoYXQgaXQgcmVhbGx5IGlzIHdoYXQgaXQgZmVlbHMgbGlrZS4gWW91IGp1c3QgaGF2ZSB0byBwdXNoIGl0IG91dC7CoE1lYWdhbjogVGhlIGJpZ2dlc3QgcG9vcCB5b3XigJlsbCBldmVyIHRha2UuIFRoYXTigJlzIHdoYXQgSSBzYXkuwqBTZWxhaDogWWVzLiBJdOKAmXMgc28gdHJ1ZS4gSXQgcmVhbGx5IGlzLiBJIHdhcyBqdXN0IHB1c2hpbmcgYW5kIHB1c2hpbmcuIFdlIGFyZSBuZWFyaW5nIHRoZSA0OC1ob3VyIG1hcmsuIEkgd2FzIHB1c2hpbmcgZm9yIHRocmVlIGhvdXJzLsKgTWVhZ2FuOiBXb3cuwqBTZWxhaDogWWVzLiBJdCB3YXMgY2xvc2UgdG8gdGhyZWUgaG91cnMuIEJhc2ljYWxseSwgdGhlIGNvbnRyYWN0aW9ucyBzdGF5ZWQgNS03IG1pbnV0ZXMgYXBhcnQuIEkgc3RheWVkIHJlc3RpbmcgaW4gYmV0d2Vlbi4gSSB3YXMgb24gdGhlIG1heCBkb3NlIG9mIFBpdG9jaW4uIERyLiBCcm9jayB3YXMgZ2V0dGluZyBhIGxpdHRsZSBmcnVzdHJhdGVkIHNvIGhlIHNhaWQsIOKAnExpc3Rlbi4gWW91IGhhdmUgbGVzcyB0aGFuIGFuIGluY2ggdG8gZ28gdG8gZ2V0IHRoaXMgYmFieSBvdXQuIEhlIGlzIGdvaW5nIHRvIGNvbWUgb3V0LiBEb27igJl0IHdvcnJ5LiBIZeKAmXMgZ29pbmcgdG8gY29tZSBvdXQsIGJ1dCBJIHJlYWxseSB3b3VsZCBsaWtlIHRvIHVzZSB0aGUgdmFjdXVtIHRvIGdldCBoaW0gb3V0IGFsbCBvZiB0aGUgd2F5LuKAnSBJIHRob3VnaHQgdGhhdCB3YXMgZ3JlYXQgYmVjYXVzZSBhIGxvdCBvZiwgSeKAmXZlIGhlYXJkLCBWQkFDIGRvY3RvcnMgd2lsbCBub3QgdXNlIHRoZSB2YWN1dW0gYmVjYXVzZSBpdOKAmXMgYSBsaXR0bGUgYml0IHJpc2t5IHdpdGggY3JhbmlhbCBkYW1hZ2Ugc28gSSB3YXMgYWN0dWFsbHkgZ3JhdGVmdWwgYW5kIG9idmlvdXNseSB0aXJlZCBzbyBJIHdhcyBsaWtlLCDigJxZZXMuIERvIHdoYXRldmVyIGl0IHRha2VzLiBHZXQgdGhpcyBiYWJ5IG91dC7igJ0g4oCcQnV0LOKAnSBoZSBzYWlkLCDigJxJIHdhbnQgdG8gZmlsbCB5b3VyIGNhdGhldGVyIHdpdGggYW4gZXBpZHVyYWwu4oCdIEF0IHRoYXQgcG9pbnQsIG5vdywgSSBzaG91bGQgc2F5IEkgaGFkIHRoaXMgcHJheWVyIGxpc3QgYW5kIGV2ZXJ5IHNpbmdsZSB0aGluZyBoYWQgYmVlbiBtZXQgZnJvbSB0aGUgbnVyc2VzIHRvIG5vdCB1c2luZyBkcnVncy4gSSBkaWQgbm90IHdhbnQgdGhlIGVwaWR1cmFsLiBCeSB0aGUgd2F5LCBub3Qgb25seSBkaWQgSSBub3Qgd2FudCB0aGUgcmlzayBvZiBhIEMtc2VjdGlvbiB3aXRoIHRoZSBlcGlkdXJhbC4gVGhlIG90aGVyIHJlYXNvbiB3YXMgdGhhdCBJIGhhZCBiZWVuIHNvIGRydWdnZWQgd2l0aCBteSBvdGhlciB0d28gQy1zZWN0aW9ucyB0aGF0IGxpa2UgSSBzYWlkLCBJIGJhcmVseSByZW1lbWJlciBob2xkaW5nIHRoZSBiYWJ5IG9uIG15IGNoZXN0LiBJIHdhcyBzbyB3b296eSBhbmQgb3V0IG9mIGl0LiBJIGRpZG7igJl0IHdhbnQgdGhhdCBhZ2Fpbi7CoEJ1dCBoZSBzYWlkLCDigJxJIHdhbnQgdG8gcHV0IHNvbWUgcHVzaCBlcGlkdXJhbCBpbiBzbyB0aGF0IHlvdSB3b27igJl0IGZlZWwgdGhlIHZhY3V1bSBhbmQgdGhhdCBoZeKAmWxsIGNvbWUgb3V0LuKAnSBJIHdhcyBzbyB0aXJlZC4gTXkgZmlnaHQgd2FzIHNvIGRvbmUgdGhhdCBJIGZlbHQgbGlrZSBJIGhhZCB0byBnaXZlIGluIGFuZCBsZXQgaGltIGRvIHRoaXMgdGhlIHdheSBoZSB3YW50ZWQgdG8gYW5kIGlmIHRoYXQgbWVhbnQgaGF2aW5nIGEgcHVzaCBlcGlkdXJhbCwgdGhlbiBJ4oCZZCBkbyBpdC4gSeKAmWxsIGRvIHRoZSBwdXNoIGVwaWR1cmFsLsKgNTY6NDcgQSBjcmFjayBpbiB0aGUgY2F0aGV0ZXJTZWxhaDogSW4gY29tZXMgdGhlIGFuZXN0aGVzaW9sb2dpc3QuIFNoZSBsb29rcyBhdCB0aGUgY2F0aGV0ZXIgdGhhdOKAmXMgaW4gbXkgYmFjayBhbmQgc2F5cywg4oCcVGhlcmUgaXMgYSBjcmFjayBpbiB0aGUgY2FwIG9mIHRoZSBjYXRoZXRlci7igJ3CoE1lYWdhbjogTm8hU2VsYWg6IOKAnFdlIGNhbuKAmXQgZG8gaXQuIFdlIGNhbuKAmXQgcHV0IGFuIGVwaWR1cmFsIGhlcmUuIFRoZXJlIGlzIGEgdGlueSBjcmFjay4gQmFjdGVyaWEgY291bGQgZ2V0IGluLCB3aGF0ZXZlci4gV2UgY2Fu4oCZdCBkbyBpdC7igJ0gRHIuIEJyb2NrIHdhcyBsaWtlLCDigJxBcmUgeW91IHNlcmlvdXM/IFRoaXMgaXMgaW5zYW5lLuKAnSBJIHNhaWQsIOKAnEdvb2QgYmVjYXVzZSBJIGRpZG7igJl0IHdhbnQgaXQgYW55d2F5LuKAnSBNeSBkb3VsYeKAk01lYWdhbjogWW914oCZcmUgbGlrZSwg4oCcTGV04oCZcyBqdXN0IGdldCB0aGlzIGJhYnkgb3V0LuKAncKgU2VsYWg6IEV4YWN0bHkuIEkgc2FpZCwg4oCcSXTigJlzIGZpbmUuIExpc3Rlbi4gSeKAmXZlIGNvbWUgdGhpcyBmYXIuIEnigJltIHN1cmUgaXTigJlzIG5vdCBnb2luZyB0byBodXJ0IHRoYXQgbXVjaC7igJ0gSGUgc2FpZCwg4oCcQXJlIHlvdSBzdXJlPyBCZWNhdXNlIGFsc28gdGhvdWdodCBpdCB3b3VsZCBiZSBnb29kIHRvIGRvIGFueSBzZXdpbmcgdXAgYWZ0ZXIgZnJvbSBhbnkgdGVhcnMu4oCdIEkgc2FpZCwg4oCcWWVzLiBKdXN0IGRvIGl0LiBJIGRvbuKAmXQgbmVlZCBpdC4gSXTigJlzIGZpbmUu4oCdIEJ5IHRoZSB3YXksIHRoZXJl4oCZcyBubyBjaG9pY2UuIFlvdSBjYW7igJl0IHB1dCBpdCBpbi4gU2hlIHNhaWQgbm8uIFRoZSBhbmVzdGhlc2lvbG9naXN0IHdhcyBsaWtlLCDigJxOb3BlLiBJ4oCZbSBvdXQu4oCdwqBTbyBJIHB1c2hlZCBhbmQgaGUgc2FpZCwg4oCcQWxsIHJpZ2h0LiBZb3XigJlyZSBnb2luZyB0byBmZWVsIGEgbGl0dGxlIHByZXNzdXJlLiBJ4oCZbSBnb2luZyB0byBwdXNoIG9uIHlvdXIgc3RvbWFjaC4gWW914oCZcmUgZ29pbmcgdG8gcHVzaCBhdCB0aGUgc2FtZSB0aW1lLiBJ4oCZbSBnb2luZyB0byB2YWN1dW0gYW5kIGhl4oCZbGwgY29tZSBvdXQu4oCdwqBJIHNhaWQsIOKAnE9rYXksIGxldOKAmXMgZG8gdGhpcy7igJ3CoFN1cmUgZW5vdWdoLCBpdCBmZWx0IGFsbW9zdCBsaWtlIHRoZSBDLXNlY3Rpb24gd2hlbiB0aGV5IHB1c2hlZCBvbiB5b3VyIHV0ZXJ1cy4gWWVhaCwgYSBsaXR0bGUgYml0LiBCdXQgaXQgd2FzbuKAmXQgcGFpbmZ1bC4gSXQgd2FzIGp1c3QgcHJlc3N1cmUuIEl0IHdhcyBqdXN0IGEgdmVyeSB3ZWlyZCBmZWVsaW5nIGFjdHVhbGx5IG9mIHRoZSB2YWN1dW0uIFRoZSBzZXdpbmcgdXAgb2YgdGhlIHRlYXLigJMgSSBoYWQgYSBzZWNvbmQtZGVncmVlIHRlYXIgd2hpY2ggaXNu4oCZdCB0aGF0IGJhZCBjb25zaWRlcmluZyBoZSB3YXMgOSBwb3VuZHMuwqBNZWFnYW46IFZlcnkgc3RhbmRhcmQuwqBTZWxhaDogVmVyeSBzdGFuZGFyZC4gSGUgd2FzIDkgcG91bmRzLCA1IG91bmNlc+KAkyBiaWcgYmFieS4gSGUgYWxzbyBoYWQgYSBiaWcgaGVhZCBzbyB0aGF0IHdhcyBwcmV0dHkgZ29vZCBhY3R1YWxseSB0aGF0IEkgb25seSB0b3JlIHRoYXQgbXVjaC4gSXQgZGlkbuKAmXQgZXZlbiBodXJ0IHdoZW4gaGUgc2V3ZWQgbWUgdXAgYXQgYWxsLiBJdCBmZWx0IGEgbGl0dGxlIHdlaXJkLCBidXQgaXQgZGlkbuKAmXQgaHVydCBhbmQgaXQgd2FzIGFtYXppbmcuIEkgY291bGRu4oCZdCBiZWxpZXZlIGl0LCB0aGUgZmVlbGluZyB0aGF0IGhlIGNhbWUgb3V0IG9mIG15IGJvZHkgdGhhdCB3YXkhIEhlIHdlbnQgcmlnaHQgb24gbXkgY2hlc3QgYW5kIGhlIHdhcyBjcnlpbmcgc28gbG91ZC4gSGUgd2FzIHNvIGhlYWx0aHkuwqBUaGUgYmVzdCBwYXJ0IG9mIGFsbCwgSSBtZWFuLCBJIHdhcyBqdXN0IHNvIG92ZXJ3aGVsbWVkIGFuZCBzbyBoYXBweS4gSSBkaWRu4oCZdCBldmVuIHJlYWxseSBjcnkuIEkgd2FzIGp1c3QgaGFwcHkuIEkgd2FzIGp1c3Qgam95ZnVsLiBUaGUgYmVzdCBwYXJ0IG9mIGFsbCwgdGhvdWdoLCBoZSBkaWRu4oCZdCBoYXZlIHRvIGdvIHRvIHRoZSBOSUNVIGF0IGFsbC7CoE1lYWdhbjogWWVzLsKgU2VsYWg6IEhlIGxpdGVyYWxseSBsYWlkIGRvd24gYnkgbXkgc2lkZSB0aGUgd2hvbGUgbmlnaHQuIFdlIHdlcmUgbmV2ZXIgc2VwYXJhdGVkLiBJIGJyZWFzdGZlZCBhbGwgbmlnaHQgYW5kIGJ5IHRoZSB3YXksIHlvdSBrbm93IHRoZXkgY29tZSBpbiBhbmQgdGhleSB3YW50IHRvIG1ha2Ugc3VyZSBoZeKAmXMgaW4gaGlzIGJhc3NpbmV0LiBJ4oCZbSBsaWtlLCDigJxOb3BlLuKAnSBJIGtlcHQgaGltIHJpZ2h0IGJ5IG1lLiBUaGF0IG1pZ2h0IGJlIGEgbGl0dGxlIGNvbnRyb3ZlcnNpYWwsIGJ1dCBJIGNvdWxkbuKAmXQgbGV0IGdvLiBJIHJlYWxseSBjb3VsZG7igJl0IGxldCBnbyBiZWNhdXNlIHRoaXMgd2FzIHNvIG1pbmQtYmxvd2luZyB0aGF0IGhlIGNvdWxkIGJlIHRoZXJlIGFuZCB0aGF0IGFsbCBvZiBteSBmZWFycywgYWxsIG9mIG15IHdvcnJpZXMsIGFsbCBvZiBteSBoYXJkIHdvcmssIGFsbCBvZiB0aGF0IHdhcyBvdmVyLiBBbGwgb2YgdGhlIGFwcG9pbnRtZW50cywgYWxsIG9mIHRoZSB3b25kZXJpbmcsIEkgZmVsdCBsaWtlLCDigJxJIGRpZCBpdC4gR29kIGRpZCBpdC4gV2UgZGlkIGl0LuKAncKgTWVhZ2FuOiBZb3UgZGlkIGl0LsKgU2VsYWg6IEl0IHdhcyBpbmNyZWRpYmxlLiBUaGVuIGJyaW5naW5nIGhpbSBob21lIGFuZCBrbm93aW5nIHRoYXQgdGhlcmUgd2FzIG5vIHdvcnJ5IGFib3V0IGhpcyBicmVhdGhpbmcsIGFib3V0IGhpcyBibG9vZCBzdWdhciwgYW5kIHRoYXQgc28gZmFyLCBteSBvdGhlciB0d28gaGF2ZSBhc3RobWEgd2hpY2ggaXMgc28gc2FkLiBJIGRvbuKAmXQga25vdyBpZiBpdOKAmXMgcmVsYXRlZCB0byB0aGUgQy1zZWN0aW9ucyBiZWNhdXNlIG15IGh1c2JhbmQgYWxzbyBoYWQgYXN0aG1hIHNvIGl0IGNvdWxkIG5vdCBiZS7CoE1lYWdhbjogSXQgY2FuIGJlIHRob3VnaHQuwqBTZWxhaDogSXQgY2FuIGJlLCB5ZWFoLiBUaGlzIG9uZSBkb2VzbuKAmXQgaGF2ZSBhc3RobWEgc28gZmFyLiBObyBhbGxlcmdpZXMuIFRoZSBvdGhlciB0d28gaGF2ZSBhbGxlcmdpZXMuIEl04oCZcyBjcmF6eSB0aGUgdGhpbmdzIHRoYXQgSeKAmXZlIHNlZW4sIGJ1dCBtb3N0IG9mIGFsbCwgbXkgaGVhbGluZyB3YXMgbmlnaHQgYW5kIGRheS4gSSBrbm93IHRoYXTigJlzIG5vdCBhbHdheXMgbm9ybWFsIGZvciBhIFZCQUMgb3IgYSB2YWdpbmFsIGJpcnRoLsKgTWVhZ2FuOiBZZWFoLiBZZWFoLsKgU2VsYWg6IEJ1dCBJIHBlcnNvbmFsbHkgd2FzIHVwIGFuZCBhYm91dCBvbiBkYXkgdHdvLiBJIG1lYW4sIG5pZ2h0IGFuZCBkYXksIG5vIHByb2JsZW1zLiBPZiBjb3Vyc2UsIEkgd2FzIGEgbGl0dGxlIHNvcmUuIEl0IGZlbHQgbGlrZSBJIGhhZCBqdXN0IHJ1biBhIG1hcmF0aG9uLCBidXQgbm90aGluZy4gQW5kIG9mIGNvdXJzZSwgbm93LCBJIHBlZSBhIGxpdHRsZSB3aGVuIEkgc25lZXplLsKgTWVhZ2FuOiBTbyBwZWx2aWMgZmxvb3IgdGhlcmFweSB3aWxsIGhlbHAuwqBTZWxhaDogUGVsdmljIGZsb29yIHdoaWNoIEkgbmVlZCB0byBkby4gQW5kIHRoYXQgYWxzbyBoYXBwZW5zLCBieSB0aGUgd2F5LCB3aXRoIEMtc2VjdGlvbnMuIEkgYWxzbyBoYWQgdGhhdCB3aXRoIG15IEMtc2VjdGlvbnMgYnV0IEkgZmVlbCBsaWtlIGFsbCBvZiBpdCB3YXMgMTAwMCUgd29ydGggaXQuIEV2ZXJ5Ym9keSBzYWlkIGl0IHdvdWxkIGJlIGFuZCB0aGV5IHdlcmUgcmlnaHQuIEV2ZXJ5Ym9keSB3aG8gSSBoYWQgcmVhZCB0aGUgc3RvcmllcyBvciBoZWFyZCB0aGUgc3RvcmllcyBhYm91dC4gSXQgd2FzIHNvIHdvcnRoIGl0LsKgMTowMDowMCBUaGUgYmVzdCBmZWVsaW5nU2VsYWg6IFRoZSBmZWVsaW5nIG9mIGhhdmluZyBoaW0gY29tZSBvdXQgdGhhdCB3YXkgYnV0IGFsc28gYmVpbmcgYWJsZSB0byBob2xkIGhpbSBhbmQgYmUgd2l0aCBoaW0gYW5kIG5vdCBoYXZlIHN1cmdlcnkuIEkgbWVhbiwgaXQgd2FzIGp1c3QgbmlnaHQgYW5kIGRheSBhbmQgc3VjaCBhbiBpbmNyZWRpYmxlIGZlZWxpbmcgb2YgZW1wb3dlcm1lbnQgYW5kIGZvciBtZSwgbXkgZmFpdGgsIHdpdG5lc3NpbmcgR29kIGRvIHdoYXQgSSB0aG91Z2h0IHdhcyBpbXBvc3NpYmxlIGFuZCB3aGF0IEkgZmVsdCBsaWtlIHdhcyBuYXR1cmFsLiBJdCB3YXMganVzdCBhbiBpbmNyZWRpYmxlIGV4cGVyaWVuY2Uga25vd2luZyB0aGF0IGV2ZXJ5dGhpbmcgd2FzIG9rYXkuIFRoZSB1dGVyaW5lIHdhbGwgd2luZG93IGRpZG7igJl0IGhhcHBlbi7CoE1lYWdhbjogT2ggeWVzLiBZZXMuwqBTZWxhaDogTm9uZSBvZiB0aG9zZSBmZWFycyBoYXBwZW5lZC4gRXZlcnl0aGluZyB3YXMgb2theSBhbmQgaGUgd2FzIHBlcmZlY3QuIFNvIHBlcmZlY3QgYW5kIGJlYXV0aWZ1bCBhbmQgc3VjaCBhIHN1cnByaXNlIGJhYnkgdG8gaGFwcGVuIHRoYXQgd2F5LsKgTWVhZ2FuOiBJIGFtIHNvIGhhcHB5IGZvciB5b3UuwqBTZWxhaDogSSBmZWVsIGxpa2UgaXQgd2FzIHNvIHJlZGVtcHRpdmUuwqBNZWFnYW46IFllcyBhbmQgaXQgc2hvdWxkIGhhdmUgYmVlbi4gSeKAmW0gc28gcHJvdWQgb2YgeW91IGZvciBnb2luZyB0aHJvdWdoIHRoZSBtb3Rpb25zLCBkb2luZyB0aGUgcmVzZWFyY2gsIHJlY29nbml6aW5nIHdoYXTigJlzIHJpZ2h0LCBhbmQgd2hhdOKAmXMgbm90IHJpZ2h0LCBtYWtpbmcgdGhlIGNoYW5nZSwgZW1icmFjaW5nIHRoZSBjaGFuZ2UsIGFuZCB0aGVuIGFsc28gc3RpbGwgcHVzaGluZyBmb3J3YXJkIHRocm91Z2ggdGhhdCB3aG9sZSBiaXJ0aC4gVGhhdOKAmXMgYW1hemluZy4gU3VjaCBhIGxvbmcgYmlydGguIFN1Y2ggYSBiZWF1dGlmdWwgYmlydGguwqBTZWxhaDogU3VjaCBhIGxvbmcgYmlydGguwqBNZWFnYW46IEnigJltIHNvIGdsYWQgeW91IGhhZCB0aGUgc3VwcG9ydC4gSXQgd2FzIGFuZCBJ4oCZbSBqdXN0IHNvIGhhcHB5IGZvciB5b3UgYW5kIHRoYXQgeW91IGFyZSBzaGFyaW5nIHRoaXMgc3RvcnkgdG9kYXkuwqBTZWxhaDogVGhhbmsgeW91LiBXZWxsLCBhbmQgSSB3aWxsIHNheSBsaWtlIHlvdSBzYWlkLCB0aGUgc3VwcG9ydCBpcyBzb+KAkyBteSBkb3VsYSBzdGF5ZWQgdGhlIGVudGlyZSA0OCBob3Vycy7CoE1lYWdhbjogV293LsKgU2VsYWg6IFNoZSBkaWQgbm90IGVhdC4gU2hlIGRpZCBub3Qgc2xlZXAuIFNoZSBkaWQgbm90IGxlYXZlLiBTaGUgd2FzIGFtYXppbmcuIFRoZW4sIG15IGh1c2JhbmTigJMgSSBmZWVsIGxpa2UgaWYgeW91ciBwYXJ0bmVyIGlzIG5vdCAxMDAlIG9uIGJvYXJkLCB0aGF0IHlvdSByZWFsbHkgbmVlZCB0aGF0LiBIZSB3YXMgMTAwMCUgb24gYm9hcmQgYW5kIGhlIGRpZCBub3Qgc2xlZXAsIGVhdCwgb3IgZG8gYW55dGhpbmcgZWl0aGVyLsKgTWVhZ2FuOiBZZWFoLsKgU2VsYWg6IEkgcmVhbGx5IGFtIHRoYW5rZnVsIGZvciB0aGF0IGFuZCB0aGFua2Z1bCBmb3IgdGhpcyBjb21tdW5pdHkgYW5kIFRoZSBWQkFDIExpbmsgcG9kY2FzdCBhbmQgZXZlcnl0aGluZy4gSXQgd2FzIHJlYWxseSB3aGF0IHdhcyB0aGUgZHJpdmluZyBmb3JjZS4gSSBjYW7igJl0IGJlbGlldmUgSSBkaWQgaXQuIEkgcmVhbGx5IGNhbuKAmXQgYW5kIEkgbG92ZSBoZWxwaW5nIG90aGVyIHdvbWVuIG5vdyB0b28uIEl04oCZcyBqdXN0IHN1Y2ggYSBibGVzc2luZy7CoE1lYWdhbjogRnVsbCBjaXJjbGUuIFllcy4gSXTigJlzIHRoZSBmdWxsIGNpcmNsZS7CoE9oLCB3ZWxsIHRoYW5rIHlvdSBhZ2FpbiBzbyBtdWNoLsKgU2VsYWg6IFRoYW5rIHlvdSBmb3IgaGF2aW5nIG1lLiBJdCB3YXMgc3VjaCBhbiBob25vci4gSXQgcmVhbGx5IHdhcy7CoENsb3NpbmdXb3VsZCB5b3UgbGlrZSB0byBiZSBhIGd1ZXN0IG9uIHRoZSBwb2RjYXN0PyBUZWxsIHVzIGFib3V0IHlvdXIgZXhwZXJpZW5jZSBhdCB0aGV2YmFjbGluay5jb20vc2hhcmUuIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGFsbCB0aGluZ3MgVkJBQyBpbmNsdWRpbmcgb25saW5lIGFuZCBpbi1wZXJzb24gVkJBQyBjbGFzc2VzLCBUaGUgVkJBQyBMaW5rIGJsb2csIGFuZCBNZWFnYW7igJlzIGJpbywgaGVhZCBvdmVyIHRvIHRoZXZiYWNsaW5rLmNvbS4gQ29uZ3JhdHVsYXRpb25zIG9uIHN0YXJ0aW5nIHlvdXIgam91cm5leSBvZiBsZWFybmluZyBhbmQgZGlzY292ZXJ5IHdpdGggVGhlIFZCQUMgTGluay5TdXBwb3J0IHRoaXMgcG9kY2FzdCBhdCDigJQgaHR0cHM6Ly9yZWRjaXJjbGUuY29tL3RoZS12YmFjLWxpbmsvZG9uYXRpb25zQWR2ZXJ0aXNpbmcgSW5xdWlyaWVzOiBodHRwczovL3JlZGNpcmNsZS5jb20vYnJhbmRzIiwiZHVyYXRpb24iOnsidG90YWxNaWxsaXNlY29uZHMiOjM4MTY4ODF9LCJpZCI6IjZ4d25ZV1ZvR0xJTnl3NDlGSjhJOTgiLCJtZWRpYVR5cGVzIjpbIkFVRElPIl0sIm5hbWUiOiJFcGlzb2RlIDI4NSBTZWxhaCdzIDQ4LWhvdXIgVkJBMkMgKyBDaGFuZ2luZyBQcm92aWRlcnMgaW4gTGF0ZSBQcmVnbmFuY3kiLCJwbGF5YWJpbGl0eSI6eyJwbGF5YWJsZSI6dHJ1ZSwicmVhc29uIjoiUExBWUFCTEUifSwicGxheWVkU3RhdGUiOnsicGxheVBvc2l0aW9uTWlsbGlzZWNvbmRzIjowLCJzdGF0ZSI6Ik5PVF9TVEFSVEVEIn0sInBvZGNhc3RWMiI6eyJfX3R5cGVuYW1lIjoiUG9kY2FzdFJlc3BvbnNlV3JhcHBlciIsImRhdGEiOnsiX190eXBlbmFtZSI6IlBvZGNhc3QiLCJjb3ZlckFydCI6eyJzb3VyY2VzIjpbeyJoZWlnaHQiOjY0LCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDBmNjhkYmI1Zjc2YmE0MzJkZmMzMDNmMzdmODA2Iiwid2lkdGgiOjY0fSx7ImhlaWdodCI6MzAwLCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDA1ZjFmYmI1Zjc2YmE0MzJkZmMzMDNmMzdmODA2Iiwid2lkdGgiOjMwMH0seyJoZWlnaHQiOjY0MCwidXJsIjoiaHR0cHM6Ly9pLnNjZG4uY28vaW1hZ2UvYWI2NzY1NjMwMDAwYmE4YWJiNWY3NmJhNDMyZGZjMzAzZjM3ZjgwNiIsIndpZHRoIjo2NDB9XX0sIm5hbWUiOiJUaGUgVkJBQyBMaW5rIiwic2hvd1R5cGVzIjpbXSwidXJpIjoic3BvdGlmeTpzaG93OjM2YlZ4cU9HZDFFWWNSMG9KdGVGNW4ifX0sInJlbGVhc2VEYXRlIjp7Imlzb1N0cmluZyI6IjIwMjQtMDMtMjVUMDk6MTA6MDBaIn0sInJlc3RyaWN0aW9ucyI6eyJwYXl3YWxsQ29udGVudCI6ZmFsc2V9LCJ1cmkiOiJzcG90aWZ5OmVwaXNvZGU6Nnh3bllXVm9HTElOeXc0OUZKOEk5OCJ9LHsiX190eXBlbmFtZSI6IkVwaXNvZGUiLCJhdWRpbyI6eyJpdGVtcyI6W3siZmlsZUlkIjoiYTRiZWYyMTQ4NjJkZGI4ZmRiODFhZTA1MDQwZTEzMGUxNTE3YzE5NiIsImZvcm1hdCI6Ik1QNF8xMjhfRFVBTCIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3L2E0YmVmMjE0ODYyZGRiOGZkYjgxYWUwNTA0MGUxMzBlMTUxN2MxOTYifSx7ImZpbGVJZCI6ImViM2NiOTY3YTYzMDljOGQzMjNlZThlMjg0MGRkOTVmMDhkMjcwYTgiLCJmb3JtYXQiOiJNUDRfMTI4X0NCQ1MiLCJ1cmwiOiJodHRwczovL3Auc2Nkbi5jby9tcDMtcHJldmlldy9lYjNjYjk2N2E2MzA5YzhkMzIzZWU4ZTI4NDBkZDk1ZjA4ZDI3MGE4In0seyJmaWxlSWQiOiI4NDM1ZGFmMzUyYmI4NTEwMzcxMzI3MDY3Njg3M2FjZWM4YjhlZjBiIiwiZm9ybWF0IjoiQUFDXzI0IiwidXJsIjoiaHR0cHM6Ly9wLnNjZG4uY28vbXAzLXByZXZpZXcvODQzNWRhZjM1MmJiODUxMDM3MTMyNzA2NzY4NzNhY2VjOGI4ZWYwYiJ9LHsiZmlsZUlkIjoiOGIxYjYzMWFkYjk4MTFiZWNmYTU3Yjg0OWY2M2Q2NjQ2YzhlYmRhNiIsImZvcm1hdCI6Ik9HR19WT1JCSVNfOTYiLCJ1cmwiOiJodHRwczovL3Auc2Nkbi5jby9tcDMtcHJldmlldy84YjFiNjMxYWRiOTgxMWJlY2ZhNTdiODQ5ZjYzZDY2NDZjOGViZGE2In0seyJmaWxlSWQiOiI1MmNiZjYwOWJhZjc5ZTdkMGNmMjRlMDNiZWQ1MmUwZTI5NzFjMTFhIiwiZm9ybWF0IjoiTVA0XzEyOCIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3LzUyY2JmNjA5YmFmNzllN2QwY2YyNGUwM2JlZDUyZTBlMjk3MWMxMWEifV19LCJjb250ZW50UmF0aW5nIjp7ImxhYmVsIjoiTk9ORSJ9LCJjb3ZlckFydCI6eyJzb3VyY2VzIjpbeyJoZWlnaHQiOjY0LCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDBmNjhkZWE2ZWI1OWRmNDBhY2Q3NDcyNDg0ZDMxIiwid2lkdGgiOjY0fSx7ImhlaWdodCI6MzAwLCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDA1ZjFmZWE2ZWI1OWRmNDBhY2Q3NDcyNDg0ZDMxIiwid2lkdGgiOjMwMH0seyJoZWlnaHQiOjY0MCwidXJsIjoiaHR0cHM6Ly9pLnNjZG4uY28vaW1hZ2UvYWI2NzY1NjMwMDAwYmE4YWVhNmViNTlkZjQwYWNkNzQ3MjQ4NGQzMSIsIndpZHRoIjo2NDB9XX0sImRlc2NyaXB0aW9uIjoiT3VyIGZyaWVuZCwgS2Vsc2V5LCBzaGFyZXMgd2l0aCB1cyB0b2RheSB3aGF0IGdpdmluZyBiaXJ0aCBpcyBsaWtlIGluIENhbmFkYS4gRnJvbSBtb3ZpbmcgYW5kIHRyYXZlbGluZyBiZXR3ZWVuIHByb3ZpbmNlcywgS2Vsc2V5IGhhZCBleHBlcmllbmNlZCBkaWZmZXJlbnQgbW9kZWxzIG9mIGNhcmUgYW5kIHdoZW4gaXQgY2FtZSB0aW1lIHRvIHByZXBhcmUgZm9yIGhlciBWQkFDLCBzaGUgd2FzIHZlcnkgcHJvYWN0aXZlIGFib3V0IGNob29zaW5nIGEgYmlydGggZW52aXJvbm1lbnQgd2hlcmUgc2hlIGZlbHQgc2FmZXN0LsKgRnJvbSBhIHNjYXJ5IENlc2FyZWFuIHVuZGVyIGdlbmVyYWwgYW5lc3RoZXNpYSB0byBhbiBlbXBvd2VyaW5nIHVubWVkaWNhdGVkIFZCQUMgaW4gYSBiaXJ0aCBjZW50ZXIsIEtlbHNleeKAmXMgam91cm5leSBpcyBlbnRlcnRhaW5pbmcsIGJlYXV0aWZ1bCwgYW5kIHBvd2VyZnVsLiBXZSBsb3ZlIGhlYXJpbmcgdGhlIHVuaXF1ZSBkZXRhaWxzIG9mIGhlciBzdG9yeSBpbmNsdWRpbmcgZ2l2aW5nIGJpcnRoIGF0IHRoZSBzYW1lIHRpbWUgYXMgaGVyIGRvdWxhIGp1c3QgaW4gdGhlIG5leHQgcm9vbSBvdmVyIcKgVGhlIHBlcnNvbmFsaXplZCBjYXJlIHNoZSB3YXMgZ2l2ZW4gZHVyaW5nIGhlciBWQkFDIGlzIHNvIGVuZGVhcmluZyBhbmQgaGVhcnR3YXJtaW5nLiBBcyBoZXIgaHVzYmFuZCBtZW50aW9uZWQsIGl0IHNob3VsZCBiZSB0aGUgZ29sZCBzdGFuZGFyZCBvZiBjYXJlIGFuZCB3ZSBhZ3JlZSHCoFRoZSBWQkFDIExpbmsgQmxvZzogQXNzaXN0ZWQgRGVsaXZlcnlGZXRhbCBUYWNoeWNhcmRpYSBpbiB0aGUgRGVsaXZlcnkgUm9vbUlzIFRoZXJlIFN0aWxsIGEgUGxhY2UgZm9yIEZvcmNlcHMgaW4gTW9kZXJuIE9ic3RldHJpY3M/Rm9yY2VwcyBEZWxpdmVyeSBDb21wbGljYXRpb25zTmVlZGVkIFdlYnNpdGVIb3cgdG8gVkJBQzogVGhlIFVsdGltYXRlIFByZXAgQ291cnNlIGZvciBQYXJlbnRzRnVsbCBUcmFuc2NyaXB0IHVuZGVyIEVwaXNvZGUgRGV0YWlsc8KgMDc6MzYgUmV2aWV3IG9mIHRoZSBXZWVrMDk6MjcgS2Vsc2V54oCZcyBzdG9yaWVzMTE6NDcgTG9naXN0aWNzIG9mIGdpdmluZyBiaXJ0aCBpbiBDYW5hZGExNDozOCBBIG5vcm1hbCBwcmVnbmFuY3kxNzo1MCBBcnJpdmluZyBhdCB0aGUgaG9zcGl0YWwyMTozNyBTdGFsbGluZyBhdCA3IGNlbnRpbWV0ZXJzMjY6MjIgQXN5bmNsaXRpYyBhbmQgT1AgcG9zaXRpb25pbmcyOTozMSBLZWxzZXnigJlzIENlc2FyZWFuIHVuZGVyIGdlbmVyYWwgYW5lc3RoZXNpYTM0OjUwIFNlY29uZCBwcmVnbmFuY3kgYW5kIFZCQUMgcHJlcDQxOjA3IFN3aXRjaGluZyB0byBtaWR3aXZlczQ2OjE0IEJlZ2lubmluZyBvZiBsYWJvcjUxOjA3IERyaXZpbmcgdG8gdGhlIGJpcnRoIGNlbnRlcjU0OjQ5IFB1c2hpbmcgYmFieSBvdXQgaW4gdHdvIHB1c2hlczE6MDA6MjQgRGlmZmVyZW5jZXMgaW4gY2FyZTE6MDI6MTEgRW50ZXJvdmlydXMxOjA4OjAyIFJpc2sgZmFjdG9ycyBmb3IgZm9yY2VwcyBhbmQgdmFjdXVtIGRlbGl2ZXJpZXNNZWFnYW46IEhlbGxvLCBXb21lbiBvZiBTdHJlbmd0aC4gV2UgaGF2ZSBvdXIgZnJpZW5kLCBLZWxzZXksIGZyb20gQ2FuYWRhLiBJcyB0aGF0IGNvcnJlY3Q/wqBLZWxzZXk6IFllcy4gWWVhaC7CoE1lYWdhbjogU2hl4oCZcyBzaGFyaW5nIGhlciBzdG9yeSB3aXRoIHlvdSBndXlzIHRvZGF5LiBTb21ldGhpbmcgYWJvdXQgaGVyIGZpcnN0IHN0b3J5IG9mIGhlciBDLXNlY3Rpb24gdGhhdCBzdG9vZCBvdXQgdG8gbWUgd2FzIHRoYXQgc2hlIGhhZCBhIGZvcmNlcHMgYXR0ZW1wdCB0aGF0IGRpZG7igJl0IHdvcmsgb3V0LiBTb21ldGltZXMgdGhhdCBoYXBwZW5zLiBJIHdhbnQgdG8gdGFsayBhIGxpdHRsZSBiaXQgYWJvdXQgZm9yY2VwcyBoZXJlIGluIGp1c3QgYSBtaW51dGUgYmVmb3JlIHdlIGdldCBpbnRvIGhlciBzdG9yeS4gS2Vsc2V5LCBJIHdhbnRlZCB0byBhc2sgeW91IHRoYXQgdGhpcyBpcyBzb21ldGhpbmcgdGhhdCBpbiBvdXIgZG91bGEgcHJhY3RpY2Ugd2Ugd2lsbCBhc2sgb3VyIGNsaWVudHMuIElmIGl0IGNvbWVzIGRvd24gdG8gYW4gYXNzaXN0ZWQgYmlydGggd2l0aCBmb3JjZXBzIG9yIGEgdmFjdXVtLCB3aGF0IHdvdWxkIHlvdSBwcmVmZXI/IEl04oCZcyBhIHdlaXJkIHRoaW5nIGJlY2F1c2UgeW914oCZcmUgbGlrZSwgV2VsbCwgSeKAmW0gbm90IHBsYW5uaW5nIG9uIHRoYXQsIGJ1dCBhIGxvdCBvZiBwZW9wbGUgYWN0dWFsbHkgYW5zd2VyLCDigJxJIHdvdWxkIHJhdGhlciBub3QgZG8gdGhvc2UgYW5kIGdvIHN0cmFpZ2h0IHRvIGEgQy1zZWN0aW9uLuKAnSBTb21lIHBlb3BsZSBhcmUgbGlrZSwg4oCcSSB3b3VsZCByYXRoZXIgZG8gZXZlcnkgbGFzdC1kaXRjaCBlZmZvcnQgYmVmb3JlIEkgZ28gdG8gYSBDLXNlY3Rpb24u4oCdwqBEaWQgeW91IGV2ZXIgdGhpbmsgYWJvdXQgdGhhdCBiZWZvcmU/IEhhZCBpdCBldmVyIGJlZW4gZGlzY3Vzc2VkIGJlZm9yZSBhcyB0aGVpciBzdHlsZT8gVGhhdOKAmXMgYW5vdGhlciB0aGluZy4gU29tZSBwcm92aWRlcnMgYXJlIHJlYWxseSB2YWN1dW0taGFwcHkuIFNvbWUgYXJlIHJlYWxseSBmb3JjZXBzLWhhcHB5LiBJIGtub3cgaXTigJlzIGEgcmFuZG9tIHF1ZXN0aW9uLCBidXQgSSB3YXMganVzdCB3b25kZXJpbmcsIGhhZCB5b3UgZXZlciB0aG91Z2h0IG9mIHRoYXQgYmVmb3JlIGdvaW5nIGludG8gYmlydGg/wqBLZWxzZXk6IFNvIG5vLiBJIGRpZG7igJl0IHRoaW5rIGFib3V0IHdoZXRoZXIgSSB3YW50ZWQgYSBDLXNlY3Rpb24gb3IgYSBmb3JjZXBzIGRlbGl2ZXJ5LiBIb3dldmVyLCBJIHdhcyByZWFsbHkgc3RhdW5jaGx5IGFnYWluc3QgaGF2aW5nIGEgQy1zZWN0aW9uLiBUaGF0IHdhcyBwcmltYXJpbHkgbm90aGluZyBhZ2FpbnN0IGl0LCBpdCB3YXMganVzdCB0aGF0IEkgaGF2ZSBhIHJlYWxseSBodWdlIGZlYXIgb2YgYXdha2Ugc3VyZ2VyeSBzbyB3aXRoIG15IGZvcmNlcHMgYXR0ZW1wdCwgdGhlIE9CIHdobyB3YXMgdGhlcmUgYmVjYXVzZSBpdCB3YXNu4oCZdCBteSBwcm92aWRlci4gVGhhdOKAmXMgbm90IHRoZSB3YXkgQ2FuYWRhIHdvcmtzLiBUaGUgT0Igd2hvIHdhcyB0aGVyZSB3aG8gd2FzIGNhbGxlZCBpbiBzYWlkLCDigJxBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZG8gZm9yY2Vwcz8gWW91IGNvdWxkIHRlYXIu4oCdwqBJIHRvbGQgaGVyLCDigJxJIHdvdWxkIHJhdGhlciB0ZWFyIHRoYW4gaGF2ZSBhIEMtc2VjdGlvbi7igJ0gVGhhdCB3YXMganVzdCBhIHBlcnNvbmFsIHByZWZlcmVuY2UgZm9yIG1lIGJlY2F1c2UgSSB3YXMgc28gdGVycmlmaWVkIG9mIGhhdmluZyBhIEMtc2VjdGlvbi7CoE1lYWdhbjogWWVhaC4gSSB0aGluayB0aGF0IGlzIHZlcnkgY29tbW9uIGFuZCB2ZXJ5IHZhbGlkIHRvIGJlIGxpa2UsIOKAnE5vLCBJIHdvdWxkIHJhdGhlciB0cnkgdGhpcy7igJ3CoEtlbHNleTogWWVhaC7CoE1lYWdhbjogU28gSSBkaWQuIEkgd2FudGVkIHRvIGdvIG92ZXIganVzdCBhIGxpdHRsZSBiaXQuIEkgbWVhbiwgSSBoYXZlIHNlZW4gYSBjb3VwbGUgb2YgZm9yY2VwcyBhbmQgdGhleSBhcmUgbm90IGhhcHBlbmluZyBhcyBvZnRlbiB0aGVzZSBkYXlzLCBidXQgdGhlcmUgd2FzIGFuIGFydGljbGUgdGhhdCBzYWlkLCDigJxJcyB0aGVyZSBzdGlsbCBhIHBsYWNlIGZvciBmb3JjZXBzIGRlbGl2ZXJ5IGluIG1vZGVybiBvYnN0ZXRyaWNzP+KAnSBJ4oCZbSB0cnlpbmcgdG8gc2F5IG9ic3RldHJpY2lhbnMgYW5kIG9ic3RldHJpY3MuIFdl4oCZcmUganVzdCBnb2luZyB0byBzdG9wLsKgS2Vsc2V5OiBXZSBrbm93IHdoYXQgeW91IG1lYW4uwqBNZWFnYW46IFlvdSBrbm93IHdoYXQgSSBtZWFuLiBUaGVyZSB3YXMgYW4gYXJ0aWNsZSBhbmQgSSB3YXMgbGlrZSwgVGhhdOKAmXMgYSByZWFsbHkgZ29vZCBxdWVzdGlvbiwgYmVjYXVzZSBJIHRoaW5rIGEgbG90IG9mIHBlb3BsZSB0aGluayB0aGV5IHNob3VsZG7igJl0IGJlIGRvbmUgYW55bW9yZSBvciBhIHZhY3V1bSBzaG91bGRu4oCZdCBiZSBkb25lIGFueW1vcmUgZWl0aGVyLiBJdCB0YWxrZWQgYSBsaXR0bGUgYml0IGFib3V0IHRoZSBiYWNrZ3JvdW5kLiBpdCBzYXlzLCB0aGF0IG5vd2FkYXlzIHdlIGFyZSBzZWVpbmcgYSBkZWNyZWFzZSBpbiBpbnN0cnVtZW50YWwgZGVsaXZlcmllcyBhbmQgYSBjb250aW51b3VzIGluY3JlYXNlIG9mIENlc2FyZWFuIHJhdGVzLiBUaGF0IG1ha2VzIG1lIHdvbmRlciBpZiB3ZSB3ZXJlIHRvIGluY3JlYXNlIHZhZ2luYWwgYW5kIGhlbHAgaW5zdHJ1bWVudGFsbHkgaWYgdGhhdCB3b3VsZCBkZWNyZWFzZSwgYnV0IG9uZSBvZiB0aGUgdGhpbmdzIHRoYXQgSSB0aG91Z2h0IHdhcyBpbnRlcmVzdGluZyBpcyB0aGF0IGl0IHNheXMsIOKAnFRoZSBwcmV2YWxlbmNlIG9mIGZvcmNlcHMgZGVsaXZlcnkgd2FzIDIuMiUgYW5kIHRoZSBtb3N0IGNvbW1vbiBpbmRpY2F0aW9uIGZvciBhIGZvcmNlcCBkZWxpdmVyeSB3YXMgZmV0YWwgZGlzdHJlc3Mu4oCdIEl0IGlzIHZlcnkgY29tbW9uIHdoZXJlIGl04oCZcyByZWFsbHksIHJlYWxseSBjbG9zZSwgYmFieSBpcyBzdHJ1Z2dsaW5nLiBCYWJ5IGlzIHNvIGxvdyBhbmQgbGV04oCZcyBnZXQgYmFieSBvdXQuwqBUaGF04oCZcyA4MS42JSB3aGljaCBpcyBjcmF6eS4gSXQgc2F5cywg4oCcQW1vbmcgbW90aGVycywgdGhlIG1vc3QgZnJlcXVlbnQgY29tcGxpY2F0aW9uIGlzIHZhZ2luYWwgbGFjZXJhdGlvbizigJ0gd2hpY2ggbWVhbnMgd2UgaGF2ZSB0ZWFyaW5nIGF0IDQxJSBhbmQgdGhpcmQgYW5kIGZvdXJ0aC1kZWdyZWUgcGVyaW5lYWwgdGVhcnMgd2VyZSBub3RlZC4gSXQgc2F5cywg4oCcUmVnYXJkaW5nIG5lb25hdGFsIEFQR0FSIHNjb3JlcywgYXJvdW5kIDggYXJvdW5kIHRoZSBmaXJzdCBhbmQgdGhlIGZpZnRoIG1pbnV0ZSzigJ0gd2hpY2ggaXMgYXJvdW5kIDkxLjIlIGFuZCA5OCUgb2YgbmV3Ym9ybnMgd2hpY2ggaXMgcHJldHR5IGdyZWF0LiBBbiA4IEFQR0FSIGlzIHByZXR0eSBncmVhdC7CoEkgdGhpbmsgYSBsb3Qgb2YgcGVvcGxlIHdvcnJ5IGFib3V0IHRoYXQuIEl0IHNheXMsIOKAnDguOCUgZXhwZXJpZW5jZSBzZXZlcmUgYmlydGggaW5qdXJpZXMgbGlrZSBoZW1hdG9tYXMgYW5kIGNsYXZpY2xlIGZyYWN0dXJlcy7igJ0gVGhvc2UgYXJlIHByb2JhYmx5IHNob3VsZGVyIGR5c3RvY2lhcy4gVGhhdOKAmXMgcHJvYmFibHkgd2h5IHRoZXkgd2VyZSBoYXZpbmcuIEl0IHNheXMsIOKAnEFsdGhvdWdoIGZldGFsIGRpc3RyZXNzIGlzIHRoZSBtb3N0IGNvbW1vbiBpbmRpY2F0aW9uIGZvciBmb3JjZXBzIGRlbGl2ZXJ5LCB0aGUgdmFzdCBtYWpvcml0eSBvZiBuZXdib3JucyB3ZXJlIGFjdHVhbGx5IGluIGdvb2QgY29uZGl0aW9uIGFuZCBkaWRu4oCZdCByZXF1aXJlIE5JQ1UgY2FyZS7igJ3CoFRoYXTigJlzIHNvbWV0aGluZyB0aGF0IHdhcyBraW5kIG9mIGNvb2wuIE9idmlvdXNseSwgdGhlcmUgYXJlIGEgdG9uIG9mIG1vcmUgc3R1ZGllcyBhbmQgZGVlcGVyIHN0dWRpZXMgb24gdGhhdC4gVGhpcyB3YXMganVzdCBvbmUsIGJ1dCBpdCB3YXMga2luZCBvZiBpbnRlcmVzdGluZy4gSXQgd2FzIGxpa2UsIGFsbCByaWdodC4gVGhhdCBpcyBhIGdvb2QgcXVlc3Rpb24gdG8gYXNrIGFzIHdlIGFyZSBwcmVwYXJpbmcgZm9yIFZCQUMgaXMgaGV5LCBpZiBmb3Igc29tZSByZWFzb24gYSBmb3JjZXBzIG9yIGEgdmFjdXVtIGlzIG5lY2Vzc2FyeSwgdGhhdOKAmXMgc29tZXRoaW5nIHRvIHRoaW5rIGFib3V0LiBXaGF0IGRvIHdlIHdhbnQgdG8gZG8gYXQgdGhhdCBwb2ludD/CoEkgbG92ZSBob3cgeW91IHdlcmUgbGlrZSwg4oCcWWVhaCwgSSBkaWRu4oCZdCB3YW50IGEgQy1zZWN0aW9uLiBJIGZlYXJlZCB0aGF0IG1vcmUgdGhhbiBJIGRpZCB0aGF0LuKAnSBBbnl3YXksIGdldHRpbmcgb2ZmIHRoYXQgdG9waWMgbm93IHNvIHdlIGNhbiBnZXQgdGhpcyByZXZpZXcgYW5kIGdldCBvbiB0byB5b3VyIHN0b3J5IGJ1dCBJIHRoaW5rIGl04oCZcyBhIHRvcGljIHdlIGRvbuKAmXQgdGFsayBhYm91dCBhbmQgaXTigJlzIG5vdCBzb21ldGhpbmcgdGhhdCB3ZSBhcmUgdGhpbmtpbmcgYWJvdXQgc28gYXMgeW91IGFyZSBwcmVwYXJpbmcsIFdvbWVuIG9mIFN0cmVuZ3RoLCBmb3IgeW91ciBWQkFDLCBpdCBtaWdodCBiZSBzb21ldGhpbmcgdGhhdCB5b3Ugd2FudCB0byBkaXNjdXNzIGFuZCBsZWFybiBtb3JlIGFib3V0IGJvdGggdmFjdXVtIGFuZCBmb3JjZXBzIGFuZCBkaXNjdXNzIHdpdGggeW91ciBwcm92aWRlciB3aGF0IHRoZWlyIHRvb2wgb2YgY2hvaWNlIGlzIGFuZCBqdXN0IGhhdmUgdGhhdCBpbiB0aGUgYmFjayBvZiB5b3VyIG1pbmQuwqAwNzozNiBSZXZpZXcgb2YgdGhlIFdlZWtNZWFnYW46IE9rYXksIHNvIG9udG8gdG9kYXnigJlzIHJldmlldy4gSXQgaXMgZnJvbSBsYXVyZW5zd2F0IGFuZCBpdCB3YXMgYmFjayBpbiAyMDIzLiBJdCBzYXlzLCDigJxUaGFuayBZb3Uu4oCdIEl0IHNheXMsIOKAnEkgbGlzdGVuZWQgdG8gYXMgbWFueSBlcGlzb2RlcyBhcyBwb3NzaWJsZSB3aGVuIHByZXBhcmluZyBmb3IgbXkgVkJBQy4gVGhlIHN0b3JpZXMgb24gaGVyZSB3ZXJlIHNvIGVuY291cmFnaW5nIHRvIG1lIGFuZCBNZWFnYW4gaXMgc28ga25vd2xlZGdlYWJsZSBhbmQgcmVhc3N1cmluZy4gSSBhbSBoYXBweSB0byBzYXkgdGhhdCBJIGhhZCBteSB1bm1lZGljYXRlZCBob3NwaXRhbCBWQkFDIGxhc3Qgd2VlayBhbmQgSSBjYXVnaHQgbXkgb3duIGJhYnkgYmVmb3JlIHRoZSBkb2N0b3IgZXZlbiBnb3QgaW4gdGhlIHJvb20u4oCdwqBPaCBteSBnb3NoLCB0aGF0IGlzIGF3ZXNvbWUuIFNlcmlvdXNseSwgY2F0Y2hpbmcgeW91ciBvd24gYmFieSBpcyBzbyBhbWF6aW5nLiBJIGxvdmVkIGl0IHBlcnNvbmFsbHkgbXlzZWxmIGFzIHdlbGwgYW5kIGhpZ2hseSBlbmNvdXJhZ2UgaXQgdG8gYW55b25lIHRoYXQgaXMgc29ydCBvZiBpbnRlcmVzdGVkIGJlY2F1c2UgaXQgaXMgYSByZWFsbHkgY29vbCBmZWVsaW5nLiBUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3IGFuZCBhcyBhbHdheXMsIHdlIGFyZSBsb29raW5nIGZvciByZXZpZXdzLiBJdCBpcyB3aGF0IGhlbHBzIHBlb3BsZSBmaW5kIHRoaXMgcG9kY2FzdC4gSXQgaGVscHMgdXMgZ3JvdyBhcyBhIGNvbW11bml0eS4gWW91IGNhbiBsZWF2ZSBpdCBvbiBBcHBsZSwgR29vZ2xlLCBlbWFpbCB1cywgb3Igd2hhdGV2ZXIgYnV0IHdlIGFyZSBzbyBncmF0ZWZ1bCBmb3IgeW91ciByZXZpZXdzLsKgMDk6MjcgS2Vsc2V54oCZcyBzdG9yaWVzTWVhZ2FuOiBPa2F5LCBLZWxzZXkuwqBLZWxzZXk6IFllYWg/IEhpLsKgTWVhZ2FuOiBIZWxsby4gV2VsY29tZSB0byB0aGUgc2hvdy7CoEtlbHNleTogVGhhbmsgeW91LiBJ4oCZbSBzdXBlciwgc3VwZXIgZXhjaXRlZC7CoE1lYWdhbjogTWUgdG9vLiBNZSB0b28uIEkgd291bGQgbG92ZSB0byB0dXJuIHRoZSB0aW1lIG92ZXIgdG8geW91LiBCb3RoIG9mIHlvdXIgYmFiaWVzIHdlcmUgYm9ybiBpbiBDYW5hZGEuIFRoYXTigJlzIGNvcnJlY3QsIHJpZ2h0P8KgS2Vsc2V5OiBZZXMuIFllYWguwqBNZWFnYW46IFRlbGwgdXMgdGhlIHN0b3J5LsKgS2Vsc2V5OiBZZWFoLCBzbyBiYXNpY2FsbHkgbXkgaHVzYmFuZCBhbmQgSSBnb3QgbWFycmllZCBpbiBOb3ZlbWJlciAyMDE5LiBKdXN0IHByaW9yIHRvIHRoYXQsIHdlIGhhZCBhY3R1YWxseSBiZWVuIGxpdmluZyBpbiBOZXcgQnJ1bnN3aWNrLiBKdXN0IHByaW9yIHRvIGdldHRpbmcgbWFycmllZCwgd2UgZGVjaWRlZCB0byBtb3ZlIGJhY2sgYmVjYXVzZSB3ZSBhcmUgZnJvbSBPdHRvd2EuIFdlIG1vdmVkIHRvIE90dG93YS4gV2Ugd2VyZSBsaXZpbmcgd2l0aCBoaXMgcGFyZW50cywgaGlzIGRhZCwgYXQgdGhlIHRpbWUuwqBXZSB3ZW50IHRvIE1leGljbyBmb3Igb3VyIGhvbmV5bW9vbiBhbmQgb24gb3VyIGhvbmV5bW9vbiwgd2UgZGVjaWRlZCB0byBzdGFydCB0cnlpbmcgdG8gaGF2ZSBhIGJhYnkuIFdlIGRlY2lkZWQgdG8gc3RhcnQgdHJ5aW5nIGJ1dCBub3QgcHJldmVudGluZyBpdCBiZWNhdXNlIHdlIHdlcmVu4oCZdCBzdXJlIGhvdyBsb25nIGl0IHdhcyBnb2luZyB0byB0YWtlIGFuZCB0aGVyZSB3YXMgbm8gaW5kaWNhdGlvbiB0aGF0IGl0IGNvdWxkIHRha2UgYSB3aGlsZSBidXQgbXkgaHVzYmFuZCBpcyBhY3R1YWxseSBhbiBJVkYgYmFieS4gSXQgaGFkIHRha2VuIDcgeWVhcnMgZm9yIGhpcyBwYXJlbnRzIHRvIGNvbmNlaXZlIGhpbS7CoE1lYWdhbjogNyB5ZWFycywgd293LiBUaGV5IGFyZSBhbWF6aW5nLiBUaGF04oCZcyBhIGxvbmcgdGltZS7CoEtlbHNleTogSGUgd2FzIGFjdHVhbGx5IHRoZWlyIGxhc3QgYXR0ZW1wdC4gV2hlbiBoaXMgbW9tIGdvdCB1cCB0byBzYXkgb3VyIHdlZGRpbmcgc3BlZWNoLCBzaGUgd2FzIGxpa2UgbXkgMSBpbiA3IG9yIHNvbWV0aGluZyBsaWtlIHRoYXQgYW5kIEkgd2FzIGp1c3QgYmF3bGluZy7CoFNvIGJlY2F1c2Ugb2YgdGhhdCwgd2UgZGVjaWRlZCB0byBzdGFydCB0cnlpbmcgYW5kIG5vdCBwcmV2ZW50aW5nIGJ1dCB0aGVyZSB3YXMgbm90aGluZyBpbmRpY2F0aW5nIGl0IHdvdWxkIHRha2UgdXMgYSB3aGlsZS4gV2Ugc3RhcnRlZCB0cnlpbmcgaW4gRGVjZW1iZXIgb2YgMjAxOSBhbmQgaXQganVzdCB3YXNu4oCZdCBoYXBwZW5pbmcgZm9yIHVzIHNvIGFyb3VuZCB0aGUgeWVhciBtYXJrLCB3ZSBoYWQgYSBsb3Qgb2YgZnJpZW5kcyB3aG8gc3RhcnRlZCB0cnlpbmcgYXJvdW5kIHRoZSBzYW1lIHRpbWUgYXMgdXMgYW5kIHdlcmUgZ2V0dGluZyBwcmVnbmFudCByZWFsbHksIHJlYWxseSBxdWlja2x5LiBJIHdhcyBnb2luZyB0byBzbyBtYW55IGJhYnkgc2hvd2VycyBhbmQgY3JvY2hldGluZyBiYWJ5IGJsYW5rZXRzIHRoYXQganVzdCB3ZXJlbuKAmXQgZm9yIG15IGJhYnkuwqBBY3R1YWxseSwgdGhlIHllYXIgbWFyayByb2xsZWQgYXJvdW5kIGFuZCBJIGdvdCBteSBwZXJpb2QgdGhlIGRheSBvZi4gTXkgYmVzdCBmcmllbmQgZ2F2ZSBiaXJ0aCB0aGUgZGF5IG9mLiBJIHdhcyB0cnlpbmcgc28gaGFyZCB0byBiZSBoYXBweSBhbmQgc3RheSBwb3NpdGl2ZSBhbmQgd2hhdG5vdCwgYnV0IGl0IHdhcyBkZXZhc3RhdGluZy7CoDExOjQ3IExvZ2lzdGljcyBvZiBnaXZpbmcgYmlydGggaW4gQ2FuYWRhS2Vsc2V5OiBXZSBlbmRlZCB1cCBiZWluZyByZWZlcnJlZCB0byBhIGZlcnRpbGl0eSBjbGluaWMuIFRoZXkgZGlkIGEgZnVsbCB3b3JrLXVwIG9uIGJvdGggb2YgdXMgYW5kIHRoZXJlIHdhcyBub3RoaW5nLiBUaGV5IGRpZG7igJl0IGNvbWUgdXAgd2l0aCBhbnl0aGluZy4gU28gdGhleSBzYWlkLCDigJxZb3UgY291bGQga2VlcCB0cnlpbmcgb3Igd2UgY291bGQgc3RhcnQgSVVJLuKAnSBNeSBodXNiYW5kIGFuZCBJIHNhaWQsIOKAnExldOKAmXMgZG8gMyBtb3JlIG1vbnRocyBvZiB0cnlpbmcgb24gb3VyIG93biwgYW5kIHRoZW4gd2Ugd2lsbCB0cnkgZm9yIElVSS7igJ0gT3VyIGZlcnRpbGl0eSBjbGluaWMgd2FzIGluIE9udGFyaW8gYW5kIHdlIGVuZGVkIHVwIG1vdmluZyB0byBHYXRpbmVhdSwgUXVlYmVjIGluIEp1bHkgMjAyMC5UaGUgd2F5IGl0IHdvcmtzIGluIENhbmFkYSBpcyB5b3UgaGF2ZSB5b3VyIGhlYWx0aGNhcmUgd2hpY2ggY292ZXJzLiBZb3UgY2FuIGdvIGludGVyLXByb3ZpbmNpYWxseSBhbmQgZ2l2ZSB5b3VyIGNhcmQgdW5sZXNzIHlvdSBhcmUgZnJvbSBRdWViZWMuIElmIHlvdSBhcmUgZnJvbSBRdWViZWMsIGl04oCZcyBraW5kIG9mIGxpa2UgbGl2aW5nIGluIGFub3RoZXIgY291bnRyeS4gSWYgeW91IGhhdmUgYSBSQU1RIGNhcmQsIHlvdSBhY3R1YWxseSBoYXZlIHRvIHBheSBmb3IgeW91ciBjYXJlIGluIE9udGFyaW8uwqBUaGUgUXVlYmVjIGdvdmVybm1lbnQgd2lsbCByZWltYnVyc2UgeW91IGJ1dCBvbmx5IGZvciAzMCUuIEl04oCZcyBzdXBlciB3ZWlyZC4gSWYgeW91IGFyZSBmcm9tIE9udGFyaW8gYW5kIGdvIHRvIFF1ZWJlYywgdGhlIE9udGFyaW8gZ292ZXJubWVudCB3aWxsIGNvdmVyIHlvdSBpbiBRdWViZWMuwqBNZWFnYW46IFdoYXQ/IFNvIHdlaXJkLiBUaGlzIHdvcmxkIGlzIHNvIHdlaXJkLsKgS2Vsc2V5OiBJIGtub3cuIEl04oCZcyBzdXBlciBiaXphcnJlLiBTbyBlc3NlbnRpYWxseSB3ZSBtb3ZlZCB0byBHYXRpbmVhdSBiZWNhdXNlIHRoZSBob3VzaW5nIG1hcmtldCB3YXMgYSBsaXR0bGUgbGVzcyBleHBlbnNpdmUuIEkgd2FzIHdvcmtpbmcgaW4gR2F0aW5lYXUgYXQgdGhlIHRpbWUgYXMgYSB0ZWFjaGVyLiBJIHdhcyBleHRyZW1lbHkgc3RyZXNzZWQgb3V0IGluIG15IGpvYiBlc3BlY2lhbGx5IG9uY2UgQ09WSUQgaGl0LiBXZSB3ZXJlIHNlbnQgYmFjayB0byB0aGUgY2xhc3Nyb29tIGJlZm9yZSBhbnkgb2YgdGhlIG90aGVyIHByb3ZpbmNlcyB3ZXJlLsKgQW55d2F5LCBJIHdhcyBleHRyZW1lbHkgc3RyZXNzZWQgb3V0IGluIG15IGpvYiBhbmQgSSBkZWNpZGVkIHRvIHN3aXRjaCB0byB0aGUgT250YXJpbyBzaWRlIGJlY2F1c2UgeW91IGNhbiBnbyBiZXR3ZWVuIHRoZSB0d28uIFdoZXJlIEkgbGl2ZWQsIHlvdSBjcm9zcyBhIGJyaWRnZSBhbmQgeW91IGNhbiBnZXQgdG8gT3R0YXdhIHNvIHlvdSBhcmUgaW4gT250YXJpby7CoEVzc2VudGlhbGx5LCB3ZSB3ZW50IHRocm91Z2ggdGhlIGZlcnRpbGl0eSBjbGluaWMuIFRoZXkgc2FpZCB0aGF0IG5vdGhpbmcgd2FzIGdvaW5nIG9uIGJ1dCBiZWNhdXNlIHRoZSBHYXRpbmVhdSBnb3Zlcm5tZW50IHdpbGwgY292ZXIgeW91IGZvciBJVkYgYW5kIGFueSBmZXJ0aWxpdHkgdHJlYXRtZW50cyB1cCB0byBhIGNlcnRhaW4gcHJpY2Ugc28gd2UgaGFkIHRvIGJlIHJlZmVycmVkIGJhY2sgdG8gUXVlYmVjIGZvciBJVUkuIFRoZSBtb250aCB0aGF0IHdlIHdlcmUgcmVmZXJyZWQgYmFjayB0byBRdWViZWMgZm9yIElVSSwgaXQgd2FzIHRoZSBkYXkgYmVmb3JlIG15IGFwcG9pbnRtZW50IHRoYXQgSSBmb3VuZCBvdXQgSSB3YXMgcHJlZ25hbnQuwqBNZWFnYW46IE9oIG15IGdvc2gsIHlheSHCoEtlbHNleTogWWVhaCwgb24gb3VyIG93bi4gSXQgc3VwZXIganVzdCBoYXBwZW5lZCBhbmQgc29tZSB3ZWlyZCBmdW5ueSB0aGluZ3MgaGFwcGVuZWQuIFRoZSBkYXkgYmVmb3JlLCBteSBodXNiYW5kIGFuZCBJIHdlbnQgZm9yIGEgd2FsayBhcm91bmQgb3VyIG5laWdoYm9yaG9vZC4gSSBmb3VuZCBhIHF1YXJ0ZXIgYW5kIHdhcyBsaWtlIElmIHBlbm5pZXMgYXJlIGx1Y2t5LCB0aGVuIHF1YXJ0ZXJzIG11c3QgYmUgc3VwZXIgbHVja3kuIEkgcGlja2VkIHVwIHRoZSBxdWFydGVyIGFuZCBwdXQgaXQgaW4gbXkgcG9ja2V0IGFuZCB0aGUgZGF5IGFmdGVyLCBJIGZvdW5kIG91dCBJIHdhcyBwcmVnbmFudC7CoFRoZXNlIHdlaXJkIHRoaW5ncyBrZXB0IGhhcHBlbmluZy4gTXkgcHJlZ25hbmN5IG1hZGUgbWUgb2RkbHkgcHN5Y2hpYyB0b28gd2hpY2ggSeKAmWxsIGdldCBpbnRvIGFmdGVyLsKgMTQ6MzggQSBub3JtYWwgcHJlZ25hbmN5S2Vsc2V5OiBJIGdvdCBwcmVnbmFudCBpbiBNYXJjaC4gSSB3YXMgZHVlIE5vdmVtYmVyIDI4dGguIEkgaGFkIGEgc3VwZXIgZWFzeSBwcmVnbmFuY3kuIEkgd2FzIG5hdXNlb3VzIGZvciB0aGUgZmlyc3QgbGl0dGxlIGJpdC4gSSB3YXMgd29ya2luZyBmb3IgYSB2aXJ0dWFsIHNjaG9vbCBpbiBPbnRhcmlvIHNvIEkgZGlkbuKAmXQgaGF2ZSB0byBnbyBpbnRvIHRoZSBzY2hvb2wgd2hpY2ggd2FzIHJlYWxseSBuaWNlLiBJIGp1c3QgZ290IHRvIGhhbmcgb3V0IGluIG15IGJhc2VtZW50IGFuZCB5ZWFoLiBJIG1haW5seSBoYWQgbmF1c2VhIGFzIGEgc3ltcHRvbSBidXQgSSB3YXMgYWxzbyBleHRyZW1lbHkgYW54aW91cyBiZWNhdXNlIGl0IGhhZCB0YWtlbiB1cyBzbyBsb25nIHRvIGdldCBwcmVnbmFudC4gSXQgZmVsdCBsaWtlIGl0IHdhcyBzbyBsb25nLiBJdCB3YXMgYWJvdXQgMTUgbW9udGhzLsKgSSB3YXMgc3VwZXIgYW54aW91cy4gSSBoYWQgaGVhcmQgc28gbWFueSBzdG9yaWVzIG9mIG1pc2NhcnJpYWdlIGFuZCB3aGF0bm90LCBidXQgbHVja2lseSwgd2Ugd2VyZSBmb2xsb3dlZCBieSB0aGUgZmVydGlsaXR5IGNsaW5pYyBiZWNhdXNlIHdlIHdlcmUgd2l0aCB0aGVtIHNvIHdlIGhhZCBhIHNjYW4gYXQgNSB3ZWVrcyBhbmQgd2UgaGFkIGEgc2NhbiBhdCA4IHdlZWtzIGFuZCB0aGVuIGF0IDEyIHdlZWtzIG9uY2Ugd2UgZ3JhZHVhdGVkIHdoaWNoIHdhcyByZWFsbHkgbmljZS7CoEl0IHdhcyBhIHJlYWxseSwgcmVhbGx5IG5vcm1hbCBwcmVnbmFuY3kuIEkgZW5kZWQgdXAgZ29pbmcgYmFjayBpbnRvIHRoZSBzY2hvb2wgaW4gU2VwdGVtYmVyIGFuZCBJIHdhcyB3b3JraW5nIGFzIGEgRnJlbmNoIHRlYWNoZXIuIEkgd2VudCBvZmYgd29yayBhdCAzNiB3ZWVrcy4gSXQgd2FzIHByZXR0eSBub3JtYWwuIFRoZSByZWFzb24gSSBzYXkgdGhhdCBJIHdhcyBwc3ljaGljIGR1cmluZyBteSBwcmVnbmFuY3kgaXMgdGhhdCBJIGtlcHQgc2F5aW5nIGFsbCBvZiB0aGVzZSB0aGluZ3MgYWJvdXQgbXkgYmFieS7CoEkgaGFkIHRoaXMgZ3V0IGluc3RpbmN0IHRoYXQgaGUgd2FzIGEgYm95IGFuZCBzdXJlIGVub3VnaCwgaXQgd2FzIGEgYm95LiBNaW5kIHlvdSwgaXTigJlzIGJlY2F1c2UgbXkgaHVzYmFuZOKAmXMgZmFtaWx5IG9ubHkgcmVhbGx5IGhhcyBib3lzIGJ1dCB0aGVuIHdpdGggY2VydGFpbiB0aGluZ3MsIHBlb3BsZSB3b3VsZCBzYXksIOKAnFdoZW4gZG8geW91IHRoaW5rIGhlIHdpbGwgYmUgYm9ybj/igJ0gSeKAmWQgYmUgbGlrZSwg4oCcT2gsIEkgdGhpbmsgRGVjZW1iZXIgNHRoLuKAnSBJIHdvdWxkIG1ha2Ugb2ZmLWhhbmQgY29tbWVudHMgbGlrZSwg4oCcT2gsIGhl4oCZcyBnb2luZyB0byBoYXZlIHJlYWxseSBkYXJrIGhhaXIu4oCdIE15IGh1c2JhbmQgYW5kIEkgd2VyZSBib3RoIGJvcm4gYXQgNTowMC4gSSB3YXMgYm9ybiBhdCA1OjAwIGF0IG5pZ2h0LiBIZSB3YXMgYm9ybiBhdCA1OjAwIGluIHRoZSBtb3JuaW5nLiBJIHNhaWQsIOKAnFdvdWxkbuKAmXQgaXQgYmUgZnVubnkgaWYgaGUgd2FzIGJvcm4gYXQgNTowMD/igJ3CoEkgc2FpZCwg4oCcSGXigJlzIGdvaW5nIHRvIGJlIG92ZXIgOSBwb3VuZHMuIEkgY2FuIGp1c3QgZmVlbCBpdC4gSGXigJlzIGdvaW5nIHRvIGJlIDkgcG91bmRzLuKAnSBUaGVuIHRoZSBvdGhlciB3ZWlyZCB0aGluZyBpcyB0aGF0IEkgc2FpZCBoZSB3b3VsZCBiZSBib3JuIERlY2VtYmVyIDR0aCwgYnV0IHNvbWVvbmUgdG9sZCBtZSwg4oCcTm8sIHlvdSBkb27igJl0IHdhbnQgaGltIHRvIGJlIGJvcm4gb24gRGVjZW1iZXIgNHRoLiBIZSB3aWxsIHNoYXJlIGEgYmlydGhkYXkgd2l0aCB5b3VyIGNvdXNpbi7igJ0gSSB3YXMgbGlrZSwg4oCcT2theSwgRGVjZW1iZXIgM3JkLuKAncKgRGVjZW1iZXIgM3JkIHJvbGxzIGFyb3VuZCBhbmQgSSBhbSA1IGRheXMgcGFzdCBteSBkdWUgZGF0ZS4gSSB3YWtlIHVwIGluIHRoZSBtb3JuaW5nIHRvIGdvIHRvIHRoZSB3YXNocm9vbSBhbmQgbXkgd2F0ZXIgYnJlYWtzLiBJIGhhZCBub3QgYmVlbiB3ZWxsLWluZm9ybWVkIGFib3V0IGJpcnRoLiBJIHdhcyBqdXN0IGdvaW5nIGludG8gaXQgbGlrZSwgWWVhaC4gRXZlcnl0aGluZyBpcyBnb2luZyB0byBiZSBmaW5lLiBJIGhhZCBhIGJ1bmNoIG9mIGZyaWVuZHMgd2hvIGp1c3QgaGFkIGJhYmllcyBhbmQgZXZlcnl0aGluZyB3YXMgc21vb3RoIHNhaWxpbmcuwqBUaGUgb25seSB0aW1lIEkgaGFkIGhlYXJkIG9mIGEgQy1zZWN0aW9uIHdhcyB3aGVuIG15IGF1bnQgaGFkIHR3byBDLXNlY3Rpb25zIGJlY2F1c2Ugc2hlIGhhZCBhIGJyZWVjaCBiYWJ5IGFuZCBhIHNwZWNpYWwgc2NhciBhbmQgdGhlbiB0aGV5IGRpZG7igJl0IGdpdmUgaGVyIGFuIG9wdGlvbiBmb3IgYSBDLXNlY3Rpb24uIEkgd2FzIGxpa2UsIE9oIHllYWguIEl04oCZcyBnb2luZyB0byBiZSBmaW5lLsKgTXkgcHJvdmlkZXIgdG9sZCBtZSwg4oCcSWYgeW91ciB3YXRlciBicmVha3MsIGdvIHN0cmFpZ2h0IHRvIGxhYm9yIGFuZCBkZWxpdmVyeS7igJ3CoE1lYWdhbjogTWFueSBkbywgYnkgdGhlIHdheS7CoEtlbHNleTogWWVzLCBJIGRvIGtub3cgdGhhdC7CoE1lYWdhbjogSXTigJlzIGEgdmVyeSBub3JtYWwgdGhpbmcgZm9yIHBlb3BsZSB0byBzYXksIGJ1dCB3ZSBkb27igJl0IGhhdmUgdG8gZG8gdGhhdC7CoEtlbHNleTogRXhhY3RseS7CoE1lYWdhbjogSSBkaWQgdGhlIHNhbWUgdGhpbmcsIHRoZSBzYW1lIGV4YWN0IHRoaW5nLsKgMTc6NTAgQXJyaXZpbmcgYXQgdGhlIGhvc3BpdGFsS2Vsc2V5OiBZZWFoLCBzbyB3ZSB3ZW50IGludG8gbGFib3IgYW5kIGRlbGl2ZXJ5LiBBY3R1YWxseSwgd2Ugd2VudCBzbG93bHkuIE15IGh1c2JhbmQgd2FzIGxpa2UsIOKAnEnigJltIGdvaW5nIHRvIHRha2UgYSBzaG93ZXIu4oCdIEkgd2FzIHVuZGVyIHRoZSBpbXByZXNzaW9uIHRoYXQgYmFieSB3YXMgZ29pbmcgdG8gYmUgYm9ybiBpbiBhIGNvdXBsZSBvZiBob3Vycy4gSSB3YXMgbGlrZSwg4oCcV2XigJl2ZSBnb3QgdG8gZ28u4oCdIEhlIHdhcyBsaWtlLCDigJxObywgbm8uIEnigJl2ZSBnb3QgdG8gdGFrZSBhIHNob3dlci4gRmlyc3QgaW1wcmVzc2lvbnMgYXJlIGltcG9ydGFudC7igJ0gSSB3YXMgbGlrZSwg4oCcQWxsIHJpZ2h0LuKAncKgVGhlbiB3ZSB3ZW50IGFuZCB3ZSBnb3QgVGltIEhvcnRvbuKAmXMgYmVjYXVzZSBJIHdhcyBzdXBlciBodW5ncnkuIEkgZmlndXJlZCBUaGlzIHdpbGwgYmUgdGhlIGxhc3QgdGltZSBJIGVhdC5XZSBnb3QgdG8gbGFib3IgYW5kIGRlbGl2ZXJ5LiBUaGV5IG1vbml0b3JlZCBtZSBmb3IgdHdvIGhvdXJzIGFuZCBJIGRpZG7igJl0IGhhdmUgYSBjb250cmFjdGlvbiB1bnRpbCA2OjAwIHJpZ2h0IGFzIEkgd2FzIGxlYXZpbmcgYW5kIEkgd2FzIG9ubHkgYSBjZW50aW1ldGVyIGRpbGF0ZWQuIFNoZSB3YXMgbGlrZSwg4oCcQ29tZSBiYWNrIGluIDEyIGhvdXJzIG9yIHNvb25lciBpZiB5b3VyIGNvbnRyYWN0aW9ucyBnZXQgaW50ZW5zZS7igJ3CoFNvIEkgd2VudCBob21lLiBJIGRlY2lkZWQgdG8gZ28gdG8gc2xlZXAgYnV0IEkgd2FzIGhhdmluZyBpcnJlZ3VsYXIgY29udHJhY3Rpb25zLiBJIHdva2UgdXAgcHJvYmFibHkgYXJvdW5kIG5vb24gYW5kIEkgd2FzIHN0YXJ0aW5nIHRvIGdldCB1bmNvbWZvcnRhYmxlLiBNeSBjb250cmFjdGlvbnMgd2VyZSBzdGFydGluZyB0byBnZXQgY2xvc2VyIHRvZ2V0aGVyIGFuZCB0aGV5IHdlcmUgbW9yZSBpbnRlbnNlLiBJIGNvdWxkIGZlZWwgdGhlbSBpbiBteSBiYWNrIGFuZCBpbiBteSBidW0uIEkgbGVhcm5lZCBhIGxlc3Nvbi4gQW55d2F5LCBJ4oCZbGwgZ2V0IGludG8gdGhhdCBhZnRlci7CoEkgY291bGQgZmVlbCB0aGVtIG1vc3RseSBpbiBteSBiYWNrIGFuZCBpbiBteSBidW0uIE15IGh1c2JhbmQgd2FzIGxpa2UsIOKAnFlvdSBsb29rIGxpa2UgeW914oCZcmUgcmVhbGx5IHVuY29tZm9ydGFibGUuIFdlIG5lZWQgdG8gZ28gdG8gdGhlIGhvc3BpdGFsIG5vdy7igJ0gSGUgd2FzIGFmcmFpZCBvZiBnZXR0aW5nIHN0dWNrIGluIHRyYWZmaWMgYmVjYXVzZSBJIGVuZGVkIHVwIGdpdmluZyBiaXJ0aCBpbiBPbnRhcmlvIGV2ZW4gdGhvdWdoIHdlIGxpdmVkIGluIFF1ZWJlYy4gVGhlIHJlYXNvbiBpcyB0aGUgaG9zcGl0YWwgSSBnYXZlIGJpcnRoIGF0IGFjdHVhbGx5IHRha2VzIHlvdXIgUkFNUSBjYXJkLCB0aGUgUXVlYmVjIGhlYWx0aGNhcmUgY2FyZCBzbyB3ZSB3ZXJlbuKAmXQgZ29pbmcgdG8gYmUgY2hhcmdlZCBmb3IgaXQgb3IgYW55dGhpbmcuIFRoZSBHYXRpbmVhdSBob3NwaXRhbHMgYXJlIG5vdCBrbm93biBmb3IgYmVpbmcgc3VwZXIgd2VsbC1lcXVpcHBlZCBmb3IgbXVjaCBzbyB3ZSBwcmVmZXJyZWQgdG8gZ2l2ZSBiaXJ0aCBpbiBPbnRhcmlvLsKgV2UgZHJvdmUgdG8gT250YXJpbyB3aGljaCB3YXMgYSAzMC1taW51dGUgZHJpdmUgc28gbm90IHN1cGVyIHRlcnJpYmxlLCBidXQgdHJhZmZpYyBjYW4gYmUgYmFkIGdvaW5nIGFjcm9zcyB0aGUgYnJpZGdlIHNvbWV0aW1lcy4gVGhlIHdob2xlIHdheSB0aGVyZSwgSSBoYWQgcmVhbGx5IHVuY29tZm9ydGFibGUgY29udHJhY3Rpb25zLsKgV2UgZ290IHRvIHRoZSBob3NwaXRhbCBhbmQgdGhlIGRvY3RvciBoYWQgbWUgaW4gdGhlIHdhaXRpbmcgcm9vbSBmb3IgMzAgbWludXRlcywgbm90IHRlcnJpYmxlLiBUaGUgZG9jdG9yIG1lZXRzIHdpdGggdXMgYW5kIGltbWVkaWF0ZWx5LCBJIGp1c3Qgd2FzIG5vdCBpbnRvIGhpbS4gSGUganVzdCBwdXQgbWUgb2ZmLiBIZSBtYWRlIGFuIG9mZi1oYW5kIGNvbW1lbnQgYWJvdXQgbnVyc2VzLiBIZSB3YXMgbGlrZSwg4oCcSSBzZWUgcGFpbi4gRG8geW91IHdhbnQgcGFpbiBtZWRpY2F0aW9uPyBEbyB5b3Ugd2FudCBBZHZpbCBvciBUeWxlbm9sP+KAnSBJIHdhcyBsaWtlLCDigJxXaGF0ZXZlciB5b3UgY2FuIGdpdmUgbWUsIEkgZG9u4oCZdCBrbm93LuKAnSBJIHRvbGQgaGltLCDigJxPbmUgb2YgdGhlIHRoaW5ncyBnb2luZyBpbnRvIGl0IGlzIHRoYXQgbXkgaHVzYmFuZCB3b3VsZCByZWFsbHkgbGlrZSB0byBjYXRjaCB0aGUgYmFieS4gQ2FuIHdlIGRvIHRoYXQ/4oCdwqBIZSB3YXMgbGlrZSwg4oCcV2VsbCwgZG8geW91IHRoaW5rIHlvdSBjYW4gaGFuZGxlIGl0P+KAnSBJ4oCZbSBsaWtlLCDigJxXZWxsLCBoZSB3YXMgYSBmaXJlZmlnaHRlciBzbyBoZeKAmXMgcHJldHR5IG9rYXkgd2l0aCB0aGF0IGtpbmQgb2Ygc3R1ZmYu4oCdIFllYWguIEkgY2Fu4oCZdCBldmVuIHJlbWVtYmVyIHRoZSBjb21tZW50IG5vdywgYnV0IGhlIG1hZGUgYW4gb2ZmaGFuZCBjb21tZW50IGxpa2UsIOKAnFdlbGwsIHRoYXTigJlzIHdoYXQgbnVyc2VzIGFyZSBmb3Is4oCdIG9yIHNvbWV0aGluZyBsaWtlIHRoYXQuIEkganVzdCB3YXMgc3VwZXIgcHV0IG9mZiBieSBoaW0uwqBXZSB3ZW50IGludG8gb3VyIHJvb20gYW5kIEkgZGlkbuKAmXQga25vdyBhdCB0aGUgdGltZSB0aGF0IG1heWJlIEkgY291bGQgaGF2ZSBhc2tlZCBmb3Igc29tZW9uZSBkaWZmZXJlbnQgb3Igd2hhdGV2ZXIuIFdlIGdvIGludG8gb3VyIHJvb20gYW5kIHdlIGdldCBzZXQgdXAgYW5kIHRoZXkgd2VyZSBsaWtlLCDigJxXZSBoYXZlIHRvIG1vbml0b3IgeW91IGZvciBhIGxpdHRsZSBiaXQu4oCdIEkgd2FzIGxpa2UsIOKAnEnigJlkIHJlYWxseSBsaWtlIHRvIGxhYm9yIGluIHRoZSB0dWIuIENhbiBJIGdldCBpbiB0aGUgdHViP+KAnSBUaGV5IHNhaWQsIOKAnFdlIG5lZWQgdGhlIG1vbml0b3Igb24geW91IGZvciBhbiBob3VyLuKAnSBJ4oCZbSBsaWtlLCDigJxPa2F5LuKAncKgVGhleSBtb25pdG9yIG1lIGZvciBhbiBob3VyLiBUaGV5IGdpdmUgbWUgYSBzaG90IG9mIERlbWVyb2wgb3Igd2hhdGV2ZXIuIEkgd2FzIHVuZGVyIHRoZSBpbXByZXNzaW9uIGFuZCBteSBtaW5kc2V0IGdvaW5nIGludG8gaXQgd2FzIHRoYXQgd2hlbiB5b3UgZ2l2ZSBiaXJ0aCwgeW91IHVzZSBwYWluIG1lZGljYXRpb24gYXMgcGFpbiBtYW5hZ2VtZW50LiBJIGhhZG7igJl0IHJlc2VhcmNoZWQgYW55dGhpbmcgZWxzZS4gSSB3YXMganVzdCBsaWtlLCDigJxJIHdhbnQgdGhlIGVwaWR1cmFsIGFzIHNvb24gYXMgSSBjYW4gZ2V0IGl0IGFuZCB3aGF0ZXZlciB5b3UgY2FuIGdpdmUgbWUgZm9yIHRoZSBwYWluIGlzIGdyZWF0LuKAncKgMjE6MzcgU3RhbGxpbmcgYXQgNyBjZW50aW1ldGVyc0tlbHNleTogSSB3YXMgbW9uaXRvcmVkIGZvciBhYm91dCBhbiBob3VyIGFuZCB0aGV5IGxldCBtZSBnZXQgaW4gdGhlIHR1Yi4gRm9yIHR3byBob3VycywgSSBsYWlkIGluIHRoZSB0dWIgYW5kIHRoYXTigJlzIG15IGJlc3QgbWVtb3J5IG9mIG15IGJpcnRoIHdpdGggbXkgZmlyc3QuIEkgbGFpZCBpbiB0aGUgdHViIGFuZCBsaXN0ZW5lZCB0byBtdXNpYy4gTXkgaHVzYmFuZCBhbmQgSSB3ZXJlIGluIHRoZSBkYXJrLiBJdCB3YXMgdmVyeSBjYWxtLCBzb290aGluZywgYW5kIHJlbGF4aW5nLiBXaGVuIEkgZ290IG91dCwgdGhlIGRvY3RvciB3YXMgbGlrZSwg4oCcV2UgbmVlZCB0byBjaGVjayB5b3Uu4oCdIEhlIGNoZWNrZWQgbWUgYW5kIEkgd2FzIGF0IGEgMSBidXQgaGUgY291bGQgc3RyZXRjaCBtZSB0byBhIDMuIEhlIHNhaWQsIOKAnElmIHlvdSB3YW50IHlvdXIgZXBpZHVyYWwsIHlvdSBjYW4gaGF2ZSBpdCBub3cu4oCdSSBkaWRu4oCZdCBrbm93IGFueSBiZXR0ZXIgc28gSSBzYWlkLCDigJxZZWFoLCBva2F5LiBHaXZlIG1lIHRoZSBlcGlkdXJhbC7igJ0gT3Zlcm5pZ2h0LCBJIHdhcyBwcm9ncmVzc2luZyAyIGNlbnRpbWV0ZXJzIGV2ZXJ5IDIgaG91cnMuIFdlIGdvdCB0byAzOjAwIGluIHRoZSBtb3JuaW5nLiBJIHRvbGQgYSBudXJzZSwg4oCcSSBmZWVsIGEgbG90IG9mIHByZXNzdXJlIGluIG15IGJ1bS7igJ0gSSBzYWlkLCDigJxJIGZlZWwgbGlrZSBJIGhhdmUgdG8gcHVzaC7igJ0gU2hlIGNoZWNrZWQgbWUgYW5kIHNoZSB3YXMgbGlrZSwg4oCcTm8sIG5vLiBZb3XigJlyZSBvbmx5IGF0IGEgNy7igJ0gNTowMCBBTSByb2xscyBhcm91bmQuIE15IG51cnNlIGNvbWVzIGluIGFnYWluIGFuZCBzaGUgY2hlY2tzIG1lIGFuZCBzaGXigJlzIGxpa2UsIOKAnE9oLCB5b3XigJlyZSBhdCBhIDku4oCdIEFub3RoZXIgbnVyc2UgY29tZXMgaW4gcmlnaHQgYWZ0ZXIgYW5kIHNoZSBzYXlzLCDigJxTaGXigJlzIG5vdCBhdCBhIDkuIFNoZeKAmXMgYXQgYSA3LuKAnVRoZSB0d28gb2YgdGhlbSB3ZXJlIGxpa2UsIOKAnFdlIG5lZWQgdG8gZ2V0IGEgZG9jdG9yIGluIGhlcmUgdG8gY29uZmlybS7igJ0gSXTigJlzIDU6MDAgQU0uIFRoZSBkb2N0b3IgZGlkbuKAmXQgc2hvdyB1cCB1bnRpbCBjbG9zZSB0byA3OjQ1LiBIZeKAmXMgbGlrZSwg4oCcSeKAmW0gbm90IGdvaW5nIHRvIGNoZWNrIHlvdSBiZWNhdXNlIHRoZSBjaGFuZ2VvdmVyIHdpbGwgaGFwcGVuIGluIDE1IG1pbnV0ZXMgYW5kIHRoZSBuZXcgZG9jdG9yIGlzIGdvaW5nIHRvIGNoZWNrIHlvdS4gSSBkb27igJl0IHdhbnQgdG8gaW50cm9kdWNlIGFueSBtb3JlIGJhY3RlcmlhLuKAncKgVGhlIG5ldyBkb2N0b3IgY2FtZSBpbiBhdCA4OjMwLiBTaGUgY2hlY2tlZCBtZSBhbmQgc2hlIGdvZXMsIOKAnE5vLCB5b3XigJlyZSBzdGlsbCBhdCBhIDcuIFlvdeKAmXZlIGJlZW4gc3R1Y2sgYXQgYSA3IGZvciBhIGZldyBob3Vycy4gV2UgcmVhbGx5IG5lZWQgdG8gc3RhcnQgdGFsa2luZyBhYm91dCBhIEMtc2VjdGlvbi7igJ0gSXQgd2FzIHRoZSBmaXJzdCB0aW1lIHNoZSBoYWQgc2VlbiBtZS4gSSBoYWQgYmVlbiBseWluZyBpbiBhIGJlZCBub3cgZm9yIGFsbW9zdCAxMiBob3Vycy4gVGhleSBnYXZlIG1lIHRoZSBwZWFudXQgYmFsbCBmb3IgMiBob3VycyBhbmQgdGhlbiB0aGV5IHRvb2sgaXQgYXdheSBJIHRoaW5rIGJlY2F1c2UgbXkgc29u4oCZcyBoZWFydCByYXRlIGhhZCBzdGFydGVkIHRvIGdvIGZ1bm55IG9yIHRoZXkgbG9zdCBpdCBvciBzb21ldGhpbmcgbGlrZSB0aGF0IGJ1dCBoZSB3YXMgZG9pbmcgZmluZS7CoFRoZXkgbG9zdCBpdCBiZWNhdXNlIGhlIG1vdmVkIG9yIHdoYXRldmVyLiBUaGV5IHRvb2sgdGhlIHBlYW51dCBiYWxsIGF3YXkgYW5kIG5vdGhpbmcgc2hvd2VkIHRoYXQgaGUgd2FzIHVuZGVyIGFueSBkaXN0cmVzcyBhdCBhbGwgYnV0IHNoZSB3YXMgbGlrZSwg4oCcWW914oCZdmUgYmVlbiBzdHVjayBhdCA3IGZvciBhIHdoaWxlIHNvIEkgd2FudCB5b3UgdG8gdGFsayBhYm91dCBpdCB3aXRoIHlvdXIgaHVzYmFuZC7igJ0gSSB3YXMgaW4gdGVhcnMgYmVjYXVzZSBhZ2FpbiwgdGhlIHdob2xlIHRpbWUsIGFsbCBJIHNhaWQgdG8gbXkgb3duIHByb3ZpZGVyIHdhcywg4oCcSSBkb27igJl0IHdhbnQgYSBDLXNlY3Rpb24uIEkgZG9u4oCZdCBjYXJlIHdoYXQgaGFwcGVucy4gSSBkb27igJl0IHdhbnQgYSBDLXNlY3Rpb24u4oCdwqBTbyBJ4oCZbSBpbiB0ZWFycy4gU2hl4oCZcyBsaWtlLCDigJxUYWxrIGFib3V0IGl0IHdpdGggeW91ciBodXNiYW5kLuKAnSBTaGUgY29tZXMgYmFjayBhbiBob3VyIGxhdGVyIGFuZCB3ZSB3ZXJlIGxpa2UsIOKAnFdlIHdhbnQgdG8gd2FpdCBhIGxpdHRsZSBiaXQgbG9uZ2VyLuKAnSBTaGUgZ29lcywg4oCcT2theSwgd2hhdCB3ZeKAmXJlIGdvaW5nIHRvIGRvIGlzIHB1dCB5b3Ugb24gdGhlIGhpZ2hlc3QgZG9zZSBvZiBQaXRvY2luLuKAnSBTaGUgd2FzIGxpa2UsIOKAnFdl4oCZcmUgZ29pbmcgdG8gc3RhcnQgeW91IG9uIFBpdG9jaW4gYW5kIGV2ZXJ5IDUgbWludXRlcywgd2XigJlyZSBnb2luZyB0byBpbmNyZWFzZSBpdCB1bnRpbCB5b3XigJlyZSBhdCB0aGUgaGlnaGVzdCBkb3NlLiBUaGVuIHdl4oCZbGwgd2FpdCAyIGhvdXJzLCBjaGVjayB5b3UgYWdhaW4sIGFuZCBpZiB5b3UgaGF2ZW7igJl0IGdvbmUgYW55d2hlcmUsIHlvdeKAmWxsIGhhdmUgdG8gaGF2ZSBhIEMtc2VjdGlvbi7igJ3CoEkgZGlkbuKAmXQga25vdyBhbnkgYmV0dGVyIHNvIEkgd2FzIGxpa2UsIOKAnE9rYXku4oCdIFRoZXkgc3RhcnRlZCBtZSBvbiB0aGUgUGl0b2NpbiBidXQgSeKAmW0gaGF2aW5nIGludGVuc2UgcGFpbiBhbmQgcHJlc3N1cmUgaW4gbXkgYnVtLiBJ4oCZbSBsaWtlLCDigJxJIGZlZWwgbGlrZSBJIGhhdmUgdG8gcHVzaC4gTXkgYm9keSBmZWVscyBsaWtlIGl0IGlzIHB1c2hpbmcu4oCdIEkga25ldyB0aGF0IGlmIHlvdSBwdXNoZWQgdG9vIHNvb24sIHlvdXIgY2Vydml4IHdvdWxkIHN3ZWxsLiBUaGF04oCZcyBvbmUgb2YgdGhlIGZldyB0aGluZ3MgSSBkaWQga25vdy7CoFRoZXkgcHV0IG1lIG9uIFBpdG9jaW4gYW5kIEkgd2FzIGNyeWluZyBiZWNhdXNlIEkgd2FzIHBhbmlja2luZy4gTXkgaHVzYmFuZCB3YXMgaGF2aW5nIHRvIHB1c2ggbXkgYm9sdXMgZXZlcnkgMTUgbWludXRlcyB3aGVuIGl0IGNhbWUgb24gYmVjYXVzZSBJIGNvdWxkIGZlZWwgZXZlcnl0aGluZyB0aHJvdWdoIHRoZSBlcGlkdXJhbC4gVGhlIG51cnNlIHdhcyBub3Qgc3VwZXIga2luZCBhYm91dCBpdC4gU2hlIHdhcyBsaWtlLCDigJxZb3UgbmVlZCB0byBzdG9wIHB1c2hpbmcuIElmIEkgY2hlY2sgeW91IG5vdyBhbmQgeW914oCZcmUgbm90IGFuIDgsIHRoZW4geW914oCZcmUgZ29pbmcgdG8gaGF2ZSBhIEMtc2VjdGlvbi7igJ3CoFNoZSBqdXN0IHdhcyBub3Qgb3Zlcmx5IGNvbXBhc3Npb25hdGUgb3IgYW55dGhpbmcuIFdlbGwsIGZpbmFsbHksIHNoZSBzdWdnZXN0cywg4oCcV2h5IGRvbuKAmXQgd2UgcHV0IHlvdSBvbiB5b3VyIGhhbmRzIGFuZCBrbmVlcz/igJ0gU2hlIHB1dCBtZSBvbiBteSBoYW5kcyBhbmQga25lZXMgYW5kIEkgZmVsdCBpbW1lZGlhdGUgcmVsaWVmLiBTb21ldGhpbmcgY2hhbmdlZCBpbiBiYWJ54oCZcyBwb3NpdGlvbi4gSSBzYXQgdGhlcmUgYW5kIEkgd2FzIGFibGUgdG8gdGFsay4gSSB3YXMgY29tZm9ydGFibGUgYW5kIEkgd2FzIGZpbmUuIEkgdGhpbmsgd2UgZ290IHRvIGFuIGhvdXIgYW5kIGEgaGFsZiBhbmQgdGhlbiB0aGV5IGNoZWNrZWQgbWUgYmVjYXVzZSB3aGF0IGhhcHBlbmVkIHdhcyB0aGV5IHB1dCBtZSBvbiBteSBoYW5kcyBhbmQga25lZXMgYW5kIG15IGZlZXQgbG9zdCBjaXJjdWxhdGlvbiBhbmQgdHVybmVkIHB1cnBsZSBhbmQgd2VudCBudW1iLsKgWWVhaCwgc28gdGhlbiB0aGV5IHB1dCBtZSBvbiBteSBiYWNrIGFnYWluLiBUaGV5IGNoZWNrZWQgbWUgYW5kIHRoZXkgd2VyZSBsaWtlLCDigJxPaCwgeW914oCZcmUgYXQgYSA5LjUu4oCdIEnigJltIGxpa2UsIOKAnFllcy7igJ0gSSBwcm9ncmVzc2VkLsKgMjY6MjIgQXN5bmNsaXRpYyBhbmQgT1AgcG9zaXRpb25pbmdLZWxzZXk6IEZpbmFsbHksIHdlIGdvdCB0byAxMCBjZW50aW1ldGVycyBhbmQgSSB3YXMgYSB0eXBpY2FsIHlvdSBwdXNoIG9uIHlvdXIgYmFjayB0eXBlIG9mIHRoaW5nLiBUaGUgZG9jdG9yIHNhaWQsIOKAnFdlIGNhbm5vdCB3YWl0IHRvIGxldCBiYWJ5IGRlc2NlbmQuIFlvdXIgd2F0ZXIgaGFzIGJlZW4gYnJva2VuIHRvbyBsb25nLuKAnSBUaGVuIHNoZSBjaGVja3MgbWUgYW5kIHNoZeKAmXMgbGlrZSwg4oCcT2ggeWVhaCwgYW5kIGJhYnnigJlzIE9QLuKAnSBJIHNob3VsZCBoYXZlIGxlYXJuZWQuIEhhZCBJIGRvbmUgbXkgcmVzZWFyY2gsIEkgd291bGQgaGF2ZSBrbm93biBhbGwgdGhhdCBwcmVzc3VyZSB3YXMgbXkgT1AgYmFieS7CoFNvIHNoZSBzYWlkLCDigJxCYWJ5IGlzIE9QLiBXZeKAmXJlIGdvaW5nIHRvIHN0YXJ0IHB1c2hpbmcu4oCdIEkgd2FzIHNvIGZydXN0cmF0ZWQgYnkgaGVyIGJlY2F1c2Ugc2hlIHdvdWxkIGxlYXZlIHRoZSByb29tIGFuZCB0aGVuIHNoZeKAmWQgY29tZSBiYWNrIGFuZCBzaGXigJlkIHNpdCB0aGVyZSBqdXN0IHdpdGggaGVyIGhhbmQgaW5zaWRlIG9mIG1lIGFuZCBjaGVja2luZyBoZXIgd2F0Y2ggYW5kIHN0dWZmLiBTaGUgd2FzIGp1c3Qgd2FpdGluZyBmb3IgdGhlIGhvdXJzIHRvIHBhc3MuIEnigJltIGRvaW5nIGV2ZXJ5dGhpbmcgSSBjYW4uwqBPbmNlIHRoZXkgdG9sZCBtZSB0aGF0IEkgY291bGQgcHVzaCwgSSB3YXMgbGlrZSwg4oCcWWVzLiBMZXTigJlzIGdldCB0aGlzIGJhYnkgb3V0LuKAnSBJIHB1c2hlZCBmb3IgMy41IGhvdXJzIGFuZCB0aGVuIHRoZXkgc2FpZCwg4oCcV2XigJlsbCBnaXZlIHlvdSAzMCBtb3JlIG1pbnV0ZXMgYW5kIGlmIHlvdSBjYW5ub3QgZ2V0IGJhYnkgb3V0IGluIDMwIG1pbnV0ZXMsIHdl4oCZbGwgdHJ5IGZvcmNlcHMgYnV0IHdl4oCZbGwgbmVlZCBhbiBPQiB0byBjb21lIGluIGJlY2F1c2UgaWYgZm9yY2VwcyBmYWlsLCB5b3Ugd2lsbCBoYXZlIGEgQy1zZWN0aW9uLuKAncKgSSBkZWNpZGVkIHRvIHB1c2ggZm9yIDMwIG1vcmUgbWludXRlcyBhbmQgdGhlIG51cnNlIGNhbWUgaW4gYW5kIHNhaWQsIOKAnExldOKAmXMgZmxpcCB5b3Uu4oCdIFRoZXkgZmxpcHBlZCBtZSBhZ2FpbiBhbmQgSSBsb3N0IGFsbCBvZiBteSBwcm9ncmVzcy4gVGhleSBoYWQgYWxzbyB0b2xkIG1lIHRoYXQgbm90IG9ubHkgd2FzIGJhYnkgT1AgYnV0IGhlIHdhcyBhc3luY2xpdGljIHNvIGhpcyBoZWFkIHdhcyB0aWx0ZWQgdG8gdGhlIHNpZGUuIFRoZXkgc2FpZCwg4oCcVGhhdOKAmXMgcHJvYmFibHkgd2hhdOKAmXMgaGFwcGVuaW5nLuKAnSBCdXQgd2hlbiBJIGZsaXBwZWQsIEkgbG9zdCBteSBwcm9ncmVzcy4gVGhlcmUgd2FzIGEgbmV3IG51cnNlIHdobyBjb3VsZG7igJl0IGZpZ3VyZSBvdXQgaG93IHRvIGdldCB0aGUgbW9uaXRvciBvbiBtZSBzbyBJIGNvdWxkbuKAmXQgcHVzaCBpbiB0aGF0IHRpbWUuIFRoZXkgd2VyZSBsaWtlLCDigJxXZWxsLCB3ZeKAmXJlIGdvaW5nIHRvIHN0b3AgcHVzaGluZyBiZWNhdXNlIHdoYXRldmVyLuKAncKgMzAgbWludXRlcyBwYXNzZWQgYW5kIEkgaGFkIGxvc3QgYWxsIG9mIG15IHByb2dyZXNzLiBUaGV54oCZcmUgbGlrZSwg4oCcT2theSwgd2XigJlyZSBnb2luZyB0byBnZXQgdGhlIE9CIGluLuKAnSBTaGUgY29tZXMgaW4gYW5kIHNoZSBzYXlzLCDigJxZb3UgY291bGQgdGVhci7igJ0gSSBzYWlkLCDigJxJIHdvdWxkIHJhdGhlciB0ZWFyIHRoYW4gaGF2ZSBhIEMtc2VjdGlvbi4gSSBkb27igJl0IHdhbnQgdG8gaGF2ZSBhIEMtc2VjdGlvbi7igJ3CoFRoZW4gSSBzYWlkLCDigJxXaGF0IGFyZSB0aGUgY2hhbmNlcyB0aGF0IHRoaXMgd2lsbCB3b3JrP+KAnSBTaGUgc2FpZCwg4oCcSSB3b3VsZG7igJl0IGRvIGl0IGlmIEkgZGlkbuKAmXQgdGhpbmsgaXQgd291bGQgd29yay7igJ0gQXMgc2hlIHRyaWVkIHRvIGdldCB0aGUgZm9yY2VwcyBvbiwgSSBjb3VsZCBmZWVsIG15IGJvZHkgcHVzaGluZy4gSeKAmW0gbGlrZSwg4oCcQ2FuIEkgcHVzaD8gQ2FuIEkgcHVzaD/igJ0gU2hl4oCZcyBsaWtlLCDigJxObywgZG9u4oCZdCBwdXNoIHJpZ2h0IG5vdy7igJ3CoE15IGJvZHkgaXMgZG9pbmcgaXQgZm9yIG1lIGFuZCBzaGUgY2Fu4oCZdCBnZXQgdGhlIGZvcmNlcHMgb24gc28gc2hl4oCZcyBsaWtlLCDigJxJIGNhbuKAmXQgZG8gaXQu4oCdIEFzIHNoZSB3YXMgdHJ5aW5nIHRvIHB1dCB0aGUgZm9yY2VwcyBvbiwgYmFieSBzdGFydGVkIGdldHRpbmcgdGFjaHljYXJkaWMgc28gdGhleSBzYWlkLCDigJxUaGluZ3MgYXJlIGdvaW5nIHRvIGdldCByZWFsbHkgc2NhcnkgZm9yIGEgbWludXRlIGJlY2F1c2UgdGhpcyBpcyBhbiBlbWVyZ2VuY3kgQy1zZWN0aW9uLiBBIGxvdCBvZiBwZW9wbGUgYXJlIGNvbWluZyBpbiBoZXJlIGFuZCB3ZSBoYXZlIHRvIHR1cm4gb24gYWxhcm1zIGluIHRoZSBoYWxsd2F5IGJlY2F1c2Ugd2UgaGF2ZSB0byBnZXQgeW91IHRvIHRoZSBPUiByZWFsbHkgcXVpY2tseS7igJ3CoE1lYWdhbjogV2FpdCwgc28gYmFieeKAmXMgaGVhcnQgcmF0ZSBpcyBoaWdoIG5vdCBsb3csIGFuZCBqdXN0IGJlY2F1c2UgYmFieeKAmXMgaGVhcnQgcmF0ZSB3ZW50IGEgbGl0dGxlIGhpZ2gsIHRoZXkgdHJlYXRlZCBpdCBhcyBhIHRydWUgZW1lcmdlbmN5LsKgS2Vsc2V5OiBZZXMuwqBNZWFnYW46IE9rYXkuwqAyOTozMSBLZWxzZXnigJlzIENlc2FyZWFuIHVuZGVyIGdlbmVyYWwgYW5lc3RoZXNpYUtlbHNleTogVGhleSBzdGFydCB0aHJvd2luZyBjbG90aGVzIGF0IG15IGh1c2JhbmQuIFRoZXJlIHdlcmUgcGVvcGxlIHBpbGluZyBpbi4gSeKAmW0gaW4gYSBob3NwaXRhbCB0aGF0IGlzIEZyZW5jaC1zcGVha2luZy4gSSBjYW4gc3BlYWsgRnJlbmNoIGJ1dCBub3QgbWVkaWNhbCB0ZXJtaW5vbG9neS4gTm9ib2R5IGlzIHRhbGtpbmcgdG8gbWUuIFRoZXnigJlyZSBhbGwganVzdCB0YWxraW5nIGFyb3VuZCBtZSBhbmQgdGhleeKAmXJlIHJ1c2hpbmcgbWUgZG93biB0aGUgaGFsbHdheS4gSeKAmW0gYmF3bGluZyBhbmQgSeKAmW0gbGlrZSwg4oCcSSBkb27igJl0IHdhbnQgdGhpcy7igJ0gSSBoYXZlIG5vIGlkZWEgd2hlcmUgbXkgaHVzYmFuZCBpcy4gVGhleeKAmXJlIHRyeWluZyB0byBwdXNoIG15IGxlZ3MgdG9nZXRoZXIgYnV0IGJhYnkgaXMgc28gbG93IHRoYXQgaXQgaHVydHMgdG8gZG8gdGhhdC4gSeKAmW0gdGVsbGluZyB0aGVtIHRvIHN0b3AgYW5kIHdoYXRub3QuwqBXZSBnZXQgaW50byB0aGUgT1IgYW5kIEkgd2FzIGluY29uc29sYWJsZSBiZWNhdXNlIEkgd2FzIHRlcnJpZmllZC4gVGhleSBnYXZlIG1lIG15IHNwaW5hbCB3aGljaCBkaWRu4oCZdCB0YWtlLiBUaGV5IGdhdmUgbWUgdGhlIHBpbmNoIHRlc3QgYW5kIEkgd2FzIGxpa2UsIOKAnEkgY2FuIGZlZWwgaXQuIEkgY2FuIGZlZWwgaXQu4oCdIEnigJltIGNyeWluZywg4oCcUGxlYXNlIGp1c3QgcHV0IG1lIG91dC4gSSBkb27igJl0IHdhbnQgdG8gYmUgYXdha2UgZm9yIHRoaXMuIEnigJltIHNjYXJlZC7igJ0gVGhleeKAmXJlIG5vdCB0YWxraW5nIHRvIG1lIGFuZCB0aGF04oCZcyB0aGUgbGFzdCB0aGluZyBJIHJlbWVtYmVyIGlzIHNheWluZywg4oCcSSBjYW4gZmVlbCB0aGF0LOKAnSBhbmQgdGhleSBwdXQgbWUgb3V0LsKgSSB3YXMgdW5kZXIgZ2VuZXJhbCBhbmVzdGhlc2lhIGFuZCBJIHdva2UgdXAgMiBob3VycyBsYXRlciBpbiByZWNvdmVyeSBieSBteXNlbGYuIEl0IHdhcyBDT1ZJRC4gSXQgd2FzIGluIERlY2VtYmVyIDIwMjEuIE15IGh1c2JhbmQgY291bGRu4oCZdCBiZSB0aGVyZS4gSSBhc2tlZCB3aGVyZSBoZSB3YXMgYW5kIHRoZXkgc2FpZCwg4oCcT2gsIGhl4oCZcyBpbiB5b3VyIHJvb20gd2l0aCB5b3VyIGJhYnkuIEV2ZXJ5dGhpbmcgaXMgZmluZS7igJ0gSSB3YXMgc29iYmluZy4gVGhlIGZpcnN0IHRoaW5nIHNoZSBzYWlkIHRvIG1lIHdhcywg4oCcRXZlcnl0aGluZyB3ZW50IGdyZWF0LiBZb3UgYXJlIGEgZ3JlYXQgY2FuZGlkYXRlIGZvciBhIFZCQUMu4oCdIFRoYXQgc3R1Y2sgd2l0aCBtZS7CoFRoZSB3aG9sZSB3YXkgYmFjayB0byBteSByb29tLCBJIHdhcyBzdGFyaW5nIGF0IHRoZSBjZWlsaW5nLiBJIGNvdWxkbuKAmXQgbG9vayBhdCBhbnlvbmUuIEkgd2FzIGp1c3QgZGV2YXN0YXRlZCBieSBob3cgZXZlcnl0aGluZyBoYWQgZ29uZS4gSSBkaWRu4oCZdCB0aGluayBJIGNvdWxkIGV2ZXIgbG9vayBhdCBteSBodXNiYW5kIG9yIG15IGJhYnkgZXZlciBhZ2Fpbi4gSSB3YXMganVzdCBsaWtlLCBXaGF0IGhhcHBlbmVkP0kgaGVhciBteSBodXNiYW5kLiBIZSBpcyBsaWtlLCDigJxZb3UgbmVlZCB0byBzZWUuIE91ciBiYWJ5IGlzIGhlcmUuIFlvdSBzaG91bGQgc2VlIGhpbS4gSGUgaXMgc28gYmVhdXRpZnVsLiBIZSBoYXMgdGhlIG1vc3QgYmVhdXRpZnVsIGV5ZXMu4oCdIEhlIGNhbWUgYXJvdW5kIHRvIG15IGJlZCBhbmQgaGUgcGFzc2VkIG1lIG15IHNvbiBhbmQgbm90aGluZyBtYXR0ZXJlZC4gTm9uZSBvZiBpdCBtYXR0ZXJlZC4gSGUgd2FzIDkgcG91bmRzLCA4IG91bmNlcyBzbyBJIHdhcyByaWdodC4gSGUgd2FzIGJvcm4gb24gRGVjZW1iZXIgNHRoIHdoaWNoIEkgaGFkIHNhaWQgYXQgNToxMSBQTS7CoE1lYWdhbjogT2ggbXkgZ29zaC7CoEtlbHNleTogWWVhaC4gSGUgaGFkIGEgZnVsbCBoZWFkIG9mIGRhcmsgaGFpci4gSGUgd2FzIGJvcm4gaW4gYSBzbm93c3Rvcm0uIFRoYXQgd2FzIHRoZSBvdGhlciB0aGluZy4gSSBzYWlkLCDigJxIZeKAmXMgZ29pbmcgdG8gYmUgYm9ybiBpbiBhIHNub3dzdG9ybSzigJ0gYmVjYXVzZSBteSBodXNiYW5kIGFuZCBJIHdlcmUgYm90aCBib3JuIGR1cmluZyBhIHNub3dzdG9ybSBhbmQgaGUgd2FzIGJvcm4gZHVyaW5nIGEgc25vd3N0b3JtLsKgWWVhaCwgaGUgd2FzIHBlcmZlY3QuIEhlIHdhcyBodWdlIGFuZCBoZSB3YXMgY2h1bmt5IGFuZCBoZSBsb29rZWQgZXhhY3RseSBsaWtlIG1lLiBOb3JtYWxseSwgdGhleSBsb29rIGxpa2UgdGhlaXIgZGFkcyBpcyB3aGF0IEnigJl2ZSBoZWFyZCBidXQgaGUgbG9va2VkIGV4YWN0bHkgbGlrZSBtZSBhbmQgd2FzIHNvIGJlYXV0aWZ1bC7CoFRocm91Z2hvdXQgbXkgcHJlZ25hbmN5LCBJIGRvbuKAmXQgbGlrZSBiZWluZyBwcmVnbmFudCBiZWNhdXNlIEkgZG9u4oCZdCBsaWtlIHNoYXJpbmcgbXkgYm9keSBJ4oCZdmUgbGVhcm5lZC4gVGhyb3VnaG91dCBteSBwcmVnbmFuY3ksIEkgc2FpZCwg4oCcSSBkb27igJl0IHdhbnQgYW5vdGhlci4gSSBkb27igJl0IHRoaW5rIEkgd2FudCBhbm90aGVyLuKAnSBXaGVuIGhlIHdhcyBib3JuIGFuZCBJIGhlbGQgaGltLCBJIHdhcyBsaWtlLCDigJxJIHdpbGwgZG8gdGhpcyBhZ2FpbiBpbiBhIGhlYXJ0YmVhdC7igJ3CoDM0OjUwIFNlY29uZCBwcmVnbmFuY3kgYW5kIFZCQUMgcHJlcEtlbHNleTogUG9zdHBhcnR1bSB3YXMgZ29vZC4gSSBlbmRlZCB1cCBzdGFydGluZyB0aGVyYXB5IDUgZGF5cyBhZnRlciBteSBDLXNlY3Rpb24uIEhlIGxhdGNoZWQgYW5kIGhlIGRpZCBub3QgaGF2ZSBicmVhc3RtaWxrIGZvciBoaXMgZmlyc3QgZmVlZCB3aGljaCBtYWtlcyBtZSByZWFsbHkgc2FkLiBJIHdhcyBkZXZhc3RhdGVkIGZyb20gdGhlIEMtc2VjdGlvbiBiZWNhdXNlIEkgZGlkbuKAmXQgZ2V0IHRvIHNlZSBteSBiYWJ5IGJlIGJvcm4uIEkgZGlkbuKAmXQgZ2V0IHRvIGhlYXIgaGlzIGZpcnN0IGNyeS4gSSBkaWRu4oCZdCBnZXQgdG8gdG91Y2ggaGltIGZpcnN0IGFuZCBteSBodXNiYW5kIHdhc27igJl0IHRoZXJlLiBIZSB3YXNu4oCZdCBhbGxvd2VkIHRvIGJlIGluIHRoZSByb29tLsKgUG9zdHBhcnR1bSB3YXMgZmluZS4gSSB3YXMgc2VyaW91c2x5IGFuZW1pYy4gSSB3YXMgaW5jcmVkaWJseSBzd29sbGVuLiBJIGhhZCBubyBrbmVlcyBiZWNhdXNlIEkgd2FzIG9uIGZsdWlkcyBmb3Igc28gbG9uZyBhbmQgZ2V0dGluZyBhcm91bmQgd2FzIGF3ZnVsLCBidXQgSSBqdXN0IGZvY3VzZWQgb24gb3VyIGJhYnkuIEhlIHdhcyBwZXJmZWN0LiBIZSB3YXMgc28gZWFzeSBhbmQgNiB3ZWVrcyByb2xsZWQgYXJvdW5kIGFuZCBJIHdhcyBsaWtlLCDigJxMZXTigJlzIGhhdmUgYW5vdGhlci7igJ0gQnV0IHdlIHdhaXRlZC7CoFdlIGRlY2lkZWQgYXJvdW5kIDkgbW9udGhzIHRvIHN0YXJ0IHRyeWluZyBhZ2FpbiBhbmQgbG9vc2VseSB0cnlpbmcgYmVjYXVzZSBhZ2Fpbiwgd2Ugd2VyZSB3b25kZXJpbmcgaG93IGxvbmcgaXQgd291bGQgdGFrZS7CoE1lYWdhbjogUmlnaHQuwqBLZWxzZXk6IFdlIGVuZGVkIHVwIHRyeWluZyBnb3QgNiBtb250aHMgYW5kIEkgZ290IHByZWduYW50IGluIEFwcmlsIG9mIDIwMjMuIE15IGR1ZSBkYXRlIHdhcyBEZWNlbWJlciAyOXRoLiBBZ2Fpbiwgc3VwZXIsIHN1cGVyIGVhc3kgcHJlZ25hbmN5IHRocm91Z2hvdXQuIEltbWVkaWF0ZWx5IGFmdGVyIG15IEMtc2VjdGlvbiwgSSBkZWNpZGVkIHRvIGxvb2sgaW50byBWQkFDIGJlY2F1c2UgdGhhdCBzdHVjayBpbiBteSBoZWFkLiBJIGhhZCBiZWVuIGxpc3RlbmluZyB0byBhIGRpZmZlcmVudCBiaXJ0aCBzdG9yeSBwb2RjYXN0LiBJIHNlYXJjaGVkIGZvciBWQkFDcyBhbmQgdGhlcmUgd2VyZW7igJl0IG1hbnkgYW5kIHRoZW4gSSBzZWFyY2hlZCBWQkFDIGluIGdlbmVyYWwgb24gU3BvdGlmeSBhbmQgY2FtZSBhY3Jvc3MgeW91IGd1eXMuSSBzdGFydGVkIGxpc3RlbmluZyB0byBWQkFDcyBiZWZvcmUgZ2V0dGluZyBwcmVnbmFudCBhbmQgSSBzdGFydGVkIGRvaW5nIGxvdHMgb2YgcmVzZWFyY2ggYWJvdXQgaXQuIEkgbGVhcm5lZCBhYm91dCB0aGUgY2FzY2FkZSBvZiBpbnRlcnZlbnRpb25zIGFuZCBob3cgbXkgY2FzZSB3YXMgcmVhbGx5IHR5cGljYWwuIEkgc3RhcnRlZCBsZWFybmluZyBhYm91dCBPUCBiYWJpZXMgYW5kIGhvdyB0aGUgcGFpbiBJIHdhcyBmZWVsaW5nIGNvcnJlbGF0ZWQgd2l0aCB0aGF0LiBJIHdhbnRlZCB0byB0cnkgZm9yIGEgYmlydGggaW4gYSBiaXJ0aGluZyBjZW50ZXIuwqBOb3csIHdoZW4gSSBnb3QgcHJlZ25hbnQgd2l0aCBteSBzZWNvbmQgYmFieSwgSSB3YXMgbGl2aW5nIGluIEdhdGluZWF1IGJ1dCB3ZSBoYWQgYSBidW5jaCBvZiBzdHVmZiBoYXBwZW4uIE15IG1vdGhlci1pbi1sYXcgZW5kZWQgdXAgc3BsaXR0aW5nIHVwIHdpdGggaGVyIGh1c2JhbmQuIFdlIHNhaWQsIEhleSwgbGV04oCZcyBidXkgYSBob3VzZSBpbiBPbnRhcmlvIHRvZ2V0aGVyIGFuZCB3ZeKAmWxsIG1vdmUgaW4uwqBJIGZvdW5kIG91dCBJIHdhcyBwcmVnbmFudCBhYm91dCAyIHdlZWtzIGJlZm9yZSB3ZSBwdXQgaW4gYW4gb2ZmZXIgb24gYSBob3VzZSBhbmQgd2UgbW92ZWQgaW4gaW4gSnVseSB3aGVuIEkgd2FzIDE1IHdlZWtzIHByZWduYW50LiBBdCB0aGUgdGltZSwgbXkgR1Agd2FzIG15IHByb3ZpZGVyIGZvciBteSBmaXJzdCBhbmQgSSBzdGFydGVkIG9mZiB3aXRoIGhlciB3aXRoIG15IHNlY29uZCBhcyB3ZWxsLiBUaGUgdGhpbmcgd2FzIHdoZW4gSSBmb3VuZCBvdXQgSSB3YXMgcHJlZ25hbnQsIEkgd2VudCB0byBoZXIuIFNvcnJ5LCBJIHNob3VsZCBoYXZlIHNhaWQuwqBBZnRlciBteSBDLXNlY3Rpb24sIEkgd2VudCB0byBoZXIgYW5kIHNhaWQsIOKAnEkgd2FzIHRvbGQgSSB3YXMgYSBnb29kIGNhbmRpZGF0ZSBmb3IgYSBWQkFDLuKAnSBTaGUgc2FpZCwg4oCcWWVzLCBidXQgeW91IGNhbm5vdCBnbyBvdmVyIHlvdXIgZHVlIGRhdGUuIFdl4oCZcmUgZ29pbmcgdG8gbW9uaXRvciB5b3VyIGJhYnkgdG8gc2VlIGhvdyBiaWcgaXQgaXMgYmVjYXVzZSB5b3UgaGFkIGEgYmlnIGJhYnkgYmVmb3JlLiBZb3UgY2Fubm90IGJlIGluZHVjZWQuIFlvdSBuZWVkIHRvIGhhdmUgMTggbW9udGhzIGJldHdlZW4gcHJlZ25hbmNpZXMu4oCdIFR5cGljYWwuwqBNZWFnYW46IEFsbCBvZiB0aGUgcmVkIGZsYWdzLsKgS2Vsc2V5OiBZZWFoLiBUaGlzIHdhcyBiZWZvcmUgSSBzdGFydGVkIGxpc3RlbmluZyB0byB5b3VyIHBvZGNhc3QuIFRoZW4gSSBzdGFydGVkIGxpc3RlbmluZyB0byB5b3VyIHBvZGNhc3QgYW5kIHdoZW4gSSB3ZW50IGluIHRvIHNlZSBoZXIgd2hlbiBJIGZvdW5kIG91dCBJIHdhcyBwcmVnbmFudCBiZWZvcmUgSSBoYWQgZ29uZSBpbnRvIGEgYmlydGhpbmcgY2VudGVyLCBJIHNhaWQgdG8gaGVy4oCTIGFuZCBJ4oCZbSBub3QgYW4gb3V0c3Bva2VuIHBlcnNvbi4gSSBzdHJ1Z2dsZSB0byBhZHZvY2F0ZSBmb3IgbXlzZWxmLiBJIHNhaWQsIOKAnEkgd2FudCB0byB0cnkgZm9yIGEgVkJBQywgYnV0IEkgZG8gbm90IHdhbnQgeW91IHRvIHB1dCBsaW1pdGF0aW9ucyBvbiBtZS7igJ0gSSBzYWlkLCDigJxJIGtub3cgdGhhdCBJIGNhbiBzYWZlbHkgaGF2ZSBhIFZCQUMgZXZlbiBpZiB0aGVyZSBpcyBsZXNzIHRoYW4gMTggbW9udGhzIGJldHdlZW4gbXkgcHJlZ25hbmNpZXMuwqBGcm9tIGJpcnRoIHRvIGJpcnRoLCBpdCB3YXMgMiB5ZWFycyBhbmQgYSBiaXQgc28gaXQgZGlkbuKAmXQgbWF0dGVyLiBJIHNhaWQsIOKAnEkga25vdyB0aGF0IGJpZyBiYWJpZXMgYXJlIDEwIHBvdW5kcysuIFRoYXQgaXMgbWFjcm9zb21pYS4gSSBrbm93IHRoYXQu4oCdIEkgc2FpZCwg4oCcSSBrbm93IHRoYXQgSSBjYW7igJl0IGJlIGluZHVjZWQu4oCdIEluIENhbmFkYSwgdGhleSBnZW5lcmFsbHkgZG9u4oCZdCBkbyBQaXRvY2luIGZvciBWQkFDcyBhdCBhbGwuIFRoZXkgZG9u4oCZdCBnZW5lcmFsbHkgaW5kdWNlIGZvciBWQkFDcyBhdCBhbGwuIEkgc2FpZCwg4oCcSSBkbyBrbm93IHRoYXQgdGhlcmUgYXJlIHNhZmUgd2F5cyB0byBpbmR1Y2UgdGhvdWdoIGFuZCBJIGRvIGtub3cgdGhhdCBJIGNhbiBzYWZlbHkgZ28gcGFzdCBteSBkdWUgZGF0ZS7igJ0gU2hlIHNhaWQsIOKAnEkgYmVsaWV2ZSBpbiBpbmZvcm1lZCBjb25zZW50IGFuZCBpZiB5b3UgdW5kZXJzdGFuZCBhbGwgb2YgdGhpcywgSSB0aGluayB0aGF0IHlvdSBhcmUgd2VsbCBwcmVwYXJlZCBhbmQgd2UgY2FuIG1vdmUgZm9yd2FyZCB3aXRoIGEgVkJBQy7igJ0gSSBzYWlkLCDigJxHcmVhdC7igJ0gSSBoYWQgYXBwbGllZCBmb3IgYmlydGhpbmcgY2VudGVycyBwcmlvciB0byB0aGlzIGJ1dCBpdCBpcyByZWFsbHkgaGFyZCB0byBnZXQgaW50byB0aGVtIGhlcmUuIEkgZW5kZWQgdXAgYmVpbmcgYWJsZSB0byBnZXQgaW50byBvbmUgaW4gR2F0aW5lYXUuIEkgd2FzIGNvbmNlcm5lZCBhYm91dCBtb3Zpbmcgb3ZlciBjcm9zcy1wcm92aW5jZXMgYWdhaW4uIEl0IGVuZGVkIHVwIHdvcmtpbmcgb3V0LiBJIGRpZCBzdGljayB3aXRoIG15IEdQIHVudGlsIEkgd2FzIGFib3V0IDIwIHdlZWtzIHByZWduYW50IGp1c3QgaW4gY2FzZS7CoEl0IGRpZG7igJl0IHdvcmsgb3V0IHdpdGggdGhlIGJpcnRoaW5nIGNlbnRlciBhZnRlciBteSBtb3ZlLiBXaGF0IGhhcHBlbmVkIHdhcywgc2hlIHdhcyBzdXBlciwgc3VwZXIgc3VwcG9ydGl2ZSwgYnV0IHNoZSB3b3VsZCBzYXkgdGhpbmdzIGxpa2UsIOKAnERvIHlvdSB3YW50IG1lIHRvIGJvb2sgeW91IGFuIGFwcG9pbnRtZW50IHdpdGggYW4gT0IganVzdCBpbiBjYXNlP+KAnSBvciDigJxEbyB5b3Ugd2FudCBtZSB0byBib29rIHlvdSBhIEMtc2VjdGlvbiBhdCA0MCB3ZWVrcyBqdXN0IGluIGNhc2U/4oCdIEkgd2FzIGxpa2UsIOKAnE5vLCBJIGRvbuKAmXQgd2FudCB5b3UgdG8u4oCdIFNoZSBzYWlkLCDigJxPa2F5LOKAnSBidXQgYXJvdW5kIDIwIHdlZWtzLCBteSBtaWR3aWZlIHdhcyBsaWtlLCDigJxXZSBjYW4ga2VlcCB5b3Ugb24gZXZlbiB0aG91Z2ggeW91IGxpdmUgaW4gT250YXJpby4gSXTigJlzIG5vIHByb2JsZW0u4oCdIEkgc2FpZCB0byBteSBHUCwg4oCcTXkgbWlkd2lmZSB3aWxsIGtlZXAgbWUgb24u4oCdIE15IEdQIHNhaWQsIOKAnFlvdSBzb3VuZCBsaWtlIGEgcmVhbGx5IGdvb2QgY2FuZGlkYXRlIHNvIGdvIGFoZWFkLiBJIHJlYWxseSBob3BlIGl0IHdvcmtzIGZvciB5b3UuIEkgaG9wZSB0aGF0IGl04oCZcyBldmVyeXRoaW5nIHRoYXQgeW91IHdhbnQu4oCdTWVhZ2FuOiBUaGF04oCZcyBnb29kLsKgS2Vsc2V5OiBTaGUgd2FzIHZlcnkgc3VwcG9ydGl2ZSBvZiBpdCBzbyBJIGZlbHQgcmVhbGx5IGdvb2QgYWJvdXQgaXQuwqA0MTowNyBTd2l0Y2hpbmcgdG8gbWlkd2l2ZXNLZWxzZXk6IEkgc3dpdGNoZWQgdG8gdGhlIG1pZHdpdmVzIGZ1bGwtdGltZS4gTXkgcHJlZ25hbmN5IHdhcyBzdXBlciBzbW9vdGggYWdhaW4sIGJ1dCB0aGVyZSB3ZXJlIGxpdHRsZSBoaWNjdXBzLiBJIGRpZG7igJl0IHBhc3MgbXkgb25lLWhvdXIgZ2VzdGF0aW9uYWwgZGlhYmV0ZXMgdGVzdC4gVGhleSBzYWlkLCDigJxJZiB5b3UgaGF2ZSBnZXN0YXRpb25hbCBkaWFiZXRlcyBhbmQgaXQgY2Fu4oCZdCBiZSBtYW5hZ2VkLCB3ZSB3aWxsIGhhdmUgdG8gdHJhbnNmZXIgY2FyZS7igJ0gQXJvdW5kIDM3IHdlZWtzLCBJIHN0YXJ0ZWQgbWVhc3VyaW5nIGxhcmdlIGFuZCB0aGV5IHNhaWQsIOKAnFdlIHRoaW5rIHdlIHdhbnQgdG8gc2VuZCB5b3UgZm9yIGFuIHVsdHJhc291bmQganVzdCB0byBiZSBzdXJlIG9mIGhvdyBiaWcgYmFieSBpcy7igJ0gSSBzYWlkLCDigJxJIGtub3cgdGhhdCB0aG9zZSB1bHRyYXNvdW5kcyBhcmVu4oCZdCBzdXBlciBhY2N1cmF0ZSBzbyBJ4oCZbSBub3Qgc3VyZSB0aGF04oCZcyB3aGF0IEkgd2FudC7igJ1JIGVuZGVkIHVwIGdldHRpbmcgYSBkb3VsYSB0aHJvdWdoIFRoZSBWQkFDIExpbmsuIEkgZm91bmQgYSBkb3VsYS7CoE1lYWdhbjogWWF5IUtlbHNleTogWWVhaCwgd2hhdCB3YXMgZnVubnkgYWJvdXQgdGhlIGRvdWxhIGlzIHNoZSB3YXMgcHJlZ25hbnQgdG9vIGFuZCBoZXIgZHVlIGRhdGUgd2FzIGEgd2VlayBhZnRlciBtaW5lIGFuZCB3ZSBmb3VuZCBvdXQgdGhhdCB3ZSB3ZXJlIGdpdmluZyBiaXJ0aCBhdCB0aGUgc2FtZSBwbGFjZS7CoE1lYWdhbjogT2ggbXkgZ29zaC7CoEtlbHNleTogU28gc2hlIHdhcyBsaWtlLCDigJxJ4oCZbGwga2VlcCB5b3Ugb24gYW5kIEnigJlsbCBkbyB5b3VyIHByZW5hdGFsIGFwcG9pbnRtZW50cywgYnV0IEkgcHJvYmFibHkgd29u4oCZdCBiZSBhdCB5b3VyIGJpcnRoLiBJIGhhdmUgYSBwYXJ0bmVyIHdobyBpcyBhIG51dHJpdGlvbmlzdC7igJ0gU2hlIGVuZGVkIHVwIGJlaW5nIGFtYXppbmcuIE15IHNvbiB3YXMgaW4gZGF5Y2FyZS4gSSBnb3Qgc2ljayBhIGxvdCBhbmQgSSBjb3VsZG7igJl0IHRha2UgYW55dGhpbmcgZm9yIGl0IHNvIHNoZSB3b3VsZCBoZWxwIG1lIGZpbmQgbmF0dXJhbCB3YXlzIG9mIGRlYWxpbmcgd2l0aCBhIGNvdWdoLiBJIHRoaW5rIEkgaGFkIHByZWduYW5jeSByaGluaXRpcyBmb3IgdGhlIGxhc3QgdHJpbWVzdGVyLiBJIHdhcyBjb25zdGFudGx5IGNvbmdlc3RlZC4gSSBoYWQgdGVycmlibGUgYWNpZCByZWZsdXguIFNoZSBvcmlnaW5hbGx5IGhhZCBwcmVzY3JpYmVkIGNoZXN0IG9wZW5lcnMsIGJ1dCBteSBtaWR3aWZlIGVuZGVkIHVwIHB1dHRpbmcgbWUgb24gbWVkaWNhdGlvbiBmb3IgaXQgYmVjYXVzZSBvZiB0aGUgdHJpZ2dlciB0byBjb3VnaC4gU2hlIHdhcyBhZnJhaWQgdGhhdCBteSBjb3VnaCBjb3VsZCB0cmlnZ2VyIG15IHdhdGVyIGJyZWFraW5nIHRvbyBlYXJseS7CoEkgY291bGRu4oCZdCBnaXZlIGJpcnRoIGF0IHRoZSBiaXJ0aCBjZW50ZXIgaWYgYmFieSBjYW1lIGJlZm9yZSAzNyB3ZWVrcy4gSSBoYWQgdG8gbWFrZSBpdCBwYXN0IDM3IHdlZWtzLsKgWWVhaCwgc28gcHJlZ25hbmN5IHdhcyBzbW9vdGguIEkgd2FzIGV4dHJlbWVseSBuYXVzZW91cyBpbiB0aGUgYmVnaW5uaW5nLiBJdCB3YXMgcmVhbGx5IGhhcmQgd2l0aCBhIGxlc3MtdGhhbi10d28teWVhci1vbGQuIEkga2VwdCBoaW0gaG9tZSBiZWNhdXNlIEnigJltIGEgdGVhY2hlci4gSeKAmW0gaG9tZSBvdmVyIHRoZSBzdW1tZXIuIEkga2VwdCBoaW0gaG9tZSBvdmVyIHRoZSBzdW1tZXIgYW5kIGl0IHdhcyByb3VnaCBiZWNhdXNlIGhlIGp1c3QgaXMgbmVlZHkgYW5kIG15IDkuNS1wb3VuZCBiYWJ5IGNvbnRpbnVlZCB0byBzdGF5IGluIHRoZSA5OXRoIHBlcmNlbnRpbGUgZm9yIGhlaWdodCBhbmQgd2VpZ2h0LiBIZSB3YW50ZWQgdG8gYmUgY2FycmllZCBldmVyeXdoZXJlIGJ1dCBoZSBpcyBzbyBoZWF2eSBhbmQgaGUgaXMgc3RpbGwgc28gaGVhdnkuwqBJIHdhcyBhIGxvdCBtb3JlIGFjdGl2ZSBkdXJpbmcgdGhpcyBwcmVnbmFuY3kgdGhhbiBJIGhhZCBiZWVuIHByaW9yLiBJIHRyaWVkIHJlYWxseSBoYXJkIHRvIHdhbGsgYW5kIHdoYXRub3QgYW5kIGRvIGxvdHMgb2Ygc3RyZXRjaGVzLiBBcm91bmQgMzAgd2Vla3MsIGJhYnkgd2FzIHN0aWxsIGJyZWVjaCBhbmQgSSBzdGFydGVkIHRvIHBhbmljIGEgbGl0dGxlIGJpdC4gSSBzdGFydGVkIGRvaW5nIFNwaW5uaW5nIEJhYmllcyBleGVyY2lzZXMgYW5kIGxvdHMgb2YgaW52ZXJzaW9ucyBhbmQgd2hhdG5vdC5XaGVuIEkgZmlyc3QgbWV0IHdpdGggbXkgZG91bGEsIEkgdGFsa2VkIHdpdGggaGVyIGFib3V0IGV2ZXJ5dGhpbmcuIEkgd2FzIGFibGUgdG8ganVzdCBzcGl0IG91dCBmYWN0cyB0aGF0IEkgaGFkIGxlYXJuZWQgZnJvbSB5b3UgZ3V5cy4gU2hlIHdhcyBsaWtlLCDigJxJ4oCZdmUgbmV2ZXIgbWV0IHNvbWVvbmUgd2hvIGlzIHRoaXMgcHJlcGFyZWQgb3Igd2hvIGtub3dzIHRoaXMgbXVjaC7igJ0gU2hlIHdhcyBsaWtlLCDigJxJIGhhdmUgYWxsIG9mIHRoaXMgc3R1ZmYgdG8gZ28gb3ZlciB3aXRoIHlvdSwgYnV0IHlvdSBhbHJlYWR5IGtub3cgaXQu4oCdwqBTaGUgZW5kZWQgdXAgYXMgd2VsbCBiZWNvbWluZyBjZXJ0aWZpZWQgaW4gSHlwbm9CaXJ0aGluZyBzbyBJIHRvb2sgYSBIeXBub0JpcnRoaW5nIGNsYXNzLiBJIHdhcyByZWFsbHkgY29uY2VybmVkIGFib3V0IGRvaW5nIGFuIHVubWVkaWNhdGVkIFZCQUMgYmVjYXVzZSBJIGRpZG7igJl0IGtub3cgaWYgSSBjb3VsZCBoYW5kbGUgdGhlIHBhaW4gb2YgaXQuIEkgaGFkIG9yaWdpbmFsbHkgd2FudGVkIHRvIFZCQUMgaW4gdGhlIGhvc3BpdGFsLCBidXQgSSB3YXRjaGVk4oCTIHdoYXQgaXMgdGhhdCBkb2N1bWVudGFyeSB3aXRoIFJpY2tpIExha2U/wqBNZWFnYW46IFVtLCBva2F5LCBob2xkIG9uLsKgS2Vsc2V5OiBUaGUgQnVzaW5lc3Mgb2YgQmVpbmcgQm9ybi7CoE1lYWdhbjogWWVzLCB0aGF04oCZcyBhbGwgSSBjb3VsZCB0aGluayBvZiB3YXMgQm9ybi4gVGhlIEJ1c2luZXNzIG9mIEJlaW5nIEJvcm4uwqBLZWxzZXk6IE15IGVudGlyZSBwZXJzcGVjdGl2ZSBvbiBiaXJ0aCBjb21wbGV0ZWx5IGNoYW5nZWQuIE15IGh1c2JhbmQgd2F0Y2hlZCBpdCB3aXRoIG1lIGFuZCBoZSB3YXMgYmxvd24gYXdheSBieSBpdC4gSGUgd2FzIGp1c3QgbGlrZSwg4oCcSSB3YW50IHRoYXQuIEkgd2FudCB0aGF0IGZvciB1cy4gSSB3YW50IHRvIGJlIGEgaHVnZSBwYXJ0IG9mIHRoaXMuIEkgd2FudCB0byBoZWxwIHlvdSB0aHJvdWdoIGl0IGFuZCBiZSBhbiBhY3RpdmUgcGFydGljaXBhbnQuIExldOKAmXMgZG8gdGhpcy7igJ0gV2UgZGlkIHRoZSBwcmVuYXRhbCBjbGFzc2VzIHdpdGggbXkgZG91bGEuIEhlIGxlYXJuZWQgYWxsIG9mIHRoZSBwYWluIG1hbmFnZW1lbnQgdGVjaG5pcXVlcy4gSGUgd2FzIHNvIGV4Y2l0ZWQgZm9yIGNvdW50ZXJwcmVzc3VyZSBhbmQgaGUgd2FudGVkIHRvIGJlIGFjdGl2ZS4gSGUgd2FzIGZ1bGx5IHN1cHBvcnRpdmUgYW5kIGhlIHdhbnRlZCB0byBjYXRjaCBvdXIgYmFieS7CoFRoaXMgdGltZSBhcm91bmQsIHdlIGRpZG7igJl0IGZpbmQgb3V0IHRoZSBzZXggb2Ygb3VyIGJhYnkuIFdlIHdhbnRlZCBpdCB0byBiZSBhIHN1cnByaXNlLiBJIHdhcyAxMDAlIHN1cmUgaXQgd291bGQgYmUgYSBnaXJsLiBJIGRpZG7igJl0IGV2ZW4gcGljayBvdXQgYSBib3kgbmFtZS7CoEFueXdheSwgd2UgZ2V0IHRvIERlY2VtYmVyIDIxc3QuIEkgZ2V0IGNoZWNrZWQgYW5kIHNoZSBjYW7igJl0IGV2ZW4gcmVhY2ggbXkgY2Vydml4LiBJdCB3YXMgc28gcG9zdGVyaW9yLiBJIHdhcyBzdXBlciBkaXNjb3VyYWdlZCwgaW4gdGVhcnMgZGlzY291cmFnZWQgYmVjYXVzZSBJIHdhcyBhZnJhaWQgb2YgZ29pbmcgcGFzdCBteSBkdWUgZGF0ZSBhbmQgdGhleSB3ZXJlIGFmcmFpZCB0aGF0IHRoaXMgYmFieSB3YXMgZ29pbmcgdG8gYmUgc28gYmlnIGJlY2F1c2UgSSB3YXMgbWVhc3VyaW5nIGxhcmdlLsKgNDY6MTQgQmVnaW5uaW5nIG9mIGxhYm9yS2Vsc2V5OiBPdmVybmlnaHQsIEkgc3RhcnRlZCB0byBoYXZlIGNvbnRyYWN0aW9ucy4gVGhleSB3ZXJlIGtpbmQgb2YgcmVndWxhciwgYnV0IHRoZXkgd2VyZSBtYW5hZ2VhYmxlLiBEZWNlbWJlciAyMm5kIHJvbGxzIGFyb3VuZCBhbmQgSeKAmW0gc3RpbGwgaGF2aW5nIGNvbnRyYWN0aW9ucyBvbiBhbmQgb2ZmIGFuZCBJIHN0YXJ0IGZlZWxpbmcgc2ljay4gSSBoYWQgcHVsbGVkIG15IHNvbiBvdXQgb2YgZGF5Y2FyZSB0byBwcmV2ZW50IGdldHRpbmcgc2ljay7CoEkgc3RhcnRlZCB0byBnZXQgYSBjb3VnaCBhbmQgSSB3YXMgcmVhbGx5IGNvbmdlc3RlZC4gSSB3YXNu4oCZdCBmZWVsaW5nIHdlbGwgYXQgYWxsLiBJIHdhcyBzdXBwb3NlZCB0byBnbyB0byBDb3N0Y28gd2l0aCBteSBtb20gdGhhdCBkYXkuIEkgdGV4dGVkIGhlciBpbiB0aGUgbW9ybmluZywg4oCcSeKAmW0gaGF2aW5nIGNvbnRyYWN0aW9ucy4gTm90IGZlZWxpbmcgZ3JlYXQuIExldOKAmXMgY2FuY2VsLOKAnSBidXQgYmVjYXVzZSBteSBzb24gd2FzIGhvbWUsIHRoaW5ncyBzdGFydGVkIHRvIHNsb3cgZG93biB3aXRoIHRoZSBjb250cmFjdGlvbnMuIEkgc2FpZCwg4oCcWW91IGtub3cgd2hhdD8gTmV2ZXIgbWluZC4gSSBuZWVkIHNvbWV0aGluZyB0byBkbyB0b2RheS7igJ3CoE15IG1vbSBwaWNrcyBtZSB1cCBhbmQgbXkgaHVzYmFuZCBhbmQgaGVyIGFyZSBqb2tpbmcgdGhhdCBJ4oCZbSBnb2luZyB0byBnbyBpbnRvIGxhYm9yIGF0IENvc3Rjby4gV2Ugd2Fsa2VkIHRoZSBlbnRpcmV0eSBvZiBDb3N0Y28gYXMgSSB3YXMgaGF2aW5nIGNvbnRyYWN0aW9ucy4gTXkgMTgteWVhci1vbGQgYnJvdGhlciBpcyBpbiB0aGUgYmFjayBvZiB0aGUgY2FyLiBJ4oCZbSBicmVhdGhpbmcgdGhyb3VnaCB0aGVtIGFuZCBoZeKAmXMgbGlrZSwg4oCcV2hhdCBpcyBoYXBwZW5pbmcgcmlnaHQgbm93P+KAnUkgZ2V0IGhvbWUuIEkgc3RhcnRlZCB0aW1pbmcgdGhlbSBhbmQgdGhleSB3ZXJlIDYgbWludXRlcyBhcGFydC4gTXkgaHVzYmFuZCBkZWNpZGVzIHRoYXQgaGUgaXMgZ29pbmcgdG8gdGFrZSBvdXIgc29uLiBIZSB3YXMga2luZCBvZiBvZmYgd29yayBzbyBoZSB0b29rIG92ZXIgY2FyZSBvZiBvdXIgMi15ZWFyLW9sZC4gSSBlbmRlZCB1cCBnb2luZyBhbmQgdGFraW5nIGEgYmF0aCBhbmQgYWxsIG9mIHRoZSBjb250cmFjdGlvbnMgc3RvcHBlZC7CoFRoYXQgbmlnaHQsIHRoZXkgc3RhcnRlZCBhZ2FpbiBhbmQgdGhlbiBvbiB0aGUgMjR0aCBvZiBEZWNlbWJlciwgdGhleSB3ZXJlIHN0aWxsIHByZXR0eSBpbmNvbnNpc3RlbnQgYnV0IG15IGRvdWxhIHdhcyBzdWdnZXN0aW5nIHRoaW5ncyBsaWtlLCDigJxPaCwgaWYgeW914oCZcmUgY29tZm9ydGFibGUsIGhhdmUgc2V4LCB0aGVuIHRha2UgYSBzaG93ZXIuIFNpdCBvbiB0aGUgdG9pbGV0IGFuZCBkbyBuaXBwbGUgc3RpbXVsYXRpb24gZm9yIDE1IG1pbnV0ZXMgb24gZWFjaCBzaWRlIGFuZCBzZWUgaWYgdGhhdCBnZXRzIHRoaW5ncyBnb2luZy7igJ3CoFdlIGhhZCBzZXggYW5kIHRoZW4gaXQgYWxsIHN0b3BwZWQuIFdlIGtlcHQgdHJ5aW5nIHRoaW5ncyBhbmQgdGhlbiBteSBkb3VsYSB3YXMgbGlrZSwg4oCcSSBqdXN0IHRoaW5rIHRoYXQgbWF5YmUgeW91ciBib2R5IG5lZWRzIHRvIHJlc3QgYW5kIHJlbGF4IHNvIGxldOKAmXMgdHJ5IHJlc3RpbmcgYW5kIHJlbGF4aW5nLuKAnSBXZWxsIHRoZW4sIHRoZSAyNXRoIGlzIENocmlzdG1hcyBEYXkgYW5kIEkgZGVjaWRlZCB0byBob3N0IENocmlzdG1hcy7CoE1lYWdhbjogQmVjYXVzZSB0aGF0IHdvdWxkIGJlIGEgcmVhbGx5IGdvb2QgZGlzdHJhY3Rpb24uwqBLZWxzZXk6IFllYWgsIEkgd2FzIGxpa2UsIOKAnEl04oCZcyBnb2luZyB0byBiZSBmaW5lLuKAnSBNeSBtb3RoZXItaW4tbGF3IHdhcyBsaWtlLCDigJxJ4oCZbGwgY29vayBDaHJpc3RtYXMgZGlubmVyLuKAnSBQcmlvciB0byB0aGF0LCBJIGhhZCBhbGwgb2YgdGhlc2UgaWRlYXMuIEnigJltIGdvaW5nIHRvIG1ha2UgYnJlYWQgYnkgbXlzZWxmLiBJ4oCZbSBnb2luZyB0byBtYWtlIGFsbCBvZiB0aGVzZSBkZXNzZXJ0cy4gSeKAmW0gZ29pbmcgdG8gbWFrZSBwdXBweSBjaG93LiBJ4oCZbSBnb2luZyB0byB3cmFwIGFsbCBvZiBteSBraWTigJlzIENocmlzdG1hcyBnaWZ0cy4gSeKAmW0gZ29pbmcgdG8gcHV0IHRvZ2V0aGVyIGhpcyBQaWtsZXIgVHJpYW5nZWwgd2UgZ290IGZvciBoaW0gYW5kIHdyYXAgdGhhdC7CoEp1c3QgYWxsIG9mIHRoZXNlIHRoaW5ncyB0aGF0IEkgd2FudGVkIHRvIGRvIGZvciBDaHJpc3RtYXMuIEJ5IHRoZSAyNHRoLCBJIHdhcyBzbyBleGhhdXN0ZWQgZnJvbSB0aGUgY29udHJhY3Rpb25zIHRoYXQgSSBkaWRu4oCZdCBiYWtlIGFueXRoaW5nLiBUaGVyZSB3YXMgbm8gd2F5LiBCdXQgSSBkaWQgaG9zdCBDaHJpc3RtYXMgZGlubmVyIGFuZCBldmVyeW9uZSB0b2xkIG1lLCDigJxXaHk/IFdoeSBhcmUgeW91IGRvaW5nIHRoYXQ/4oCdIEkgd2FzIGxpa2UsIOKAnFdlbGwsIGl0IHdpbGwgYmUgZWFzeSzigJ0gYmVjYXVzZSBteSBodXNiYW5kIGFuZCBJIGFyZSBib3RoIGZyb20gZGl2b3JjZWQgZmFtaWxpZXMuIFdl4oCZbGwganVzdCBoYXZlIGV2ZXJ5b25lIG92ZXIgZm9yIENocmlzdG1hcywgYW5kIHRoZW4gd2Ugd29u4oCZdCBoYXZlIHRvIHdvcnJ5IGFib3V0IGdvaW5nIHRvIGFueW9uZSBlbHNlLsKgV2UgaGFkIG15IG1vbSBhbmQgbXkgYnJvdGhlcnMgY2FtZSBvdmVyIGFuZCBoaXMgc3RlcC1tb20gY2FtZSBvdmVyIGFuZCBteSBzdGVwLWRhZCBjYW1lIG92ZXIuIEl0IGp1c3Qgd2FzIG5vdCBncmVhdC7CoE1lYWdhbjogTGlrZSBDaHJpc3RtYXMgVmFjYXRpb24gd2hlcmUgdGhlIGRvb3Iga2VlcHMgb3BlbmluZyBhbmQgYWxsIG9mIHRoZSBmYW1pbHkgbWVtYmVycyBrZWVwIHNob3dpbmcgdXAuwqBLZWxzZXk6IEkga25vdy4gSSB3YXMgc3RpbGwgaGF2aW5nIGNvbnRyYWN0aW9ucy4gSSBjb3VsZG7igJl0IHN0YW5kIHVwIG9yIHNpdCBkb3duIHdpdGhvdXQgaGF2aW5nIGEgY29udHJhY3Rpb24uwqBJIHdhcyBqdXN0IGV4aGF1c3RlZCBhbmQgdW5jb21mb3J0YWJsZSBhbmQgZmVsdCBodWdlLiBQZW9wbGUgYXJlIGxpa2UsIOKAnEhvdyBhcmUgeW91IGRvaW5nP+KAnSBJ4oCZbSBsaWtlLCDigJxJ4oCZbSBzdXJ2aXZpbmcuIFJpZ2h0IG5vdywgSeKAmW0ganVzdCBzdXJ2aXZpbmcu4oCdwqBTbyBhbnl3YXksIGZpbmFsbHkgQ2hyaXN0bWFzIERheSBpcyBvdmVyIGFuZCBCb3hpbmcgRGF5LCBJIHdha2UgdXAgYXQgNzozMC4gSSBoYWQgYSB3ZWlyZCBjb250cmFjdGlvbi4gSSB3ZW50IHRvIHRoZSB3YXNocm9vbSBhbmQgSSBoYWQgbXkgYmxvb2R5IHNob3cuIEkgd2FzIGxpa2UsIOKAnEnigJltIGp1c3QgZ29pbmcgdG8gdHJ5IHRvIGdvIGJhY2sgdG8gYmVkLOKAnSBiZWNhdXNlIG15IHNvbiBhbmQgbXkgaHVzYmFuZCB3ZXJlbuKAmXQgdXAgYnV0IG15IGJhY2sgc3RhcnRlZCB0byBodXJ0LiBJIHdhcyBsaWtlLCDigJxPa2F5LCBJ4oCZbSBhY3R1YWxseSBqdXN0IGdvaW5nIHRvIGdldCBteSBzb24gdXAgYW5kIGdvIGRvd25zdGFpcnMu4oCdwqBNeSBodXNiYW5kIGdvdCB1cCB3aXRoIG1lLiBXZSBnbyBkb3duc3RhaXJzLiBXZSBzdGFydGVkIGdldHRpbmcgbXkgc29uIHJlYWR5LiBJ4oCZbSBsaWtlLCDigJxJ4oCZbSBnb2luZyB0byBnZXQgaW4gdGhlIGJhdGggYW5kIHNlZSBpZiBteSBjb250cmFjdGlvbnMgc3RvcCBiZWNhdXNlIEnigJltIHJlYWxseSB1bmNvbWZvcnRhYmxlLuKAnSBJIGNhbGxlZCBteSBtaWR3aWZlIGZyb20gdGhlIGJhdGh0dWIgYW5kIEkgc2FpZCwg4oCcVGhleSBhcmUgNSBtaW51dGVzIGFwYXJ0IGFuZCB0aGV5IGhhdmVu4oCZdCBzdG9wcGVkLCBidXQgSeKAmW0gc2NhcmVkIHRvIGNvbWUgaW4gYmVjYXVzZSB3aGF0IGlmIHRoaXMgaXNu4oCZdCByZWFsP+KAnSBTaGUgc2FpZCwg4oCcSWYgeW914oCZcmUgaW4gdGhlIGJhdGh0dWIgYW5kIHRoZXkgYXJlIHN0aWxsIGdvaW5nLCB0aGlzIGlzIHJlYWwgbGFib3IuIFlvdSBuZWVkIHRvIGdldCBoZXJlIG5vdy7igJ3CoDUxOjA3IERyaXZpbmcgdG8gdGhlIGJpcnRoIGNlbnRlcktlbHNleTogV2UgZ2V0IGFsbCBvZiBvdXIgc3R1ZmYgaW4gdGhlIGNhci4gSXQgd2FzIGEgNTAtbWludXRlIGRyaXZlIHRvIHRoZSBiaXJ0aGluZyBjZW50ZXIuwqBNZWFnYW46IDUwPyA1LTA/S2Vsc2V5OiA1LTAuwqBNZWFnYW46IE9rYXkuwqBLZWxzZXk6IFRoZSBnb29kIHBhcnQgd2FzIHRoYXQgdGhleSB3ZXJlIHJlZ3VsYXJseSA0IG1pbnV0ZXMgc28gSSBjb3VsZCBsb29rIGF0IHRoZSBjbG9jayBhbmQga25vdyB0aGF0IEkgd2FzIGdvaW5nIHRvIGhhdmUgYSBjb250cmFjdGlvbiBhbmQgSSBjb3VsZCBicmVhdGhlIHRocm91Z2ggaXQuIEkgd2FzIG1hbmFnaW5nIHByZXR0eSB3ZWxsIGF0IHRoYXQgcG9pbnQsIGJ1dCBiZWZvcmUgd2UgaGFkIGxlZnQsIG15IG1vdGhlci1pbi1sYXcgZGVjaWRlZCB0byBzdG9wIG1lIGF0IHRoZSBkb29yLiBTaGUgd2FzIGxpa2UsIOKAnFNvIHdoZXJlIGFyZSB5b3UgZmVlbGluZyB0aGVtP+KAnSBJ4oCZbSBsaWtlLCDigJxJIGp1c3QgbmVlZCB0byBnby4gUGxlYXNlIGp1c3QgbGV0IG1lIGdvLiBJIGNhbuKAmXQgdGFsayB0byB5b3UgcmlnaHQgbm93LuKAnSBNeSBodXNiYW5kIGlzIHRyeWluZyB0byBnZXQgbWUgb3V0IHRoZSBkb29yIHRvbyBiZWNhdXNlIGhlIGtub3dzLsKgV2UgZ2V0IHRvIHRoZSBiaXJ0aGluZyBjZW50ZXIuIEl0IHdhcyBuaWNlIGJlY2F1c2UgSSBjb3VsZCBjaG9vc2UgdGhlIGNvbG9yIG9mIG15IHJvb20uIFRoZXkgaGFkIG9wdGlvbnMgZm9yIHRoZSBjb2xvciBvZiB5b3VyIHJvb20gc28gSSBjaG9zZSBwdXJwbGUuIEkgZ2V0IGludG8gbXkgcm9vbS4gSXTigJlzIG5vdyAxMDowMC4gSSBjb3VsZCBoZWFyIGluIHRoZSBuZXh0IHJvb20gYSB3b21hbiBzY3JlYW1pbmcsIGxpdGVyYWxseSBzY3JlYW1pbmcuIEkgc3RhcnQgcGFuaWNraW5nLiBJIGNhbiBoZWFyIGhlciB5ZWxsaW5nLCDigJxHZXQgb3V0IG9mIG1lIGFscmVhZHkh4oCdwqBNZWFnYW46IEF3dy7CoEtlbHNleTogTXkgdmFnaW5hIGlzIG9uIGZpcmUhIEnigJltIHBhbmlja2luZy4gTXkgbWlkd2lmZSBzYXlzLCDigJxJIG5lZWQgdG8gbW9uaXRvciB5b3UgZm9yIGEgbGl0dGxlIGJpdCwgc28gY2FuIHlvdSBnZXQgb24gdGhlIGJlZD8gSeKAmW0gZ29pbmcgdG8gbW9uaXRvciB5b3VyIGJhYnnigJlzIGhlYXJ0IHJhdGUgYW5kIHRoZW4gSeKAmW0gZ29pbmcgdG8gbW9uaXRvciB5b3VyIGNvbnRyYWN0aW9ucy7igJ0gU2hlIGNvdWxkIGdldCBiYWJ54oCZcyBoZWFydGJlYXQgYW5kIHNoZSBjb3VsZG7igJl0IGdldCBteSBjb250cmFjdGlvbnMgb24gdGhlIG1vbml0b3IuwqBBdCB0aGlzIHBvaW50LCBJ4oCZbSBzdGFydGluZyB0byBwYW5pYyBiZWNhdXNlIEkgY2FuIHN0aWxsIGhlYXIgdGhlIHdvbWFuIHNjcmVhbWluZy4gTXkgaHVzYmFuZOKAmXMgbGlrZSwg4oCcSeKAmW0gZ29pbmcgdG8gZ2V0IHlvdSB5b3VyIGhlYWRwaG9uZXMu4oCdIEhlIGdldHMgbWUgbXkgaGVhZHBob25lcy7CoE1lYWdhbjogVmVyeSBnb29kIGNhbGwuwqBLZWxzZXk6IEhlIGdldHMgbWUgbXkgaGVhZHBob25lcyBhbmQgcHV0cyBvbiBteSBiaXJ0aCBwbGF5bGlzdC4gSeKAmW0gbGF5aW5nIHRoZXJlIGFuZCB0aGluZ3Mgc3RhcnQgZ2V0dGluZyByZWFsbHkgaW50ZW5zZSByZWFsbHkgZmFzdC4gSSB3YXMgcGFuaWNraW5nIHRoYXQgdGhlIHNhbWUgdGhpbmcgdGhhdCBoYWQgaGFwcGVuZWQgd2l0aCBteSBzb24gd2FzIGhhcHBlbmluZyBhZ2Fpbi4gQnV0IEkgc3RhcnRlZCBnZXR0aW5nIGlyYXRlIGFuZCBteSBtaWR3aWZlIHN0aWxsIGNvdWxkbuKAmXQgZ2V0IHRoZSBjb250cmFjdGlvbnMgb24gdGhlIG1vbml0b3IuIEkgcmVtZW1iZXIgZmxpbmdpbmcgbXkgaGVhZHBob25lcyBvZmYgYW5kIGp1c3QgYmVpbmcgbGlrZSwg4oCcSSBuZWVkIHRvIGdvIHRvIHRoZSBiYXRocm9vbS4gTGV0IG1lIHVwLiBJIGNhbuKAmXQgbGF5IGhlcmUgYW55bW9yZS7igJ1TaGXigJlzIGxpa2UsIOKAnE9rYXkuIElmIHlvdSBuZWVkIHRvIGdvIHRvIHRoZSBiYXRocm9vbSwgZ28gdG8gdGhlIGJhdGhyb29tLuKAnSBJ4oCZbSBzaXR0aW5nIHRoZXJlIG9uIHRoZSB0b2lsZXQuIEnigJltIGNyeWluZyBhbmQgSeKAmW0gdGVsbGluZyBteSBodXNiYW5kIHRoYXQgSSBjYW7igJl0IGRvIHRoaXMuIEluIHRoZSBiYWNrIG9mIG15IGhlYWQsIEkga25vdyB3aGF0IHRoYXQgbWVhbnMsIGJ1dCBJIGNvdWxkbuKAmXQgcmF0aW9uIHdpdGggbXlzZWxmIGF0IHRoYXQgcG9pbnQuIE15IG1pZHdpZmUgaGFkbuKAmXQgY2hlY2tlZCBtZSB5ZXQgYXQgYWxsIHNvIHNoZSBnb2VzLCDigJxJIHJlYWxseSB3YW50IHRvIGNoZWNrIHlvdSBiZWNhdXNlIHdlIGhhdmVu4oCZdCBkb25lIHRoYXQu4oCdwqBJIGhhZCB0byBnZXQgb2ZmIHRoZSB0b2lsZXQuIEkgZGlkbuKAmXQgd2FudCB0byBhbmQgYXMgSSB3YXMgZ2V0dGluZyBvZmYgdGhlIHRvaWxldCwgSSB3YXMgc28gaG90LiBJ4oCZbSBmbGluZ2luZyBteSBjbG90aGVzIG9mZi4gSSBnZXQgdG8gdGhlIGVkZ2Ugb2YgbXkgYmVkIGFuZCBJ4oCZbSBsaWtlLCDigJxJdOKAmXMgbm90IG1lLiBJdOKAmXMgbXkgYm9keS4gSeKAmW0gcHVzaGluZy7igJ0gSSBzYXcgbXkgc3RvbWFjaCBjb250b3J0LiBJdCB3YXMganVzdCBsaWtlIG15IHdob2xlIGJvZHkgd2FzIG5vdCBtZSBhdCBhbGwuIEl0IHdhcyBzbyB3aWxkIHRvIG1lLsKgTXkgbWlkd2lmZSBnZXRzIG1lIG9uIHRoZSBiZWQgZmluYWxseSBhbmQgc2hlIGNoZWNrcyBtZSBhbmQgc2hlIGdvZXMsIOKAnFlvdeKAmXJlIGF0IHRoZSA3dGggY2VudGltZXRlci7igJ0gU2hlIHNhaWQsIOKAnFlvdeKAmXJlIGEgc2Vjb25kLXRpbWUgbW9tIHNvIGlmIHlvdXIgYm9keSBmZWVscyBsaWtlIGl0LCBpdCByZW1lbWJlcnMuIFlvdSBjYW4gc3RhcnQgcHVzaGluZyB3aGVuZXZlciB5b3Ugd2FudC7igJ0gSXQgd2FzIHN1Y2ggYSBkaWZmZXJlbnQgZXhwZXJpZW5jZSBmcm9tIGJlaW5nIHRvbGQgaW4gdGhlIGhvc3BpdGFsLCDigJxEbyBub3QgcHVzaCzigJ0gd2hlbiBJ4oCZbSBhdCAxMCBjZW50aW1ldGVycyB0byBteSBtaWR3aWZlIGJlaW5nIGxpa2UsIOKAnElmIHlvdXIgYm9keSBpcyBwdXNoaW5nLCBpdOKAmXMgZmluZS7igJ3CoDU0OjQ5IFB1c2hpbmcgYmFieSBvdXQgaW4gdHdvIHB1c2hlc0tlbHNleTogU28gc2hlIHB1dCBtZSBvdmVyIGEgYmFsbCBhbmQgdGhlbiBzaGUgY2FsbGVkIGluIHRoZSBhc3Npc3RhbnQgbWlkd2lmZSBiZWNhdXNlIHNoZSB3YXMgbGlrZSwg4oCcVGhpcyBpcyBoYXBwZW5pbmcgdmVyeSBzb29uLuKAncKgVGhlIGFzc2lzdGFudCBtaWR3aWZlIGNvbWVzIGluIGFuZCB0aGF0IHdhcyBmdW5ueSBiZWNhdXNlIHNoZSBnb2VzLCDigJxNeSBuYW1lIGlzIEdhYnJpZWxsZS7igJ0gSSBoYWQgYSBmcmllbmQgd2hvIGhhZCBnb25lIHRvIHRoZSBiaXJ0aCBjZW50ZXIgd2hvIGhhZCBHYWJyaWVsbGUuIEkgdHVybmVkIHRvIGhlciBhbmQgc2FpZCwg4oCcWW91IGtub3cgbXkgZnJpZW5kLCBLZWxseS7igJ0gU2hlIHdhcyBqdXN0IGxpa2UsIOKAnFllYWgu4oCdIEnigJltIGxpa2UsIOKAnEkgaGVhcmQgeW914oCZcmUgcmVhbGx5IGdvb2Qu4oCdIFNoZeKAmXMgbGlrZSwg4oCcT2theSwgbGV04oCZc+KAky7igJ1TbyBvdmVyIHRoZSBiYWxsLCBteSBodXNiYW5kIHRyaWVkIHRvIGRvIGNvdW50ZXJwcmVzc3VyZSBvbiBtZSBhbmQgSSB3YXMgbGlrZSwg4oCcRG9u4oCZdC4gRG9u4oCZdCBkbyBpdC7igJ0gQnV0IGhlIHByZXNzZWQgbXkgdGFpbGJvbmUgZG93biBhbmQgdGhhdCBtYWRlIGEgaHVnZSBkaWZmZXJlbmNlIGFuZCBJIGp1c3Qga2luZCBvZiBsZXQgbXkgYm9keSBkbyBpdHMgdGhpbmcuIFRoZXkgaGFkIHRvIGZsaXAgbWUgYSBjb3VwbGUgb2YgdGltZXMgYW5kIEkgZW5kZWQgdXAgYmVpbmcgcHV0IG9uIG15IGJhY2sgdG8gcHVzaCBmb3IgdGhlIGZpbmFsIGxpdHRsZSBiaXQgYmVjYXVzZSB0aGV5IG5lZWRlZCB0byBrZWVwIG1vbml0b3JpbmcgYmFieeKAmXMgaGVhcnQgcmF0ZS4gSXQga2VwdCBnb2luZyBkb3duIGV2ZXJ5IHRpbWUgSSBoYWQgYSBjb250cmFjdGlvbiBzbyB0aGV5IHdlcmUgYSBsaXR0bGUgY29uY2VybmVkLsKgQXQgb25lIHBvaW50LCB0aGV5IHNhaWQsIOKAnERvbuKAmXQgcGFuaWMsIGJ1dCB3ZSBhcmUgZ29pbmcgdG8gY2FsbCBhbiBhbWJ1bGFuY2UganVzdCBpbiBjYXNlIGp1c3QgYmVjYXVzZSB3ZSBrZWVwIHNlZWluZyB0aGlzLiBXZeKAmXJlIGdvaW5nIHRvIGNhbGwgYW4gYW1idWxhbmNlIGp1c3Qgc28gdGhhdCB0aGV5IGFyZSBoZXJlLuKAnSBZZWFoLCBzbyBJIHB1c2hlZCBvbiBteSBiYWNrIGZvciBhIHdoaWxlIGFuZCBJIHJlbWVtYmVyIGF0IG9uZSBwb2ludCwgc2hlIHNhaWQsIOKAnFRoZSBoZWFk4oCZcyByaWdodCB0aGVyZS4gSWYgeW91IHJlYWNoIGRvd24sIHlvdSBjYW4gdG91Y2ggaXQu4oCdIEkgd2FzIGxpa2UsIOKAnEnigJltIGdvaW5nIHRvIGhhdmUgbXkgYmFieSB2YWdpbmFsbHku4oCdIE15IGh1c2JhbmQgd2FzIGxpa2UsIOKAnFllYWgsIHlvdSBhcmUu4oCdIEkgd2FzIGp1c3Qgc28gZXhjaXRlZC7CoEluIG9uZSBwdXNoLCBoaXMgaGVhZCBjYW1lIG91dCBhbmQgc2hlIGdvZXMsIOKAnE9wZSwgaGXigJlzIE9QLuKAnSBIZSB3YXMgc3Vubnktc2lkZSB1cC4gTXkgaHVzYmFuZCB3YXMgbGlrZSwg4oCcSGXigJlzIGxvb2tpbmcgYXQgbWUu4oCdIFdlbGwsIHNvcnJ5LiBUaGF04oCZcyBhIHNwb2lsZXIuIOKAnFRoZXnigJlyZSBsb29raW5nIGF0IG1lLiBJIGNhbiBzZWUgdGhlIGJhYnkuIFRoZWlyIGV5ZXMgYXJlIG9wZW4uIFRoZWlyIG1vdXRoIGlzIGdvaW5nLuKAnSBBbmQgdGhlbiBzaGUgc2FpZCwg4oCcT2theSwgbmV4dCB0aW1lLCBvbmUgcmVhbGx5IGJpZyBwdXNoLOKAnSBhbmQgaGUgY2FtZSBvdXQgb24gdGhlIHNlY29uZCBwdXNoLsKgTXkgaHVzYmFuZCBjYXVnaHQgaGltIGFuZCBwdXQgaGltIHJpZ2h0IG9uIG15IGNoZXN0LiBJIHdhcyBsaWtlLCDigJxXaGF0IGlzIGl0PyBXaGF0IGlzIGl0P+KAnSBJdCB3YXMgYW5vdGhlciBib3ksIHNvIHNwb2lsZXIgYWxlcnQuIFdlIGRpZG7igJl0IGhhdmUgYSBuYW1lLiBJIGdvdCB0byBob2xkIGhpbSBvbiBteSBjaGVzdCBmb3IgMiBob3Vycy4gV2UgZGlkIGRlbGF5ZWQgY29yZCBjbGFtcGluZy4gTXkgZG91bGEgbWFkZSBpdCBpbiB0aGUgbGFzdCAxNSBtaW51dGVzIGFuZCBzaGUgc2FpZCB0byBtZSwg4oCcSSB0aGluayBWaWN0b3JpYSBpcyBpbiB0aGUgbmV4dCByb29tIGhhdmluZyBoZXIgYmFieS7igJ3CoE1lYWdhbjogTnVoLXVoLiBJIHdvbmRlcmVkIHdoZW4geW91IHdlcmUgc2F5aW5nIHRoYXQuIEkgd2FzIGxpa2UsIEkgd29uZGVyZWQgaWYgdGhhdCB3YXMgaGVyIGRvdWxhLiBPaCBteSBnb3NoLsKgS2Vsc2V5OiBMaXRlcmFsbHksIG91ciBiYWJpZXMgd2VyZSBib3JuIDIgaG91cnMgYXBhcnQuwqBNZWFnYW46IE9oLCB0aGF04oCZcyBzbyBjb29sLsKgS2Vsc2V5OiBXZSB3ZXJlIGluIHRoZSBiaXJ0aGluZyBjZW50ZXIgYXQgdGhlIHNhbWUgdGltZSB3aGljaCB3YXMgd2lsZC4gSSBnb3QgdG8gc2VlIGhlciBvbiBteSB3YXkgb3V0IHdoaWNoIHdhcyByZWFsbHkgbmljZS7CoE1lYWdhbjogVGhhdOKAmXMgc28gc3BlY2lhbC7CoEtlbHNleTogTmVpdGhlciBvZiB1cyBrbmV3IHdoYXQgd2Ugd2VyZSBoYXZpbmcgYW5kIHdlIGJvdGggaGFkIGxpdHRsZSBib3lzLiBUaGV5IHdlaWdoZWQgaGltIGFuZCBteSBzdXBlciBiaWcgYmFieSB3YXMgOCBwb3VuZHMsIDMgb3VuY2VzLsKgTWVhZ2FuOiBQZXJmZWN0LsKgS2Vsc2V5OiBQZXJmZWN0LiBZZWFoLiBQZW9wbGUgd2VyZSBsaWtlLCDigJxUaGF04oCZcyBhIGdvb2Qtc2l6ZWQgYmFieS7igJ0gSeKAmW0gbGlrZSwg4oCcTXkgZmlyc3Qgd2FzIDkuNSBwb3VuZHMuIEhl4oCZcyB0aW55LuKAnSBNeSBodXNiYW5kIGdvdCB0byB0ZWxsIG1lIHRoZSBzZXggb2YgdGhlIGJhYnkgd2hpY2ggd2FzIGFub3RoZXIgdGhpbmcgSSByZWFsbHksIHJlYWxseSB3YW50ZWQuIFdlIGRpZCBkZWxheWVkIGNvcmQgY2xhbXBpbmcuIFdlIGhhZCB0aGUgZ29sZGVuIGhvdXIuIFdlIGp1c3QgZ290IHRvIHNpdCB0aGVyZSBhbmQgY29tcGFyZWQgdG8gbXkgcHJpb3IgZXhwZXJpZW5jZSwgSSBqdXN0IGZlbHQgc28gY2FyZWQgZm9yLiBJIHJlbWVtYmVyIGEgbWlkd2lmZSBwdXR0aW5nIGEgY29sZCBjbG90aCBvbiBteSBoZWFkIGFuZCBJIHRoYW5rZWQgaGVyLiBIZXIgcmVzcG9uc2Ugd2FzLCDigJxJIGtub3cgeW91IGFyZSBncmF0ZWZ1bC4gU2F2ZSB5b3VyIHN0cmVuZ3RoLuKAnSBTaGUgd2FzIGp1c3QgbGlrZSwg4oCcWW91IGRvbuKAmXQgbmVlZCB0byB0ZWxsIG1lIHRoYW5rIHlvdSBhdCB0aGlzIG1vbWVudC4gSnVzdCBkb27igJl0IHRhbGsgYXQgYWxsLiBJIGtub3cgeW91IGFyZSB0aGFua2Z1bC7igJ1NZWFnYW46IEVuam95LsKgS2Vsc2V5OiBZZWFoLCBJIHdhcyBnaXZlbiB3YXRlciBpbiBiZXR3ZWVuIHB1c2hpbmcuIE15IGRvdWxhIHNhdCB0aGVyZSBhbmQgcnViYmVkIG15IGV5ZWJyb3dzIHNvIEkgd2FzbuKAmXQgdGVuc2UgYmVjYXVzZSBJIGxlYXJuZWQgYWJvdXQgdGhlIGZlYXIvdGVuc2lvbi9wYWluIGN5Y2xlLiBNeSBodXNiYW5kIGdvdCB0byBiZSBhIGh1Z2UgcGFydCBvZiBpdCBhbmQgaGUgZ290IHRvIGN1dCB0aGUgY29yZC4gSGUgZGlkbuKAmXQgZ2V0IHRvIGRvIHRoYXQgd2l0aCBvdXIgZmlyc3QuIEhlIGdvdCB0byBob2xkIG91ciBiYWJ5LiBIZSB0b3VjaGVkIGhpbSBiZWZvcmUgYW55b25lLiBJdCB3YXMganVzdOKAkyBteSBodXNiYW5kIGFuZCBJIHRhbGtlZCBhYm91dCBpdCBmb3IgYSB3aGlsZSBhZnRlcndhcmQgYW5kIGhlIHdhcyBqdXN0IGxpa2UsIOKAnFlvdSBrbm93LCB3aHkgaXMgdGhpcyBub3QgdGhlIGdvbGQgc3RhbmRhcmQgZm9yIGJpcnRoPyBXaHkgaXMgdGhpcyBub3Qgd2hhdCB3ZSBkbyBldmVyeSB0aW1lPyBUaGlzIGlzIHRoZSBtb3N0IGluY3JlZGlibGUgdGhpbmcu4oCdwqBXZSByZWNvcmRlZCB0aGUgZW50aXJlIHRoaW5nLsKgTWVhZ2FuOiBZYXkuIElmIHlvdSBkZWNpZGUgeW91IHdhbnQgdG8gc2hhcmUsIHBvc3QgaXQgaW4gdGhlIGNvbW11bml0eS7CoEtlbHNleTogVGhlcmUgaXMgYSAzMC1taW51dGUgdmlkZW8gb3V0IHRoZXJlIGJlY2F1c2UgbXkgc29uIHdhcyBhY3R1YWxseSwgc28gbXkgZmlyc3QgYmlydGggd2FzIDM4IGhvdXJzIHRvdGFsLiBNeSBzZWNvbmQgYmlydGgsIEkgaGFkIG15IGZpcnN0IHJlYWwgY29udHJhY3Rpb24gYXQgNzozMCBBTS4gTXkgc29uIHdhcyBib3JuIGF0IDEyOjM4IFBNLiBUaGVyZSB3ZXJlIDUgaG91cnMuwqBNZWFnYW46IEFub3RoZXIgZml2ZSwgYnkgdGhlIHdheS7CoEtlbHNleTogSSBrbm93LCBzbyB3ZWlyZC4gSSB3YXMgbm90IHBzeWNoaWMgZm9yIHRoaXMgYmlydGggYmVjYXVzZSBJIGhhZCBhIGJveS4gSSB3YXMgc28gY29udmluY2VkIEkgd2FzIGdvaW5nIHRvIGhhdmUgYSBnaXJsIGJ1dCBoZSB3YXMgYSBsaXR0bGUgYm95IGFuZCBoZSB3YXMgYmFieSBuby1uYW1lIGZvciBmb3VyIGRheXMuIFdlIGVuZGVkIHVwIG5hbWluZyBoaW0gT2xpdmVyLsKgMTowMDoyNCBEaWZmZXJlbmNlcyBpbiBjYXJlS2Vsc2V5OiBZZWFoLCBJIGp1c3QgZmVsdCBzbyBjYXJlZCBhYm91dCBhbmQgbG9va2VkIGFmdGVyLiBUaGVyZSB3ZXJlIGRpZmZlcmVuY2VzIGxpa2UgbXkgaHVzYmFuZCBoYWQgdG8gZ28gb3V0IGFuZCBzZWFyY2ggZm9yIGZvb2QgYWZ0ZXIgSSBnYXZlIGJpcnRoIGFmdGVyIG15IGZpcnN0LiBIZSB3YXMgc28gZXhoYXVzdGVkLCBoZSBjb3VsZG7igJl0IGdldCBvdXQgb2YgdGhlIHBhcmtpbmcgbG90IHNvIG15IG1vdGhlci1pbi1sYXcgaGFkIHRvIGRyaXZlIGluIHRvIGJyaW5nIHVzIGZvb2QuIEkgZW5kZWQgdXAgc2NhcmZpbmcgZG93biBQb3BleWXigJlzIGJ1dCBJIGhhZCBiZWVuIGludHViYXRlZCBhbmQgbXkgdGhyb2F0IGh1cnQgc28gYmFkbHkuIEkgYXRlIHRoZSB3b3JsZOKAmXMgZHJpZXN0IGJpc2N1aXQgYW5kIHRob3VnaHQgSSB3YXMgZ29pbmcgdG8gY2hva2UgYW5kIGRpZS7CoEJ1dCB3aXRoIG15IHNlY29uZCBiaXJ0aCwgdGhleSBoYWQgYSBwb3N0cGFydHVtIGRvdWxhIHdobyB3YXMgdGhlcmUuIFNoZSBvZmZlcmVkIG1lIGxlbnRpbCBzb3VwIGFuZCBhIGdyaWxsZWQgY2hlZXNlIHNvIHRoYXQgd2FzIG15IGZpcnN0IG1lYWwuwqBNZWFnYW46IFNvIG11Y2ggYmV0dGVyLsKgS2Vsc2V5OiBZZWFoLCBsb3ZlbHkgbGVudGlsIHNvdXAgYW5kIGdyaWxsZWQgY2hlZXNlLiBNeSBzb24gaGFkIGJlZW4gcGxhY2VkIG9uIG15IGNoZXN0IGJ1dCBJIHN0aWxsIGhhZCBteSBicmEgc28gdGhleSB3YXNoZWQgaXQgZm9yIG1lIGJlZm9yZSBJIGxlZnQuIEp1c3Qgc21hbGwgdGhpbmdzIGxpa2UgdGhhdCwgSSBmZWx0IGxpa2UgSSB3YXMgY2FyZWQgZm9yLsKgTWVhZ2FuOiBZZWFoLCBhYnNvbHV0ZWx5LsKgS2Vsc2V5OiBXZSBlbmRlZCB1cCBsZWF2aW5nIGF0IDU6MDAgUE0uIFdlIHdlcmUgaG9tZSBpbiB0aW1lIHRvIGVhdCBkaW5uZXIgYXQgaG9tZS7CoE1lYWdhbjogWWVhaC4gWWVhaC7CoEtlbHNleTogVGhhdCBwb3N0cGFydHVtIGV4cGVyaWVuY2Ugd2FzIGluY3JlZGlibGUuIFdlIGxpdGVyYWxseSwgSSB3YXMgYWJsZSB0byBnZXQgdXAgYW5kIHdhbGsgYW5kIEkgd2FzbuKAmXQgZGl6enkgb3IgYW55dGhpbmcuIEkgYmFyZWx5IGZlbHQgbGlrZSBJIGhhZCBhIGJhYnkuIEkgZGlkIGhhdmUgYSBzZWNvbmQtZGVncmVlIHRlYXIgYnV0IGZvciBzb21lIHJlYXNvbiB3YXMganVzdCBjb21wbGV0ZWx5IHVuYm90aGVyZWQgYnkgaXQuIE15IG1pZHdpZmUgY2FtZSB0byBtZSBwb3N0cGFydHVtIHdoaWNoIHdhcyByZWFsbHkgbG92ZWx5LsKgMTowMjoxMSBFbnRlcm92aXJ1c0tlbHNleTogSG93ZXZlciwgb25lIHRoaW5nIEkgZGlkIHdhbnQgdG8gdG91Y2ggb24gd2FzIEkgaGFkIGEgY29sZCBkdXJpbmcgbGFib3IgYW5kIHRoaXMgaXMgc29tZXRoaW5nIEkgd2FudGVkIHRvIG1lbnRpb24gYmVjYXVzZSBpdCBpcyBub3Qgc29tZXRoaW5nIEkga25ldyBhYm91dC4gSSBoYWQgYSBjb3VnaCBhbmQgZml2ZSBkYXlzIHBvc3RwYXJ0dW0sIG9uIE5ldyBZZWFy4oCZcyBFdmUsIG15IGRvdWxhIGNhbWUuIE5vdCBteSBkb3VsYSwgbXkgbWlkd2lmZS4gQXMgdGhleSBkbywgc2hlIHRlbXBlZCBteSBiYWJ5IGFuZCBoZSB3YXMgbWVhc3VyaW5nIGEgbGl0dGxlIGhvdC4gU2hlIHRlbXBlZCBoaW0gYSBzZWNvbmQgdGltZSBhbmQgaGUgd2FzIG5vcm1hbC7CoEFyb3VuZCA0OjAwIEFNIG9uIE5ldyBZZWFy4oCZcyBEYXksIEkgcmVhbGl6ZWQgaGUgd2FzIHZlcnkgd2FybS4gSSB0ZW1wZWQgaGltIGFuZCBoZSBoYWQgYSBmZXZlci4gSSBvbmx5IGtub3cgQ2Vsc2l1cyBidXQgaXQgd2FzIDM5Ljkgd2hpY2ggaXMgcmVhbGx5IGhpZ2guIEkgdGVtcGVkIGhpbSBhIHNlY29uZCB0aW1lIGFuZCBoZSB3YXMgMzkuMi4gQW55dGhpbmcgb3ZlciAzOCBpcyBhIGZldmVyLiBJIGVuZGVkIHVwIGhhdmluZyB0byB0YWtlIGhpbSB0byB0aGUgaG9zcGl0YWwgYW5kIEkgZGlkbuKAmXQga25vdyB3aGF0IHRoZSBwcm90b2NvbCB3YXMgaWYgeW91ciBiYWJ5IGdldHMgYSBmZXZlciBiZWxvdyB0d28gbW9udGhzLsKgV2Ugd2VyZSBwcmV0dHkgbXVjaCBhZG1pdHRlZCBvbiB0aGUgc3BvdC4gSGUgaGFkIHRoZSBmdWxsIHdvcmt1cC4gSGUgaGFkIGJsb29kd29yayBkb25lLiBIZSBoYWQgYSBsdW1iYXIgcHVuY3R1cmUgZG9uZS4gSGUgZGlkbuKAmXQgaGF2ZSBhIGJpcnRoIGNlcnRpZmljYXRlIGFuZCBoYWQgdG8gaGF2ZSBhIGx1bWJhciBwdW5jdHVyZSBkb25lIGJlY2F1c2UgdGhlIHByb2JsZW0gd2FzIHRoYXQgdGhleSB3ZXJlIGxvb2tpbmcgZm9yIGluZmVjdGlvbnMuIFdoZW4gdGhleSBkaWQgaGlzIGx1bWJhciBwdW5jdHVyZSwgdGhleSBkaWQgZmluZCBzb21ldGhpbmcuIEhlIGhhZCBhIHZpcnVzIGNhbGxlZCBhbiBlbnRlcm92aXJ1cy4gSW4gYWR1bHRzLCBpdOKAmXMganVzdCBhIGNvbW1vbiBjb2xkLCBidXQgaWYgeW91IGdldCBpdCB3aGlsZSB5b3UgYXJlIHByZWduYW50LCB5b3UgY2FuIHBhc3MgaXQgdGhyb3VnaCB5b3VyIHBsYWNlbnRhIHRvIHlvdXIgYmFieSBqdXN0IGJlZm9yZSB5b3UgZGVsaXZlciBhbmQgeW91ciBiYWJ5IGNhbiBiZSBib3JuIHdpdGggdGhlIHZpcnVzLsKgSXQgY2FuIGp1c3QgcHJlc2VudCBhcyBhIGZldmVyLCBidXQgaXQgY2FuIGFsc28gcHJvZ3Jlc3MgdG8gdmlyYWwgbWVuaW5naXRpcy7CoE1lYWdhbjogT2gsIHNjYXJ5LsKgS2Vsc2V5OiBNeSBzb24gd2FzIGtlcHQgaW4gdGhlIGhvc3BpdGFsIGZvciB0d28gbmlnaHRzLiBCZWNhdXNlIG9mIHRoZSBmZXZlciwgaGUgc3RvcHBlZCBudXJzaW5nLiBIZSB3YXMgc3VwZXIgc2xlZXB5IGFuZCB0aGV5IG1ha2UgeW91IHN0YXkgZm9yIHR3byBuaWdodHMgZXZlbiBpZiB0aGV5IHBlcmsgdXAgYW5kIGFyZSBudXJzaW5nIGFuZCBldmVyeXRoaW5nIHNlZW1zIGZpbmUuIFRoZXkgd2lsbCBrZWVwIHlvdSBmb3IgdHdvIG5pZ2h0cyBiZWNhdXNlIHRoZXkgYXJlIGxvb2tpbmcgZm9yIHRoaW5ncyB0byBncm93IG9uIHRoZSBsdW1iYXIgcHVuY3R1cmUuIElmIGEgZmV2ZXIgaW5kaWNhdGVzIGFuIGluZmVjdGlvbiBhbmQgYmVjYXVzZSB0aGUgYmxvb2QvYnJhaW4gYmFycmllciBpcyBzbyB0aGluLCBpbmZlY3Rpb25zIGNhbiBzcHJlYWQgc3VwZXIgcXVpY2tseSB0byB0aGUgYnJhaW4uwqBNZWFnYW46IFNjYXJ5LsKgS2Vsc2V5OiBIZSBlbmRlZCB1cCBiZWluZyBva2F5LiBIZSBkaWRu4oCZdCBoYXZlIHZpcmFsIG1lbmluZ2l0aXMgYW5kIEkgaGFkIHRoZSBtb3N0IGluY3JlZGlibGUgYW5nZWwgbnVyc2Ugd2hpbGUgSSB3YXMgdGhlcmUuIEkgd2FzIHNvIGdyYXRlZnVsIGZvciBoZXIuIEkgZm9yZ290IG15IFBlcmkgYm90dGxlIGF0IGhvbWUgYW5kIHNoZSBtYWRlIG1lIG9uZS4gU2hlIGRpZCBldmVyeXRoaW5nIHNoZSBjb3VsZCB0byBwcmV2ZW50IG15IHNvbiBmcm9tIGJlaW5nIHB1dCBvbiBhbiBORyB0dWJlIHdoaWxlIHN0aWxsIGdldHRpbmcgdGhlIGZsdWlkcyBoZSBuZWVkZWQuIFNoZSBtYW5hZ2VkIHRvIGdldCBoaW0gbnVyc2luZyBlbm91Z2ggdGhhdCB3ZSBkaWRu4oCZdCBoYXZlIHRvIHN3aXRjaCB0byBhbiBORyB0dWJlLiBXZSBkaWRu4oCZdCBoYXZlIHRvIHN3aXRjaCB0byBib3R0bGUgZmVlZGluZy4gSGUgY29udGludWVkIHRvIG51cnNlLsKgU2hlIHN0dWNrIHVwIGZvciBtZSB3aGVuIGEgcmVzaWRlbnQgY2FtZSBpbiBhbmQgd2FzIGxpa2UsIOKAnFdlbGwsIHdoYXTigJlzIGhpcyB1cmluZSBvdXRwdXQgbGlrZT/igJ0gSSB3YXMgbGlrZSwg4oCcSSBkb27igJl0IGtub3cuIEkgaGF2ZSBubyBpZGVhLuKAnSBTaGUgd2FzIGxpa2UsIOKAnEFsbCBvZiB0aGF0IGlzIGluIGhpcyBjaGFydCBpZiB5b3UganVzdCBjaGVjayBpdC4gU2hl4oCZcyBvYnZpb3VzbHkgdmVyeSB0aXJlZC4gTGVhdmUgaGVyIGFsb25lLuKAnSBJIGhhZCBhIGxvdmVseSBhbmdlbCBudXJzZSBidXQgaXQgaXMgc29tZXRoaW5nIEkgd2FudGVkIHRvIHRvdWNoIG9uIGJlY2F1c2UgSSBoYWQgbmV2ZXIgaGVhcmQgb2YgZW50ZXJvdmlydXMuIEkgZGlkIGtub3cgd2hhdCB0byBkbyBpZiB5b3VyIGJhYnkgZ290IGEgZmV2ZXIsIGJ1dCBpdCBkZWZpbml0ZWx5IGlzIHRoYXQgeW91IHRha2UgdGhlbSByaWdodCB0byB0aGUgZW1lcmdlbmN5IHJvb20uIEdlbmVyYWxseSwgdGhleSB3aWxsIGFkbWl0IHlvdSBmb3IgdHdvIGRheXMuwqBCdXQgeWVhaCwgb3RoZXJ3aXNlLCBteSBwb3N0cGFydHVtIGV4cGVyaWVuY2Ugd2FzIG5pZ2h0IGFuZCBkYXkgY29tcGFyZWQgd2l0aCBteSBDLXNlY3Rpb24uIEkgd2FzIHVwIGFuZCBtb3ZpbmcgYW5kIEkgZGlkIGV4cGVyaWVuY2UgYmFieSBibHVlcyB3aXRoIG15IGZpcnN0LiBJIGNyaWVkIGZvciB3ZWVrcy4gV2l0aCBteSBzZWNvbmQsIEkgd2FzIGp1c3Qgc28gb3ZlciB0aGUgbW9vbi4gQnV0IHllYWgsIHRoYXTigJlzIG15IFZCQUMuwqBNZWFnYW46IEkgbG92ZSBpdC4gVGhhbmsgeW91IHNvIG11Y2ggZm9yIHNoYXJpbmcgdGhhdC4gSSBoYWQgYWN0dWFsbHkgbmV2ZXIgaGVhcmQgb2YgZW50ZXJvdmlydXMuS2Vsc2V5OiBFbnRlcm92aXJ1cy5NZWFnYW46IEVudGVyb3ZpcnVzLiBJIHdhcyBsaWtlLCBXaGF0IHRoZSBoZWNrPyBUaGF04oCZcyBhY3R1YWxseSB3aXRoIGFuIEUuIEkgZGlkbuKAmXQga25vdyB0aGF0LiBJIGp1c3QgR29vZ2xlZCB0aGF0IHNvIGl04oCZcyByZWFsbHksIHJlYWxseSBnb29kIHRvIGtub3cgdGhhdOKAmXMgYSB0aGluZy4gSXQgZG9lcyBsb29rIGxpa2UgaXTigJlzIHByZXR0eSByYXJlIGJ1dCBpdOKAmXMgc29tZXRoaW5nIHRvIHRha2Ugc2VyaW91c2x5LiBTb3JyeSwgbXkgZG9nIHdhcyBiYXJraW5nIGluIHRoZSBiYWNrZ3JvdW5kLiBIZeKAmXMgZ290IHNvbWV0aGluZyB0byBzYXkgdG9vLknigJltIHNvIGhhcHB5IGZvciB5b3UgYW5kIEnigJltIHNvIGhhcHB5IHRoYXQgeW91IGNvdWxkIHNlZSB0aGF0IGl0IHdhcyBhIHZlcnkgc2ltaWxhciBzaXR1YXRpb24gd2l0aCBhbiBPUCBiYWJ5IGFuZCB0aGluZ3MgbGlrZSB0aGF0IGFuZCB5b3Ugd2VyZSBzdGlsbCBhYmxlIHRvIGRlbGl2ZXIgdmFnaW5hbGx5LiBNYXliZSBpdCB3YXMgYSBsaXR0bGUgYml0IG9mIHRoYXQgYXN5bmNsaXRpYyBwb3NpdGlvbiB0aGF0IG1heWJlIG1hZGUgaXQgYSBsaXR0bGUgaGFyZGVyIHRvIGdldCB1bmRlciB0aGF0IHB1YmljIGJvbmUuIEl0IHNvdW5kcyBsaWtlIGluIHdheXMgdGhleSB3ZXJlIHdpbGxpbmcgdG8gaGVscCB5b3UsIGJ1dCB0aGV5IGFsc28gZGlkbuKAmXQgaGVscCB5b3UgdG9vIG11Y2ggZWl0aGVyLsKgS2Vsc2V5OiBOby7CoE1lYWdhbjogWWVhaC4gSSBqdXN0IGxvdmUgdGhhdCB5b3Ugd2VyZSBhYmxlIHRvIHByb3ZlIHRvIHlvdXJzZWxmIHRvby4gTm90IHRoYXQgd2UgaGF2ZSB0byBwcm92ZSBhbnl0aGluZyB0byBvdXJzZWx2ZXMgb3IgYW55Ym9keSwgYnV0IGl0IGlzIGRlZmluaXRlbHkgbmljZSB3aGVuIHlvdSBhcmUgbGlrZSwgVGhpcyBpcyB0aGUgc2FtZSBzaXR1YXRpb24gYW5kIGxvb2ssIEkgZGlkIGl0LiBZZXMsIG15IGJhYnkgd2FzIGEgbGl0dGxlIHNtYWxsZXIsIGJ1dCBpdCBwcm9iYWJseSB3YXNu4oCZdCB0aGUgc2l6ZSBtb3JlIHRoYW4gaXQgd2FzIGp1c3QgYSBzbGlnaHQgYml0IG9mIHBvc2l0aW9uIGFuZCBwcm9iYWJseSB0aGUgY2FzY2FkZS7CoEkgbG92ZSB0aGF0LjE6MDg6MDIgUmlzayBmYWN0b3JzIGZvciBmb3JjZXBzIGFuZCB2YWN1dW0gZGVsaXZlcmllc01lYWdhbjogT2theSwgc28gYmVmb3JlIEkgbGV0IHlvdSBnbywgSSB3YW50ZWQgdG8gdG91Y2ggYSBsaXR0bGUgYml0IG1vcmUgb24gdGhvc2UgcmlzayBmYWN0b3JzIGZvciBmb3JjZXBzIGFuZCB2YWN1dW0gYmVjYXVzZSB3ZSB0YWxrZWQgYWJvdXQgdGhhdCBpbiB0aGUgYmVnaW5uaW5nIGFuZCB0ZWFyaW5nLiBUZWFyaW5nIGlzIGRlZmluaXRlbHkgYSByaXNrLiBZb3UgZXZlbiBzYWlkIHdpdGggeW91ciBWQkFDIGJhYnkgdGhhdCB5b3UgdG9yZSBhIGxpdHRsZSBiaXQgd2hpY2ggaXMgcmVhbGx5IGNvbW1vbiB3aXRoIGEgcG9zdGVyaW9yIGJhYnkgY29taW5nIG91dCB2YWdpbmFsbHkgdG9vIGp1c3QgdG8gbGV0IGxpc3RlbmVycyBrbm93LsKgVGVhcmluZyBjYW4gaGFwcGVuLiBJdCBjYW4gaGFwcGVuIHdpdGggYW55IGJhYnkuIFdlIGNhbiBnZXQgcmVjdGFsIHBhaW4uIFBvc3RlcmlvciBiYWJpZXMsIG9oIG15IGdvc2guIEFtYXppbmcgdG8gbm90IG9ubHkgbGFib3Igd2l0aCBvbmUgYnV0IHB1c2ggb25lIG91dC4gSXQgaXMgaGFyZCB3b3JrLiBZb3UgZGlkIGFuIGFtYXppbmcgam9iLiBZZWFoLiBJdCBtYXkgaGF2ZSBhIGxvd2VyIGNoYW5jZSBvciBhIGhpZ2hlciBjaGFuY2Ugb2YgY29taW5nIG91dCB2YWdpbmFsbHkganVzdCBpbiBnZW5lcmFsLsKgRm9yIGJhYnksIHRoYXQgYnJ1aXNpbmcgdG8gdGhlIGhlYWQgb3IgZXZlbiBuZXJ2ZSBkYW1hZ2UuIEl04oCZcyByZWFsbHkgcmFyZSBidXQgaXQgaXMgYSB0aGluZy4gVGVtcG9yYXJ5IHN3ZWxsaW5nLCBza3VsbCBmcmFjdHVyZXPigJMgYWdhaW4sIGl04oCZcyByYXJlIGJ1dCBpdCBpcyBhIHRoaW5nIHNvIHRoZXNlIGFyZSBhbGwgdGhpbmdzIHRvIHRha2UgaW50byBjb25zaWRlcmF0aW9uLsKgRm9yIHZhY3V1bSwgd2XigJl2ZSBnb3Qgd2Vha2VuZWQgcGVsdmljIGZsb29yLCB0ZWFycyBhcyB3ZWxsLCBwb3NzaWJsZSBldmVuIGxhcmdlciB0ZWFycyB3ZWlyZGx5IGVub3VnaCBzbyB0aGF04oCZcyBhIHRoaW5nIGFuZCB0aGVuIHllYWgsIGZvciBiYWJ5LCB0aGUgc3VjdGlvbiBjYW4gcG9wIG9mZiBhbmQgbmVlZCB0byBiZSByZXBsYWNlZCBvciBjYXVzZSBoZW1hdG9tYXMgdGhlcmUuwqBKdXN0IGFsbCB0aGluZ3MgdG8gdGFrZSBpbnRvIGNvbnNpZGVyYXRpb24uIEluIHRoZSBzaG93IG5vdGVzLCBJIGtub3cgdGhpcyB3YXNu4oCZdCBhIGNvbXBsZXRlIGZvcmNlcHMgZGVsaXZlcnksIGJ1dCBiZWNhdXNlIGl0IHdhcyBzb21ldGhpbmcgd2l0aGluIHlvdXIgc3RvcnksIEkgd2FudGVkIHRvIHRvdWNoIG9uIHRoYXQgdG9kYXkgYW5kIG1ha2Ugc3VyZSB3ZSBpbmNsdWRlZCBsaW5rcy4gSWYgeW91IGd1eXMgd2FudCB0byBsZWFybiBtb3JlLCBjaGVjayBvdXQgdGhlIHNob3cgbm90ZXMuIEFsc28sIEkganVzdCB0aGluayBpdOKAmXMgc28gZnVuIHRoYXQgeW91IGFuZCB5b3VyIGRvdWxhIHdlcmUgYXQgdGhlIGJpcnRoIGNlbnRlciBhdCB0aGUgc2FtZSB0aW1lIGdpdmluZyBiaXJ0aCBhdCB0aGUgc2FtZSB0aW1lLiBUaGVyZSBhcmUgc28gbWFueSBmdW4gdGhpbmdzIGFib3V0IHRoaXMgc3RvcnkuIEFtYXppbmcgc3VwcG9ydCBpdCBzb3VuZHMgbGlrZSBmcm9tIHlvdXIgaHVzYmFuZCwgZnJvbSB5b3VyIGZhbWlseSwgYW5kIGZyb20gYWxsIG9mIHRoZSB0aGluZ3MuIEkganVzdCBsb3ZlZCB5b3VyIHN0b3J5IGFuZCBhcHByZWNpYXRlIHlvdSBzbyBtdWNoLsKgS2Vsc2V5OiBUaGFuayB5b3UuIFRoYW5rIHlvdSBzbyBtdWNoIGZvciBoYXZpbmcgbWUuwqBNZWFnYW46IEFic29sdXRlbHkuIEl04oCZcyBiZWVuIHN1Y2ggYW4gaG9ub3IuwqBDbG9zaW5nV291bGQgeW91IGxpa2UgdG8gYmUgYSBndWVzdCBvbiB0aGUgcG9kY2FzdD8gVGVsbCB1cyBhYm91dCB5b3VyIGV4cGVyaWVuY2UgYXQgdGhldmJhY2xpbmsuY29tL3NoYXJlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBhbGwgdGhpbmdzIFZCQUMgaW5jbHVkaW5nIG9ubGluZSBhbmQgaW4tcGVyc29uIFZCQUMgY2xhc3NlcywgVGhlIFZCQUMgTGluayBibG9nLCBhbmQgTWVhZ2Fu4oCZcyBiaW8sIGhlYWQgb3ZlciB0byB0aGV2YmFjbGluay5jb20uIENvbmdyYXR1bGF0aW9ucyBvbiBzdGFydGluZyB5b3VyIGpvdXJuZXkgb2YgbGVhcm5pbmcgYW5kIGRpc2NvdmVyeSB3aXRoIFRoZSBWQkFDIExpbmsuU3VwcG9ydCB0aGlzIHBvZGNhc3QgYXQg4oCUIGh0dHBzOi8vcmVkY2lyY2xlLmNvbS90aGUtdmJhYy1saW5rL2RvbmF0aW9uc0FkdmVydGlzaW5nIElucXVpcmllczogaHR0cHM6Ly9yZWRjaXJjbGUuY29tL2JyYW5kcyIsImR1cmF0aW9uIjp7InRvdGFsTWlsbGlzZWNvbmRzIjo0MjQ0OTUwfSwiaWQiOiIxb3ZHMDkycGxQbHhIVml6Zkd1TUw0IiwibWVkaWFUeXBlcyI6WyJBVURJTyJdLCJuYW1lIjoiRXBpc29kZSAzMDYgS2Vsc2V5J3MgQmlydGggQ2VudGVyIFZCQUMgKyBUYWxrIEFib3V0IEZvcmNlcHMiLCJwbGF5YWJpbGl0eSI6eyJwbGF5YWJsZSI6dHJ1ZSwicmVhc29uIjoiUExBWUFCTEUifSwicGxheWVkU3RhdGUiOnsicGxheVBvc2l0aW9uTWlsbGlzZWNvbmRzIjowLCJzdGF0ZSI6Ik5PVF9TVEFSVEVEIn0sInBvZGNhc3RWMiI6eyJfX3R5cGVuYW1lIjoiUG9kY2FzdFJlc3BvbnNlV3JhcHBlciIsImRhdGEiOnsiX190eXBlbmFtZSI6IlBvZGNhc3QiLCJjb3ZlckFydCI6eyJzb3VyY2VzIjpbeyJoZWlnaHQiOjY0LCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDBmNjhkYmI1Zjc2YmE0MzJkZmMzMDNmMzdmODA2Iiwid2lkdGgiOjY0fSx7ImhlaWdodCI6MzAwLCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDA1ZjFmYmI1Zjc2YmE0MzJkZmMzMDNmMzdmODA2Iiwid2lkdGgiOjMwMH0seyJoZWlnaHQiOjY0MCwidXJsIjoiaHR0cHM6Ly9pLnNjZG4uY28vaW1hZ2UvYWI2NzY1NjMwMDAwYmE4YWJiNWY3NmJhNDMyZGZjMzAzZjM3ZjgwNiIsIndpZHRoIjo2NDB9XX0sIm5hbWUiOiJUaGUgVkJBQyBMaW5rIiwic2hvd1R5cGVzIjpbXSwidXJpIjoic3BvdGlmeTpzaG93OjM2YlZ4cU9HZDFFWWNSMG9KdGVGNW4ifX0sInJlbGVhc2VEYXRlIjp7Imlzb1N0cmluZyI6IjIwMjQtMDYtMDVUMDk6MzA6MDBaIn0sInJlc3RyaWN0aW9ucyI6eyJwYXl3YWxsQ29udGVudCI6ZmFsc2V9LCJ1cmkiOiJzcG90aWZ5OmVwaXNvZGU6MW92RzA5MnBsUGx4SFZpemZHdU1MNCJ9LHsiX190eXBlbmFtZSI6IkVwaXNvZGUiLCJhdWRpbyI6eyJpdGVtcyI6W3siZmlsZUlkIjoiZjA0OGY2Njg3ZTQ4ODY5ZWYzYWI4NWE2YWY0OWFiZTQ1ZWIxZjhjNSIsImZvcm1hdCI6Ik1QNF8xMjhfQ0JDUyIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3L2YwNDhmNjY4N2U0ODg2OWVmM2FiODVhNmFmNDlhYmU0NWViMWY4YzUifSx7ImZpbGVJZCI6ImQ1ZTM0NmMyZTk4ZTU1YWMwNDBiZGNiYzhlZmE1ZjlmMjRlYzkxMTUiLCJmb3JtYXQiOiJNUDRfMTI4IiwidXJsIjoiaHR0cHM6Ly9wLnNjZG4uY28vbXAzLXByZXZpZXcvZDVlMzQ2YzJlOThlNTVhYzA0MGJkY2JjOGVmYTVmOWYyNGVjOTExNSJ9LHsiZmlsZUlkIjoiZGMyMjYxNGI1ZGJkM2JiODQ5MzdlNmZmNzE0M2YxNGM4ZmVmYjQ5MSIsImZvcm1hdCI6Ik9HR19WT1JCSVNfOTYiLCJ1cmwiOiJodHRwczovL3Auc2Nkbi5jby9tcDMtcHJldmlldy9kYzIyNjE0YjVkYmQzYmI4NDkzN2U2ZmY3MTQzZjE0YzhmZWZiNDkxIn0seyJmaWxlSWQiOiI0MTI0ZGNlNTBkY2Q5NTdjYmMxYWUyYTcwOTU5M2IzYjhkOGU5NDQ2IiwiZm9ybWF0IjoiQUFDXzI0IiwidXJsIjoiaHR0cHM6Ly9wLnNjZG4uY28vbXAzLXByZXZpZXcvNDEyNGRjZTUwZGNkOTU3Y2JjMWFlMmE3MDk1OTNiM2I4ZDhlOTQ0NiJ9LHsiZmlsZUlkIjoiMzMwMzk4OGMxYWM2MDJhYmZjYWZlMzM2OWVkNThmOTRhMjRmN2U3ZiIsImZvcm1hdCI6Ik1QNF8xMjhfRFVBTCIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3LzMzMDM5ODhjMWFjNjAyYWJmY2FmZTMzNjllZDU4Zjk0YTI0ZjdlN2YifV19LCJjb250ZW50UmF0aW5nIjp7ImxhYmVsIjoiTk9ORSJ9LCJjb3ZlckFydCI6eyJzb3VyY2VzIjpbeyJoZWlnaHQiOjY0LCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDBmNjhkYmIyMWYxMzRkMGFjZWQ5MTI0NmM5OTA4Iiwid2lkdGgiOjY0fSx7ImhlaWdodCI6MzAwLCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDA1ZjFmYmIyMWYxMzRkMGFjZWQ5MTI0NmM5OTA4Iiwid2lkdGgiOjMwMH0seyJoZWlnaHQiOjY0MCwidXJsIjoiaHR0cHM6Ly9pLnNjZG4uY28vaW1hZ2UvYWI2NzY1NjMwMDAwYmE4YWJiMjFmMTM0ZDBhY2VkOTEyNDZjOTkwOCIsIndpZHRoIjo2NDB9XX0sImRlc2NyaXB0aW9uIjoiS3Jpc3RlbiBqb2lucyB1cyB0b2RheSB0byBzaGFyZSBoZXIgdG91Z2ggQy1zZWN0aW9uIGFuZCB0d28gYmVhdXRpZnVsIFZCQUMgc3RvcmllcyEgQWZ0ZXIgYSA0MS13ZWVrIGVsZWN0aXZlIGluZHVjdGlvbiB0aGF0IHR1cm5lZCBpbnRvIGEgQy1zZWN0aW9uIGFuZCBhIDIuNS13ZWVrIE5JQ1Ugc3RheSBkdWUgdG8gbWVjb25pdW0gYW5kIGhlYXJ0IGRlY2VsZXJhdGlvbnMsIEtyaXN0ZW4gd2FzIHZlcnkgbmVydm91cyBhYm91dCBnaXZpbmcgYmlydGggYWdhaW4uIFNoZSBmb3VuZCBUaGUgVkJBQyBMaW5rIFBvZGNhc3QgYW5kIGZvdW5kIGhvcGUuIFRocm91Z2ggaGVyIFZCQUMgcmVzZWFyY2gsIHNoZSBnYWluZWQgdGhlIGRldGVybWluYXRpb24gYW5kIGNvbmZpZGVuY2Ugc2hlIG5lZWRlZCB0byB0cnkgYWdhaW4uwqBXaGVuIHNoZSB3YXMgc2hvd2luZyBzeW1wdG9tcyBvZiBwcmVlY2xhbXBzaWEsIEtyaXN0ZW4gYWNjZXB0ZWQgdGhlIHJlYWxpdHkgb2YgYSBtZWRpY2FsbHkgbmVjZXNzYXJ5IGluZHVjdGlvbi4gU2hlIHdhcyBuZXJ2b3VzIGJ1dCBrbmV3IHRoaW5ncyB3b3VsZCBiZSBkaWZmZXJlbnQuIFNoZSBsYWJvcmVkIHdlbGwgYW5kIGhhZCBtb21lbnRzIG9mIGRpc2NvdXJhZ2VtZW50LCBidXQgc2hlIHVzZWQgdGhlIHRvb2xzIGF2YWlsYWJsZSBhbmQgYWNoaWV2ZWQgaGVyIFZCQUMuwqBLcmlzdGVuIGFsc28gaGFkIHNvbWUgcHJlZWNsYW1wc2lhIHN5bXB0b21zIGJ1dCB3YXMgYWJsZSB0byBhdm9pZCBpbmR1Y3Rpb24sIGxhYm9yZWQgYWxtb3N0IGNvbXBsZXRlbHkgYXQgaG9tZSwgYW5kIGNhdWdodCBoZXIgYmFieSBpbiBhIHdoZWVsY2hhaXIgYXQgdGhlIGhvc3BpdGFsIHdhaXRpbmcgZm9yIHRoZSBlbGV2YXRvciFIb3cgdG8gVkJBQzogVGhlIFVsdGltYXRlIFByZXAgQ291cnNlIGZvciBQYXJlbnRzRnVsbCBUcmFuc2NyaXB0IHVuZGVyIEVwaXNvZGUgRGV0YWlsc8KgMDE6MTEgUmV2aWV3IG9mIHRoZSBXZWVrMDQ6MjMgS3Jpc3RlbuKAmXMgZmlyc3QgcHJlZ25hbmN5MDY6MjAgQWdyZWVpbmcgdG8gaW5kdWN0aW9uMDg6MjcgRW1lcmdlbmN5IEMtc2VjdGlvbiBhbmQgTklDVSBzdGF5MTI6NTUgR2FpbmluZyBjb25maWRlbmNlIHRvIFZCQUMgYW5kIGdldHRpbmcgcHJlZ25hbnQgYWdhaW4xNzoyOCAzOS13ZWVrIGluZHVjdGlvbjIxOjE4IEZlZWxpbmcgZGlzY291cmFnZWQyNzoxNSBHZXR0aW5nIHRoZSBlcGlkdXJhbCBhbmQgcHVzaGluZyBmb3IgbGVzcyB0aGFuIGFuIGhvdXIzMDo1OCBUaGlyZCBwcmVnbmFuY3kzNDo0MSBGb3JjZWQgdG8gZmluZCBhIG5ldyBwcm92aWRlciBhdCAzNiB3ZWVrczQwOjQ1IExhYm9yIGJlZ2luczQ2OjExIFJ1c2hpbmcgdG8gdGhlIGhvc3BpdGFsNDg6MDYgRGVsaXZlcmluZyBoZXIgb3duIGJhYnkgaW4gYSB3aGVlbGNoYWlyNTE6MjcgUHJlZWNsYW1wc2lhIGFydGljbGUgYW5kIGNhbGlicmF0aW5nIHlvdXIgYmxvb2QgcHJlc3N1cmUgY3VmZk1lYWdhbjogSGV5IGV2ZXJ5Ym9keSwgd2VsY29tZSB0byB0aGUgc2hvdy4gV2UgaGF2ZSBvdXIgZnJpZW5kLCBLcmlzdGVuIHdpdGggdXMgdG9kYXkuIEhlbGxvLCBLcmlzdGVuLsKgS3Jpc3RlbjogSGkuwqBNZWFnYW46IFdlIGhhdmUgaGVyIGFuZCBoZXIgbGl0dGxlIGJhYnkgYXMgd2VsbCBzbyB5b3UgY2FuIGhlYXIgdGhvc2UgbGl0dGxlIGN1dGUgY29vcyBpbiB0aGUgYmFja2dyb3VuZC4gWW91IGNhbiBqdXN0IHNtaWxlLiBJIGxvdmUgd2hlbiB3ZSBoYXZlIGxpdHRsZSBiYWJpZXMgb24gdGhlIHBvZGNhc3Qgb3Iga2lkcy4gVGhlIG90aGVyIGRheSwgd2UgaGFkIGEgbGl0dGxlIHRvZGRsZXIuIEl0IHdhcyBzbyBmdW4uIEl0IG1ha2VzIG15IGhlYXJ0IHNvIGhhcHB5LiBIb3cgb2xkIGlzIHlvdXIgbGl0dGxlIGJhYnkgbm93P8KgS3Jpc3RlbjogU2hlIGlzIG92ZXIgYSBtb250aC4gSnVzdCBvdmVyIGEgbW9udGguwqBNZWFnYW46IEp1c3QgbGl0dGxlIGxpdHRsZS4gVGhpcyBpcyBhIFZCQUMgYmFieS7CoEtyaXN0ZW46IFllcywgc2hlIGlzLsKgTWVhZ2FuOiBXZSB3ZXJlIGp1c3QgdGFsa2luZyBiZWZvcmUgd2UgZ290IHJlY29yZGluZy4gS3Jpc3RlbiBoYWQgYSBDLXNlY3Rpb24gYW5kIHRoZW4gYSBWQkFDIGFuZCB3aXRoIHRoYXQgVkJBQywgc2hlIGhhZCBwcmVlY2xhbXBzaWEuIFdlIGFyZSBnb2luZyB0byB0YWxrIGEgbGl0dGxlIGJpdCBtb3JlIG9mIHdoYXQgdGhhdCBsb29rZWQgbGlrZSwgYnV0IHRoYXQgaGFzIGRlZmluaXRlbHkgYmVlbiBvbmUgb2YgdGhlIHRoZW1lcyB0aGF0IG91ciBsaXN0ZW5lcnMgaGF2ZSBiZWVuIGFza2luZyBhYm91dC4gSXMgVkJBQyBwb3NzaWJsZSB3aXRoIGxhYi1wb3NpdGl2ZSBwcmVlY2xhbXBzaWE/IFRoZSBhbnN3ZXIgaXMgeWVzLiBJdCBpcy4gV2Ugd2lsbCB0YWxrIGEgbGl0dGxlIGJpdCBtb3JlIGFib3V0IHRoYXQgYW5kIHRoZW4gc2hlIGhhcyBhIHN1cnByaXNlLsKgMDE6MTEgUmV2aWV3IG9mIHRoZSBXZWVrTWVhZ2FuOiBXZSBhcmUgZ29pbmcgdG8gcmVhZCBhIHJldmlldyBhbmQgdGhlbiB3ZSBhcmUgZ29pbmcgdG8gZGl2ZSBpbnRvIGhlciBzdG9yaWVzLsKgVGhpcyByZXZpZXcgd2FzIGxlZnQgaW4gTWFyY2ggMjAyMyBieSBtY2dyYWNlIGFuZCBpdCBzYXlzLCDigJxNdXN0LWxpc3RlbiBGb3IgRXZlcnkgTW9t4oCdLiBJdCBzYXlzLCDigJxUaGlzIHBvZGNhc3QgaXMgYSBtdXN0LWxpc3RlbiBub3QganVzdCBmb3IgYSBtb20gcHJlcGFyaW5nIGZvciBhIFZCQUMsIGJ1dCBmb3IgYW55b25lIHdobyBnaXZlcyBiaXJ0aCBhbmQgaGFzIGdpdmVuIGJpcnRoIG9yIHBsYW5zIHRvIGdpdmUgYmlydGggaW4gdGhlIFUuUy4gTWVhZ2FuIHdvbmRlcmZ1bGx5IHdhbGtzIHRocm91Z2ggcGVyc29uYWwgc3RvcmllcyB3aGlsZSBwcmVwcGluZyBmb3IgaGVscGluZyBmb3IgaGVscGZ1bCBhZHZvY2FjeSB0aXBzIGFuZCBhIHNvbGlkIGRvc2Ugb2YgZW1wb3dlcm1lbnQgaW4gZWFjaCBlcGlzb2RlLiBJZiB5b3Ugd2FudCB0byBoZWFyIHBlb3BsZSBkaXNjdXNzaW5nIHRoZWlyIHBsYW4gdG8gVkJBQywgaWYgeW91IGFyZSBjdXJpb3VzIGFib3V0IHdoYXQgZ2l2aW5nIGJpcnRoIGluIHRoZSBVLlMuIGlzIGxpa2UsIGFuZCBpZiB5b3UgYXJlIHdhbnRpbmcgdG8gaGF2ZSB0aXBzIG9uIGhvdyB0byBtZW50YWxseSwgZW1vdGlvbmFsbHksIGFuZCBwaHlzaWNhbGx5IHByZXBhcmUgeW91cnNlbGYgZm9yIHRoZSBiZXN0IGJpcnRoLCB0aGlzIGlzIHRoZSBwb2RjYXN0IHRvIGxpc3RlbiB0by7igJ1JIGxvdmUgdGhhdC4gVGhhbmsgeW91IHNvIG11Y2ggYW5kIEkgYWdyZWUuIFRoaXMgaXMgc3VjaCBhIGdyZWF0IHBsYWNlIGZvciBldmVyeWJvZHksIGFueW9uZSBwcmVwYXJpbmcgZm9yIGJpcnRoIHRvIGxpc3Rlbi4gSSB0aGluayB3aXRoIGNyYXp5LWhpZ2ggQ2VzYXJlYW4gcmF0ZXMsIHdl4oCZdmUgdGFsa2VkIGFib3V0IHRoaXMgYmVmb3JlLiBXZSBoYXZlIHRvIHRhbGsgYWJvdXQgd2h5IHRoZXkgYXJlIGhhcHBlbmluZyBhbmQgdGhpcyBwb2RjYXN0IGxpdGVyYWxseSBzaGFyZXMgYSBsb3Qgb2Ygd2h5IENlc2FyZWFucyBhcmUgaGFwcGVuaW5nLiBJdCBpcyBzdWNoIGEgZ3JlYXQgcG9kY2FzdCBmb3IgYW55b25lIGluY2x1ZGluZyBmaXJzdC10aW1lIG1vbXMgb3IgZXZlbiBmaWZ0aC10aW1lIG1vbXMgd2hvIGhhdmVu4oCZdCBoYWQgYSBDZXNhcmVhbi7CoEFzIGFsd2F5cywgaWYgeW91IHdvdWxkbuKAmXQgbWluZCBsZWF2aW5nIHVzIGEgcmV2aWV3LCB5b3UgY2FuIGhlYWQgb3ZlciB0byBBcHBsZSBQb2RjYXN0cyBvciBHb29nbGUgb3IgU3BvdGlmeSBvciB3aGVyZXZlciB5b3UgYXJlIGxpc3RlbmluZyBhbmQgZHJvcCB1cyBhIHJldmlldy4gWW91IGNhbiBldmVuIGVtYWlsIHVzIGF0IGluZm9AdGhldmJhY2xpbmsuY29tLjA0OjIzIEtyaXN0ZW7igJlzIGZpcnN0IHByZWduYW5jeU1lYWdhbjogT2theSwgS3Jpc3Rlbi4gV2VsY29tZS4gV2VsY29tZSwgd2VsY29tZSBhbmQgdGhhbmsgeW91IHNvIG11Y2ggZm9yIGJvb2tpbmcgdGhpcy4gV2UgYXJlIHNvIGV4Y2l0ZWQgdGhhdCB5b3Ugd2VyZSB3aWxsaW5nIHRvIGNvbWUgb24uwqBLcmlzdGVuOiBJIGFtIHNvIGV4Y2l0ZWQgdG8gYmUgaGVyZS4gSSBoYXZlIGhlYXJkIHNvIG1hbnkgc3RvcmllcyBhbmQgYmVlbiBlbmNvdXJhZ2VkIGJ5IHNvIG11Y2ggc28gaXQgaXMgc28gYXdlc29tZSB0byBzaGFyZSBtaW5lLsKgTWVhZ2FuOiBZZXMuIFdlbGwsIEkgd291bGQgbG92ZSB0byB0dXJuIHRoZSB0aW1lIG92ZXIgdG8geW91LsKgS3Jpc3RlbjogT2theSwgc28gSSBnb3QgcHJlZ25hbnQgcHJldHR5IHlvdW5nLiBJIHdhcyAyMCBhdCB0aGUgdGltZSBhbmQgSSB3YXMgaW4gY29sbGVnZSBzbyB3aGVuIEkgZ290IHByZWduYW50LCBpdCB3YXMgYSBsaXR0bGUgYml0IG9mIGEgc3VycHJpc2UuIEl0IHdhcyBhIGxpdHRsZSBiaXQgb2YgYSBjcmF6eSBwcmVnbmFuY3kgbW92aW5nIGFuZCBmaWd1cmluZyBhbGwgb2YgdGhhdCBvdXQsIGJ1dCBJIGdvdCB0byBtb3ZlIGhvbWUgdG8gbXkgYmlnLCBjcmF6eSBmYW1pbHkuIEkgaGFkIGEgbG90IG9mIHN1cHBvcnQuwqBJIGhhZCBhIHJlYWxseSBub3JtYWwgcHJlZ25hbmN5LiBJIHdhcyBwcmV0dHkgeW91bmcgYW5kIGEgbG90IG9mIG15IHNpc3RlcnMgaGFkIGhhZCBiYWJpZXMsIHNvIEkgZmVsdCBsaWtlIEkga25ldyBhIGxpdHRsZSBiaXQgYWJvdXQgYmlydGggYW5kIEkgcmVhbGx5IGRpZG7igJl0IHB1dCBhbnkgZWZmb3J0IGludG8gbG9va2luZyBhbnkgZGVlcGVyIGludG8gaXQuIEkgZmVsdCBsaWtlIG15IG1vbSBoYWQgc2l4IGtpZHMgbmF0dXJhbGx5IGFuZCBJIGp1c3QgdGhvdWdodCwgT2theS4gVGhpcyBpcyBqdXN0IHdoYXQgd2UgZG8uwqBJIGhhZCBtaWR3aXZlcy4gSSBoYWQgYSBzdXBlciBub3JtYWwgcHJlZ25hbmN5IGFuZCB0aGVuIEkgZ290IHRvIHRoZSBlbmQgYW5kIEkgd2FzIHZlcnkgZG9uZSBiZWluZyBwcmVnbmFudC4gSSB3YXMganVzdCByZWFkeSB0byBtZWV0IG15IGxpdHRsZSBiYWJ5IGFuZCBoYXZlIG15IGJhYnkuIEkgd2FzIG9mZmVyZWQgYSA0MS13ZWVrIGluZHVjdGlvbi4gSSB0aGluayBpdCB3YXMganVzdCBvZmZlcmVkIHRvIG1lIGFuZCBJIHdhcyBsaWtlLCDigJxNZWV0IG15IGJhYnkgb24gRnJpZGF5PyBTb3VuZHMgZ3JlYXQu4oCdwqBJIGRpZG7igJl0IHRoaW5rIGFueXRoaW5nIG9mIGl0LiBNeSBtb20gaGFkIGFsbCBvZiBoZXIgYmFiaWVzIG5hdHVyYWxseSBhbmQgc2hlIGRpZCBzZWVtIGEgbGl0dGxlIHdhcnkgdG8gbWUsIGJ1dCBJIGp1c3Qgd2FzIHRoaW5raW5nIEkgYW0gaHVnZS4gSSBnZXQgeW91IGFyZSB3YXJ5LCBidXQgSSB3YW50IHRvIGRvIHRoaXMuIEkgd2FudCB0byBtZWV0IG15IGJhYnkuwqAwNjoyMCBBZ3JlZWluZyB0byBpbmR1Y3Rpb25LcmlzdGVuOiBJIGhhZCBhIEZvbGV5IHBsYWNlZCB0aGUgbmlnaHQgYmVmb3JlIG15IGluZHVjdGlvbiBkYXRlIHNvIEkgaGFkIGEgRm9sZXkgcGxhY2VkIGFuZCBJIHdhcyBnb2luZyB0byBnbyBob21lLiBXaGVuIHNoZSBwbGFjZWQgdGhlIEZvbGV5LCBzaGUgdG9sZCBtZeKAlCBJIGNhbuKAmXQgcmVtZW1iZXIgZXhhY3RseSB3aGVuIHRoZXkgZmFsbCBvdXQsIGJ1dCBJIHdhcyBvbmx5IGEgY2VudGltZXRlciBiZWxvdy4gSSB0aGluayBJIHdhcyAzIGNlbnRpbWV0ZXJzLiBTaGUgd2FzIGxpa2UsIOKAnE9oIHdvdy4gWW91IHJlYWxseSBzdHJldGNoZWQgd2hlbiBJIHB1dCB0aGlzIGluLiBJIG1pZ2h0IHNlZSB5b3UgYmVmb3JlIHlvdXIgaW5kdWN0aW9uLuKAnSBJIHdhcyBsaWtlLCDigJxHcmVhdC7igJ3CoEkgd2VudCBob21lIGFuZCB0aGVuIHdlIGdvdCB0aGVyZSBpbiB0aGUgbW9ybmluZy4gSSB3YXNu4oCZdCBmZWVsaW5nIGFueXRoaW5nLiBJIHdhcyBpbmR1Y2VkIGFuZCBpdCB3YXMganVzdCB0aGUgbmF0dXJhbCBjYXNjYWRlIG9mIHRoaW5ncy4gSSBnb3QgUGl0b2NpbiBhbmQgdGhlbiBJIGhhZCBHQlMgc28gSSBoYWQgdG8gZ2V0IHRoZSBhbnRpYmlvdGljcywgYnV0IEkgdGhvdWdodCBJIHdhcyBhbGxlcmdpYyB0byB0aGVtIGJlY2F1c2UgSSBoYWQgYSByZWFjdGlvbiBhcyBhIGtpZCBzbyB0aGV5IGhhZCB0byBnaXZlIG1lIHNvbWV0aGluZyBlbHNlLiBJIGRvbuKAmXQga25vdyB3aGF0ZXZlciBlbHNlIGFudGliaW90aWMgdGhleSBoYWQgdG8gZ2l2ZSBtZSwgYnV0IGl0IHdhcyBzb21ldGhpbmcgZGlmZmVyZW50LsKgSXQgbWFkZSBtZSBmZWVsIHN1cGVyLCBzdXBlciBzaWNrLiBJIGp1c3Qgd2FudGVkIHRvIGxheSBpbiBiZWQuIEkgd2FzIGxpa2UsIEkgZmVlbCBzaWNrIGFuZCBJIGRvbuKAmXQgd2FudCB0byBzdGFuZCB1cC4gSeKAmW0gaW4gbGFib3IgYW5kIEkgZG9u4oCZdCBmZWVsIGdvb2QuIFNvIEkganVzdCBsYWlkIHRoZXJlIHByZXR0eSBtdWNoLsKgVGhlbiBJIGdvdCBhbiBlcGlkdXJhbCBhbmQgSSBnb3QgdG8gYSAxMC4gSSBwdXNoZWQgZm9yIDMgaG91cnMgYnV0IGhpcyBoZWFkIG5ldmVyIGNhbWUuIEhlIHdhcyBoYXZpbmcgc29tZSBkZWNhbHMgc28gYWxsIG9mIGEgc3VkZGVuLCBJIGp1c3QgaGVhcmQgdGhlIHdvcmQg4oCcQy1zZWN0aW9u4oCdIGFuZCBJIHdhcyBzbyBzaG9ja2VkLiBJdCBkaWRu4oCZdCBjb21lIGludG8gbXkgYnJhaW4gYXQgYWxsIGJlZm9yZSB0aGV5IHNhaWQgaXQuIEkgZG9u4oCZdCBrbm93IHdoeS4gSXQgd2FzIGEgbG9uZyBkYXkuIEkgaGFkIHN0YXJ0ZWQgYXQgNTowMCBBTSBhbmQgYnkgdGhlIGVuZCBvZiBteSBwdXNoaW5nLCBpdCB3YXMgMTI6MDAgUE0uIEkgZGlkbuKAmXQgdGhpbmsgb2YgYSBDLXNlY3Rpb24gYmVmb3JlIHRoYXQuwqBNZWFnYW46IEkgdGhpbmsgYSBsb3Qgb2YgdXMgZG9u4oCZdC4gSXTigJlzIG5vdCByZWFsbHkgc29tZXRoaW5nIHRoYXQgd2UgcGxhbiBmb3Igb3IgZXZlbiB0aGluayBhYm91dC7CoEtyaXN0ZW46IFllcy4gU28gaXTigJlzIHJlYWxseSBqYXJyaW5nIHdoZW4geW91IGhlYXIgaXQuwqAwODoyNyBFbWVyZ2VuY3kgQy1zZWN0aW9uIGFuZCBOSUNVIHN0YXlLcmlzdGVuOiBUaGVuIHdlIGhhZCB0byBnbyBkb3duIGZvciB0aGUgZW1lcmdlbmN5IEMtc2VjdGlvbiBiZWNhdXNlIG15IHdhdGVyIGhhZCBicm9rZW4gYW5kIHRoZXJlIHdhcyBtZWNvbml1bSBhbmQgaGUgd2FzIGRlY2VsaW5nIHF1aXRlIGEgYml0IGFsbCBkYXkuIFdlIHdlbnQgaW4gZm9yIG15IEMtc2VjdGlvbi4gSSB3YXMgcHJldHR5IHNjYXJlZC4gTXkgaHVzYmFuZCB3YXMgcmVhbGx5IHNjYXJlZCBhbmQgd2UganVzdCB3ZW50IGluLiBJIHdhcyBzdXBlciBzaGFreSBhbmQgSSB3YXMgdGVycmlmaWVkLiBJIGRvbuKAmXQgZG8gd2VsbCB3aXRoIHRoYXQga2luZCBvZiBzdHVmZiwgc28gSSBzYXkgdGhlIHdvcnN0IHBhcnQgb2YgZ2l2aW5nIGJpcnRoIGlzIHRoZSBJVnMuIEkgd2FzIHN1cGVyIG5lcnZvdXMgYW5kIHRoZW4gdGhleSBuZWVkZWQgdG8gZ2V0IGhpbSBvdXQgc28gdGhleSB0b2xkIG1lLCDigJxZb3UgaGF2ZSB0byB0cnkgdG8gY2FsbSBkb3duIGFuZCB0cnkgdG8gc3RvcCBzaGFraW5nIHNvIG11Y2jigJ0gYmVjYXVzZSB0aGV5IG5lZWRlZCB0byBnZXQgdG8gaGltLsKgSSBkb27igJl0IHJlbWVtYmVyIGV4YWN0bHkgd2hhdCBoYXBwZW5lZC4gSSBqdXN0IHJlbWVtYmVyIGxheWluZyB0aGVyZSBhbmQgdGhlIGFuZXN0aGVzaW9sb2dpc3Qgd2FzIGp1c3QgbGlrZSwg4oCcU2hlIG5lZWRzIHRvIGNhbG0gZG93bi4gRG8geW91IHdhbnQgbWUgdG8gZ2l2ZSBoZXIgc29tZXRoaW5nP+KAnSBJIGp1c3QgcmVtZW1iZXIgbG9va2luZyB1cCBhdCB3aG8gd2FzIGRvaW5nIG15IEMtc2VjdGlvbiBhbmQgd2hvIHdhcyBzb21lYm9keSBjb21wbGV0ZWx5IG5ldyBiZWNhdXNlIG15IG1pZHdpZmUgY291bGRu4oCZdCBkbyBpdC7CoEkgcmVtZW1iZXIgdGhlbSBzaGFraW5nIHRoZWlyIGhlYWQgYW5kIHJpZ2h0IGFmdGVyIHRoYXQsIGhlIG11c3QgaGF2ZSBwdXQgc29tZXRoaW5nIGluIHRvIHRyeSB0byBjYWxtIG1lIGRvd24uIEkgY2FsbWVkIGRvd24sIGJ1dCBhbGwgb2YgYSBzdWRkZW4sIEkgZmVsdCBsaWtlIEkgY291bGRu4oCZdCB0YWxrLiBJIGNvdWxkbuKAmXQgc3BlYWsuIEkgd2FzIGp1c3QgbHlpbmcgdGhlcmUuIEkgd2FzIHNvIHNjYXJlZC7CoEkgZmVsdCBteSBzb24gYmVpbmcgcHVsbGVkIG91dC4gSSBmZWx0IHRoZW0gd2lnZ2xpbmcgaGltIG91dCBvZiBteSBib2R5IGFuZCB0aGVuIEkgZGlkbuKAmXQgaGVhciBoaW0gY3J5LiBJIGp1c3QgcmVtZW1iZXIgbG9va2luZyBhdCBteSBodXNiYW5kIGFuZCBJIHdhcyBtYWQgYXQgaGltIGFsbW9zdC4gSSB3YXMgbGlrZSwg4oCcSGXigJlzIG91dCBhbmQgaGXigJlzIG5vdCBjcnlpbmcuIEkgY2Fu4oCZdCBzYXkgYW55dGhpbmcuIFlvdSBuZWVkIHRvIHNheSBzb21ldGhpbmcu4oCdIEhlIGRpZG7igJl0IGtub3cgaGUgd2FzIG91dCwgYnV0IEkgZmVsdCBsaWtlIGhlIHNob3VsZCBrbm93IGhlIHdhcyBvdXQuwqBTbyB0aGVuIG15IHNvbiBoYWQgdG8gZ28gdG8gdGhlIE5JQ1UgYmVjYXVzZSBoZSBhc3BpcmF0ZWQgbWVjb25pdW0uIEkganVzdCByZW1lbWJlciB0aGVtIGxpZnRpbmcgaGltIHVwIGFuZCB0aGUgTklDVSBudXJzZXMgc2hvd2luZyBoaW0gb3ZlciB0aGUgZHJhcGUgYXMgdGhleSB3ZXJlIHJ1bm5pbmcgb3V0IGFuZCB0aGV5IHdlcmUgbGlrZSwg4oCcSGVyZSwgbWFtYSzigJ0gYW5kIHNob3dlZCBtZSBoaW0uIEkganVzdCByZW1lbWJlciBmZWVsaW5nIGxpa2Ugc3VjaCBhIGJhZCBtb20uIEV2ZXJ5Ym9keSBzYXlzLCDigJxPaCwgd2hlbiB5b3Ugc2VlIHlvdXIgYmFieSBhbmQgd2hlbiB5b3UgZmVlbCB5b3VyIGJhYnksIGl04oCZcyBqdXN0IHRoaXMgb3ZlcndoZWxtaW5nIHNlbnNlIG9mIHNvbWV0aGluZyB5b3XigJlsbCBuZXZlciBmZWVsIGFnYWluLOKAnSBhbmQgSSBkaWRu4oCZdCBmZWVsIHRoYXQuIEkgZmVsdCBub3RoaW5nLsKgSSBjb3VsZG7igJl0IHRhbGsuIEkganVzdCBmZWx0IG5vdGhpbmcgYW5kIEkgd2FzIHNvIHNjYXJlZCBhbmQganVzdCBudW1iIGF0IHRoYXQgcG9pbnQuwqBNeSBodXNiYW5kIHdlbnQgd2l0aCBteSBzb24gYW5kIGV2ZXJ5Ym9keSBoYWQgdG9sZCB1cyBhbGwgZGF5IHRoYXQgRGFkIGdldHMgdG8gc3RheSB3aXRoIGJhYnkgaWYgc29tZXRoaW5nIGJhZCB3ZXJlIHRvIGhhcHBlbiBzbyBJIHdhcyBqdXN0IGFzc3VtaW5nLCBPa2F5LCBhdCBsZWFzdCBteSBiYWJ5IGlzIG5vdCBhbG9uZS4gTXkgaHVzYmFuZCBpcyB3aXRoIGhpbS4gVGhlbiB0aGV5IHN0YXJ0ZWQgdG8gc2V3IG1lIHVwLCBidXQgSSBkb27igJl0IGtub3cgZXhhY3RseSB3aGF0IGhhcHBlbmVkLiBJIGp1c3QgcmVtZW1iZXIgdGhlbSBzYXlpbmcsIOKAnFRoZXJl4oCZcyBibG9vZCB3aGVyZSB0aGVyZSBzaG91bGRu4oCZdCBiZS7igJ0gVGhleSBzYWlkIHNvbWV0aGluZyBhYm91dCBob3cgdGhleSBuaWNrZWQgbXkgYmxhZGRlci7CoFRoZXkgd2VyZSBzZXdpbmcgbWUgdXAgYW5kIHRoZW4gdGhleSBoYWQgdG8gZ28gYmFjayBpbiBhbmQgZG8gc29tZXRoaW5nLCBidXQgbXkgcG9vciBodXNiYW5kIGF0IHRoZSB0aW1lLCB0aGVyZSB3YXMgYSB0cmF2ZWxpbmcgTklDVSB0aGF0IGRpZG7igJl0IGtub3cgZGFkcyBnb3QgdG8gc3RheSBpbiB0aGVyZSB3aXRoIGJhYnkgc28gaGUga2lja2VkIG15IGh1c2JhbmQgb3V0IG9mIHRoZSBOSUNVIGF0IHRoYXQgcG9pbnQgYW5kIHRoZW4gaGUgc2FpZCB3aGVuIGhlIGNhbWUgb3V0LCBoZSB3YXMgaW4gdGhlIGhhbGx3YXkgaW4gYmV0d2VlbiB0aGUgT1IgYW5kIHRoZSBOSUNVIGFuZCBoZSBqdXN0IHNhaWQsIOKAnEkganVzdCBzYXcgYSBidW5jaCBvZiBwZW9wbGUgcnVzaGluZyBiYWNrIGludG8geW91ciBPUiBhbmQgcnVzaGluZyBiYWNrIGluIHRoZXJlLOKAnSBhbmQgdGhlbiBoZSBzYWlkIHNvbWVib2R5IGp1c3QgcHV0IGhpbSBpbiB0aGVyZSBsaWtlLCDigJxXaGF0IGFyZSB5b3UgZG9pbmc/4oCdwqBIZSB3YXMgbGlrZSwg4oCcSSBkb27igJl0IGtub3cs4oCdIHNvIHRoZXkgcHV0IGhpbSBpbiBhIG1haW50ZW5hbmNlIGNsb3NldC7CoE1lYWdhbjogT2ggbXkgZ29vZG5lc3MuwqBLcmlzdGVuOiBZZXMsIHNvIGhlIHdhcyBsaWtlLCDigJxJIGp1c3Qgd2FzIGluIHRoZSBjbG9zZXQgdGhpbmtpbmcgeW91IGd1eXMgd2VyZSBib3RoIG5vdCBva2F5IGFuZCBJIGRpZG7igJl0IGtub3cgd2hhdCB0byBkby7igJ0gU28gdGhhdCB3YXMgYSBsaXR0bGUgY3JhenkgYW5kIHRoZW4gbXkgYmFieSB3YXMgaW4gdGhlIE5JQ1UgZm9yIDIuNSB3ZWVrcy4gVGhhdCB3YXMgYSB2ZXJ5IGxvbmcsIHZlcnkgZGlmZmljdWx0IHByb2Nlc3MgZm9yIHVzIGJlY2F1c2UgSSBqdXN0IHdhbnRlZCBteSBiYWJ5IHRvIGJlIGhvbWUgYW5kIG15IGJhYnkgdG8gYmUgaGVhbHRoeS7CoEtyaXN0ZW46IFdlIGhhZCBzb21lIHJlYWxseSBhbWF6aW5nIG51cnNlcyBhbmQgdGhlbiB3ZSBoYWQgc29tZSBub3QgYW1hemluZyBudXJzZXMgYW5kIG51cnNlcyBhcmUgc3VjaCBhIGJpZyB0aGluZy4gVGhleSByZWFsbHkgY2hhbmdlIHlvdXIgd2hvbGUgZGF5LiBUaGV5IGNoYW5nZSBldmVyeXRoaW5nIGFib3V0IHlvdXIgaG9zcGl0YWwgZXhwZXJpZW5jZSB3aGVuIHlvdSBoYXZlIGEgZ29vZCBudXJzZSBhbmQgd2hlbiB5b3UgaGF2ZSBvbmUgd2hvIGlzIGp1c3Qgbm90IHZlcnkgc3VwcG9ydGl2ZS7CoFRoYXQgd2FzIGEgcmVhbGx5IGRpZmZpY3VsdCBleHBlcmllbmNlLsKgMTI6NTUgR2FpbmluZyBjb25maWRlbmNlIHRvIFZCQUMgYW5kIGdldHRpbmcgcHJlZ25hbnQgYWdhaW5LcmlzdGVuOiBUaGVuIHdoZW4gd2UgZ290IGhvbWUsIEkgZGlkbuKAmXQgcmVhbGx5IHRoaW5rIGFib3V0IGFub3RoZXIgYmFieSBmb3IgYSB3aGlsZSBiZWNhdXNlIEkgd2FzIHNvIHNjYXJlZC4gT25jZSBJIGRpZCwgSSBqdXN0IHJlbWVtYmVyIHNheWluZywg4oCcWW91IGtub3cgd2hhdD8gSWYgSSBnbyBpbiBhbmQgdGhlIGRvY3RvciB0ZWxscyBtZSBJIGhhdmUgdG8gaGF2ZSBhbm90aGVyIEMtc2VjdGlvbiBiZWNhdXNlIHRoYXTigJlzIHdoYXQgaXMgYmVzdCBmb3IgbXkgYmFieSwgdGhlbiB0aGF04oCZcyBva2F5LiBJ4oCZbGwgZ2V0IHRocm91Z2ggaXQgYW5kIHRoYXQgd2lsbCBiZSBva2F5LiBNeSBiYWJ5IHdpbGwgYmUgaGVhbHRoeS7igJ3CoFRoZW4gSSBzdGFydGVkIGRvaW5nIGEgbGl0dGxlIHJlc2VhcmNoIGFuZCBJIGZvdW5kIFRoZSBWQkFDIExpbmsuIEkgdGhpbmsgSSBiaW5nZWQgZm9yIGEgZnVsbCAyNCBob3Vycy4gSSBkb27igJl0IHRoaW5rIEkgc2xlcHQuIEFmdGVyIHRoYXQsIGFmdGVyIDI0IGhvdXJzLCBJIHdhcyBsaWtlLCBOb2JvZHkgY2FuIHRlbGwgbWUgdGhhdCBJIGNhbuKAmXQgZG8gdGhpcy4gSSBjYW4gZG8gdGhpcy4gRnJvbSB0aGVuIG9uLCB0aGlzIHdhcyBhIGNvdXBsZSBvZiB5ZWFycyBiZWZvcmUgSSB3YXMgcHJlZ25hbnQuIEkgbGlzdGVuZWQuIEkgZGlkIHJlc2VhcmNoLiBJIGhhZCBjYWxsZWQgYW5kIG1ldCB3aXRoIGRvdWxhcyBhbmQgaG9tZSBiaXJ0aCBtaWR3aXZlcyBhbmQgZXZlcnlvbmUgYmVmb3JlIEkgd2FzIGV2ZW4gcHJlZ25hbnQuwqBUaGV5IHdvdWxkIGJlIGxpa2UsIOKAnFdoYXQgaXMgeW91ciBkdWUgZGF0ZT/igJ0gSSB3YXMgYWx3YXlzIGxpa2UsIOKAnFdlbGwsIEkgZG9u4oCZdCBoYXZlIG9uZS4gSeKAmW0gbm90IHByZWduYW50IHlldC7igJ0gVGhleSB3b3VsZCBhbHdheXMgYmUgbGlrZSwg4oCcT2theS7igJ0gQnV0IGl0IHdhcyBncmVhdCBhbmQgSSBmZWx0IGEgbG90IG1vcmUgcHJlcGFyZWQgd2l0aCBteSBzZWNvbmQuwqBJIGRpZCBmZWVsIGxpa2UgSSB3YXMgZ29pbmcgaGFuZHMgdXAgYSBsaXR0bGUgYml0LiBJIGZlbHQgbGlrZSBJIHdhcyByZWFkeSB0byBmaWdodCB3aGVuIEkgbmVlZGVkIHRvIGZpZ2h0LsKgSSBnb3QgcHJlZ25hbnQgYWdhaW4uIFNoZSB3YXMgYm9ybiBpbiAyMDIyIHNvIEkgZ290IHByZWduYW50IGluIDIwMjEuIEkgZ290IHByZWduYW50IGFnYWluLiBJdCB3YXMgYW4gZWFzeSBwcmVnbmFuY3kuIEkgd2FzIHN1cGVyIHNpY2sgYXQgdGhlIGJlZ2lubmluZywgYnV0IGl0IHdhcyBhIHByZXR0eSBlYXN5IHByZWduYW5jeS4gSSBzdGFydGVkIGdldHRpbmcgQnJheHRvbiBIaWNrcyBhdCAyMCB3ZWVrcyB3aGljaCBpcyB2ZXJ5IGRpZmZlcmVudCB0aGFuIG15IHByZXZpb3VzIHByZWduYW5jeS4gSSBoYWQgdGhlbSBhbGwgbXkgcHJlZ25hbmN5IGV2ZXJ5IG5pZ2h0IGZvciBhbGwgb2YgbXkgcHJlZ25hbmN5IHdoaWNoIHdhcyB2ZXJ5IGNyYXp5LsKgTWVhZ2FuOiBXaG9hLsKgS3Jpc3RlbjogWWVhaCwgYnV0IEkgaGFkIHN3aXRjaGVkIHByb3ZpZGVycyBzbyBJIHN0YXJ0ZWQgd2l0aCBhIHByb3ZpZGVyIGJlY2F1c2UgSSB3YW50ZWQgdG8gZ28gd2l0aCBhIGRpZmZlcmVudCBob3NwaXRhbCBpbml0aWFsbHkuIFdoZW4gSSB3ZW50IHRvIHRoaXMgcHJvdmlkZXIsIGhlIHRvbGQgbWUgYWxsIGFib3V0IHV0ZXJpbmUgcnVwdHVyZSBpbiB0aGUgZmlyc3QgYXBwb2ludG1lbnQuIEkgaGFkIHN0YXRpc3RpY3Mgd3JpdHRlbiBpbiBteSBwaG9uZSBiZWNhdXNlIEkga25ldyB3aGVuIEkgd2VudCBpbiB0aGVyZSwgaGUgd2FzIGdvaW5nIHRvIHNjYXJlIG1lIGFuZCBJIGtuZXcgSSBqdXN0IG5lZWRlZCB0byBsb29rIGF0IG15IHN0YXRpc3RpY3MgdG8gZmVlbCBiZXR0ZXIuwqBUaGF04oCZcyBraW5kIG9mIHdoYXQgaGFwcGVuZWQsIGJ1dCBoZSBkaWQgcHVzaCBiYWNrIGEgbG90IG9uIHRoaW5ncy4gSGUgd2FudGVkIG1lIHRvIGdldCBhIHRlc3QgZXBpZHVyYWwuwqBNZWFnYW46IE1obW0sIHRoZSBqdXN0LWluLWNhc2UuwqBLcmlzdGVuOiBZZXMgYW5kIHRvIGJlIGhvbmVzdCwgdGhlIGJlc3Qgd2F5IEkgaGFuZGxlZCB0aGluZ3Mgd2FzLCBJIGZlZWwgbGlrZSBpdOKAmXMgcmVhbGx5IGRpZmZpY3VsdCB0byB0YWxrIHRvIGEgcHJvdmlkZXIgaW4gYW4gYXBwb2ludG1lbnQuIEkganVzdCBmZWVsIGxpa2UgdGhlIHBvd2VyIGZlZWxzIGFsbCB0aGVpcnMgYW5kIHdoZW4gdGhleSBhcmUgc2F5aW5nIHRoaW5ncywgaXQgcmVhbGx5IGRvZXMgc291bmQgc2Nhcnkgd2hldGhlciBvciBub3QuIEkga25ldyBzbyBtdWNoIGluZm9ybWF0aW9uIGFuZCBpdCB3b3VsZCBzdGlsbCBzb3VuZCBzY2FyeS7CoFRoZXkgd291bGQgYmUgc2F5aW5nIHNvbWV0aGluZyBhbmQgSSBmZWx0IGxpa2UgSSB3YXMgdGhlcmUgYW5kIG15IGJhYnkgd2FzIGRlY2tsaW5nIGFuZCBJIGRpZCBuZWVkIHRoZSBDLXNlY3Rpb24uIEkgd291bGQgZ2V0IHNjYXJlZCBpbiBteSBhcHBvaW50bWVudHMsIHRoZW4gSSB3b3VsZCBnbyBob21lIGFuZCBJIHdvdWxkIGRvIG1vcmUgcmVzZWFyY2ggYW5kIEkgZmVsdCByZWFsbHkgc2VjdXJlIGluIG15IGRlY2lzaW9uLsKgSSB3ZW50IGJhY2sgdG8gaGltIGFuZCBJIHRvbGQgaGltIHRoYXQgSSB3b3VsZCBub3QgYmUgZ2V0dGluZyB0aGF0LiBJIHRvbGQgaGltLCBJIGp1c3QgbGV0IGhpbSBrbm93IHRoYXQgaWYgaXQgd2FzIHRoYXQgbXVjaCBvZiBhbiBlbWVyZ2VuY3ksIEkgd291bGQgYmUgdW5kZXIgYW5lc3RoZXNpYSBlaXRoZXIgd2F5IHNvIEkgZGlkbuKAmXQgdW5kZXJzdGFuZCB3aHkgSSBuZWVkZWQgYSBuZWVkbGUgaW4gbXkgYmFjay7CoEhlIGtpbmQgb2YgZ2lnZ2xlZCBhbmQgaGUgd2FzIGxpa2UsIOKAnFdlbGwsIHlvdeKAmXJlIHJpZ2h0LiBZb3XigJl2ZSByZXNlYXJjaGVkLCBzbyBva2F5LuKAncKgTWVhZ2FuOiBTdG9wIGl0LiBObyB3YXkuIE9oIG15IGdvc2guwqBLcmlzdGVuOiBZZWFoLiBJIGVuZGVkIHVwIHN3aXRjaGluZyBwcm92aWRlcnMgYXQgMjAgd2Vla3MgYWZ0ZXIgSSBtZXQgbXkgZG91bGEgYmVjYXVzZSBJIHRvbGQgaGVyIGp1c3QgYSBmZXcgdGhpbmdzIHRoYXQgSSBkaWRu4oCZdCBmZWVsIGFzIHN1cHBvcnRlZCB3aXRoIGhpbSBhbmQgc2hlIGxldCBtZSBrbm93IGEgbWlkd2lmZSB3aG8gSSBoYWQgbmV2ZXIgaGVhcmQgYWJvdXQuwqBJIG1ldCB3aXRoIHRoaXMgbWlkd2lmZSBhcm91bmQgMjAgd2Vla3MuIEkgZ2F2ZSBoZXIgYSByZWFsbHkgbG9uZyBsaXN0LiBJIGdhdmUgaGVyIGEgdmVyeSBsb25nIGxpc3Qgb2YgcGFwZXJzIHRvIHRlbGwgaGVyIGV4YWN0bHkgd2hhdCBJIHdhbnRlZCBhbmQgc2hlIHdhcyB2ZXJ5LCB2ZXJ5IGFwdCB0byBkb2luZyBldmVyeXRoaW5nLiBTaGUgd291bGQgc2F5IHRoaW5ncyBiZWZvcmUgSSBldmVuIHdvdWxkIHRhbGsgYWJvdXQgdGhlbS5JIHdvdWxkIGFzayBoZXIgYWJvdXQgYW4gZXBpZHVyYWwgYW5kIHNoZSB3b3VsZCBzYXksIOKAnE5vLCB5b3UgZG9u4oCZdCBuZWVkIG9uZSBhbmQgdG8gYmUgZG9pbmcgdGhpcywgeW91IG5lZWQgdG8gYmUgZWF0aW5nIGJlZm9yZS7igJ0gSSB3b3VsZCBhc2sgYWJvdXQgYWxsIG9mIHRoZXNlIHRoaW5ncyBzbyBJIGZlbHQgcmVhbGx5IHNlY3VyZSBnb2luZyB3aXRoIGhlci7CoDE3OjI4IDM5LXdlZWsgaW5kdWN0aW9uS3Jpc3RlbjogQXQgMzggd2Vla3MsIEkgZ290IHRvIG15IGFwcG9pbnRtZW50IGFuZCBJIGhhZCBoaWdoIGJsb29kIHByZXNzdXJlLiBJdCB3YXMgcHJldHR5IGhpZ2ggYW5kIHNoZSBqdXN0IHdhcyBsaWtlLCDigJxJ4oCZbSBnb2luZyB0byBkbyBhIHVyaW5lIHRlc3QgZm9yIHByZWVjbGFtcHNpYS7igJ0gSSByZWFsbHkgaGFkIG5ldmVyIGhlYXJkIG9mIHByZWVjbGFtcHNpYS4gSSBoYWQgaGVhcmQgb2YgaXQuIEkganVzdCBoYWQgbmV2ZXIgZG9uZSBhbnkgcmVzZWFyY2ggb24gaXQuIEkgZGlkbuKAmXQgdW5kZXJzdGFuZCB3aGF0IGl0IHdhcy7CoEkgZGlkIHRoZSB1cmluZSB0ZXN0IGFuZCBJIHJlYWxseSB3YXMgdGhpbmtpbmcgaXQgd2FzIGp1c3QgZ29pbmcgdG8gY29tZSBiYWNrIGZpbmUuIEkgZmVsdCBhYnNvbHV0ZWx5IGZpbmUuIEkgaGFkIG5vIHN5bXB0b21zLsKgSXQgc2VlbWVkIHRoYXQgaXQgd2FzIGdvaW5nIHRvIGJlIG9rYXkgYW5kIHRoZW4gaXQgd2FzbuKAmXQuIFNoZSB0b2xkIG1lIHRoYXQgSSB3YXMgZ29pbmcgdG8gbmVlZCB0byBiZSBpbmR1Y2VkLiBJIHdhcyB2ZXJ5LCB2ZXJ5IG5lcnZvdXMuIEkgcmVhbGx5IHdhbnRlZCB0byBhdm9pZCBhbiBpbmR1Y3Rpb24gYmVjYXVzZSBteSBmaXJzdCB3YXMgaW5kdWNlZCBhbmQgSSBmZWx0IGxpa2UgdGhhdCB3YXMgbGVhZGluZyB1cCB0byBteSBDLXNlY3Rpb24gc28gSSB3YXMgc3VwZXIgbmVydm91cyBhYm91dCBhIFZCQUMgYmVpbmcgaW5kdWNlZC7CoEJ1dCBzaGUgd2FzIHZlcnkgc3VwcG9ydGl2ZSBvZiBtZS4gU2hlIHJlYWxseSB1bmRlcnN0b29kIHRoYXQgSSB3YXMgdmVyeSwgdmVyeSBuZXJ2b3VzIGFuZCBzaGUgd2FzIHZlcnkgcmVzcGVjdGZ1bCB3aXRoIHRoYXQuwqBTbyB3ZSBlbmRlZCB1cCBiZWluZyBpbmR1Y2VkIGF0IDM5IHdlZWtzIGFuZCBJIHdlbnQgaW4uIEkgaGFkIGEgRm9sZXkgYnVsYiBwbGFjZWQgYW5kIHRoZW4gSSBqdXN0IHJlc3RlZCB0aGUgcmVzdCBvZiB0aGUgbmlnaHQuIFlvdSBkb27igJl0IHNsZWVwIGluIHRoZSBob3NwaXRhbCwgYnV0IEkgcHJldGVuZC1yZXN0ZWQgZm9yIHRoZSByZXN0IG9mIHRoZSBuaWdodC7CoFRoZW4gaW4gdGhlIG1vcm5pbmcsIEkgZ290IHVwIGFuZCB0aGV5IHdlcmUgbGlrZSwg4oCcWWVhaCwgeW91IHNlZW0gdG8gYmUgcHJvZ3Jlc3Npbmcu4oCdIFRoZXkgc3RhcnRlZCBtZSBvbiBhIGxvdyBkb3NlIG9mIFBpdG9jaW4uIEkganVzdCB0b2xkIHRoZW0gSSB3YW50ZWQgcmVhbGx5IGxvdyBhbmQgc2xvdyBzbyB3ZSBkaWQgdGhhdC4gSSBoYWQgcXVpdGUgYSBiaXQgb2YgQnJheHRvbiBIaWNrcyBvciBwcm9kcm9tYWwgbGFib3IuIEkgZG9u4oCZdCBleGFjdGx5IGtub3cgd2hpY2guIEkgaGFkIHF1aXRlIGEgYml0IG9mIHRoYXQgYmVmb3JlaGFuZC7CoEkgd2FzIGF0IGEgNSBhbmQgcHJldHR5IGFjdGl2ZWx5IGNvbnRyYWN0aW5nLiBUaGV5IHdlcmUgbGlrZSwg4oCcSG9uZXksIHlvdSBkb27igJl0IGZlZWwgYW55dGhpbmc/4oCdIEkgd2FzIGxpa2UsIOKAnE5vLCBJIGZlZWwgc29tZXRoaW5nLiBJIGp1c3QgZmVlbCB3aGF0IEkgZmVlbCBhdCBob21lIGFsbCBvZiB0aGUgdGltZS7igJ0gU28gSSB3YXMgbGlrZSwg4oCcVGhpcyBpcyB2ZXJ5IHNpbWlsYXIu4oCdIEkgZ290IHByZXR0eSBkaXNjb3VyYWdlZCBiZWNhdXNlIEkgZmVsdCBsaWtlIG5vdGhpbmcgd2FzIGhhcHBlbmluZy4gSXQgd2FzIDI6MDAgb3IgMzowMCBQTSB0aGUgbmV4dCBkYXkgc28gSSBoYWQgYmVlbiBpbiB0aGUgaG9zcGl0YWwgZm9yIDIwIGhvdXJzIGF0IHRoYXQgcG9pbnQuIEkganVzdCBmZWx0IHJlYWxseSBkaXNjb3VyYWdlZCBiZWNhdXNlIEkgZmVsdCBsaWtlIG5vdGhpbmcgd2FzIGhhcHBlbmluZyBhbmQgSSBqdXN0IGVtb3Rpb25hbGx5IGJyb2tlIGRvd24gdG8gbXkgaHVzYmFuZCBhbmQgdG9sZCBoaW0sIOKAnFdoYXQgaWYgd2UgZG8gdGhpcyBhbmQgZXZlcnl0aGluZyBoYXBwZW5zIHRoZSBzYW1lPyBJIHdvcmtlZCB0aGlzIGhhcmQgYW5kIEkgZm91Z2h0IHRoaXMgaGFyZCBmb3IgdGhpcyBhbmQgSeKAmW0ganVzdCBnb2luZyB0byBnbyBpbiBhbmQgSeKAmW0gZ29pbmcgdG8gaGF2ZSBhbm90aGVyIEMtc2VjdGlvbi7igJ1JIGtuZXcgdGhhdCBoYXZpbmcgYW5vdGhlciBlbWVyZ2VuY3kgQy1zZWN0aW9uIHdhcyBnb2luZyB0byBiZSB3b3JzZSBmb3IgdGhpcyBiYWJ5IHRoYW4gaWYgSSBqdXN0IGhhZCBhIHJlZ3VsYXIgQy1zZWN0aW9uLiBJIHdhcyBzbyB1cHNldC4gSSBoYWQgbXkgZW1vdGlvbmFsIGJyZWFrZG93biwgdGhlbiBhZnRlciB0aGF0LCBJIGtlcHQgZ29pbmcuIEkgd2FzIGRvaW5nIGV2ZXJ5dGhpbmcuwqBXaGVuIHRoZXkgcHV0IG1lIGluIHRoYXQgcm9vbSBiZWZvcmUgdGhlIG51cnNlcyBjYW1lIGluIHRvIGV2ZW4gbWVldCBtZSwgSSB3YXMgZG9pbmcgU3Bpbm5pbmcgQmFiaWVzLiBJIHdhcyBkb2luZyBldmVyeXRoaW5nIEkgcG9zc2libHkgY291bGQgdG8gZ2V0IHRoaXMgYmFieSBvdXQuIFRoZSBudXJzZXMgd291bGQgZXZlbiBjb21tZW50IGFuZCBzYXksIOKAnFdvdy4gWW91IGp1c3QgZG9u4oCZdCBzdG9wIG1vdmluZywgZG8geW91P+KAnSBJIGp1c3QgZmVsdCBsaWtlIGEgbGl0dGxlIGdlcmlhdHJpYyBwYXRpZW50IHdpdGggYWxsIG9mIG15IGxpdHRsZSB0dWJlcyBhdHRhY2hlZCB0byBtZSBhbmQgSSB3YXMganVzdCB3YWxraW5nIGFyb3VuZC7CoDIxOjE4IEZlZWxpbmcgZGlzY291cmFnZWRLcmlzdGVuOiBZZWFoLCBzbyB0aGVuIGF0IHRoYXQgcG9pbnQsIHRoaW5ncyBzdGFydGVkIHRvIHByb2dyZXNzIGEgdGlueSBiaXQuIEkgd2FzIHByb2dyZXNzaW5nLCBidXQgbm90aGluZyBhIHRvbiB3YXMgaGFwcGVuaW5nIHNvIG15IG1pZHdpZmUgY2FtZSBpbiBhbmQgbGV0IG1lIGtub3cgdGhhdCB0aGUgb25seSB0aGluZyBzaGUgY291bGQgZG8gYmVzaWRlcyBQaXRvY2luIHdhcyBicmVhayBteSB3YXRlci7CoEkgd2FzIHJlYWxseSBpbiBteSBoZWFkIGF0IHRoaXMgcG9pbnQgaW4gbGFib3IuIEkgZmVsdCBsaWtlIEkgcmVhbGx5IG5lZWRlZCB0byBhZHZvY2F0ZSBmb3IgbXlzZWxmLiBNeSBkb3VsYSB3YXMgaGVscGluZyBtZSBhbmQgdGV4dGluZyBtZSB0aGUgd2hvbGUgdGltZSB0ZWxsaW5nIG1lIHdoYXQgSSBjb3VsZCBkby4gU2hlIGp1c3QgbGV0IG1lIGtub3cgdGhhdCBvbmNlIHRoaW5ncyByZWFsbHkgcHJvZ3Jlc3NlZCwgdGhlbiBzaGUgd291bGQgY29tZSBpbi7CoEkgYXQgdGhhdCBwb2ludCB3YXMgcmVhbGx5IGp1c3QgdHJ5aW5nIHRvIHBsYXkgdGhlIHJpc2sgb2Ygd2hhdCBQaXRvY2luIEkgd2FudGVkLiBEbyBJIHdhbnQgdG8gc3RheSBsb3cgYW5kIHNsb3c/IEkganVzdCByZWFsbHkgZGlkbuKAmXQgd2FudCBteSBjZXJ2aXggdG8gdGlyZSBvdXQgc28gSSBsZXQgdGhlbSBwdXNoIGl0IHVwIGEgbGl0dGxlIGJpdCBtb3JlLiBJIGp1c3Qgd2FzIHJlYWxseSBpbiBteSBoZWFkIGFib3V0IHRyeWluZyB0byBtYWtlIHRoZSBiZXN0IGRlY2lzaW9uIHdoaWNoIGlzIHNpbGx5IGJlY2F1c2UgSSBjb3VsZG7igJl0IGhhdmUgY29udHJvbCBvZiBldmVyeXRoaW5nIGJ1dCBJIGZlbHQgbGlrZSBJIG5lZWRlZCB0byB0byBoYXZlIG15IFZCQUMuwqBUaGluZ3Mga2VwdCBwcm9ncmVzc2luZyBhbmQgYXQgMTA6MDAsIHRoZXkgYXNrZWQgbWUgdG8gYnJlYWsgbXkgd2F0ZXIgYmVjYXVzZSB0aGF0IHdhcyB0aGUgbmV4dCBzdGVwLiBJIGhhZCBiZWVuIG9uIFBpdG9jaW4gYWxsIGRheSBzbyBJIHdhcyBhIGxpdHRsZSBiaXQgd29ycmllZCBhYm91dCBteSBjZXJ2aXggZ2V0dGluZyB0aXJlZC4gSSB0b2xkIHRoZW0gSSB3YXMgZmluZSB3aXRoIHRoYXQuwqBUaGUgY29udHJhY3Rpb24gYWZ0ZXIgdGhleSBicm9rZSBteSB3YXRlciwgSSB3YXMgbGlrZSwgT2ggbXkgZ29vZG5lc3MuIEhlcmUgaXMgdGhlIHBhaW4gdGhhdCBldmVyeW9uZSB0YWxrcyBhYm91dC7CoE1lYWdhbjogQW5kIEkgZmVlbCBpdC4gSSBmZWVsIGl0LsKgS3Jpc3RlbjogWWVzLiBJIHdhcyBsaWtlLCBPaCBteSBnb29kbmVzcy4gVGhlbiBpdCBmZWx0IGxpa2UgSSB3YXMgYWN0dWFsbHkgaW4gbGFib3IuIE15IGRvdWxhIGNhbWUgYXQgdGhhdCBwb2ludC4gU2hlIHdhcyBkb2luZyBzb21lIHJlYm96byBvbiBtZSBhbmQgc2hha2luZyBhcHBsZXMuwqBNZWFnYW46IFllcCwgc2hha2luZyB0aGUgYXBwbGVzLsKgS3Jpc3RlbjogWWVzLiBUaGF0IHdhcyBncmVhdC4gU2hlIGJyb3VnaHQgb3V0IHRoZSBURU5TIHVuaXQgd2hpY2ggd2FzIGFtYXppbmcuIE9oIG15IGdvb2RuZXNzLiBJdCBoZWxwZWQgc28gbXVjaC4gVGhleSBwdXQgaXQgb24gbXkgYmFjayBhbmQgaXQgd2FzIGp1c3QgYW1hemluZy7CoEkgd2FzIHN0YW5kaW5nIHVwIG1vdmluZyBteSBoaXBzLiBJIGhhZCB0aGUgVEVOUyB1bml0IG9uIGFuZCBJIHdhcyByZWFsbHkgd29ya2luZyB0aHJvdWdoIHRoaW5ncyBhbmQgSSBzdGFydGVkIHRvIGZlZWwgbGlrZSBJIHdhcyBnb2luZyB0byB0aHJvdyB1cC4gSSBzdGFydGVkIHRvIGdldCBob3QgYW5kIGNvbGQuIEkgd291bGQgaGF2ZSBhIGNvbnRyYWN0aW9uIHRoZW4gaW4gdGhlIG1pZGRsZSBvZiBhIGJyZWFrIGZvciBhIHNlY29uZCwgSSBoYWQgdG9sZCBoZXIgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbnRyYWN0aW9uLCDigJxJIHRoaW5rIEnigJltIGdvaW5nIHRvIHRocm93IHVwLuKAnSBUaGVuIEkgbG9va2VkIGF0IGhlciBhZnRlciBhbmQgSSB3YXMgbGlrZSwg4oCcSSB0aGluayBJ4oCZbSBnb2luZyB0byB0aHJvdyB1cC7igJ0gSSB3YXMgc28gZXhjaXRlZCBiZWNhdXNlIEkgd2FzIGxpa2XigJRNZWFnYW46IFRoaXMgaXMgaXQuwqBLcmlzdGVuOiBZZXMuIEkgd2FzIGxpa2UsIOKAnEkgdGhpbmsgSSBtaWdodCBiZSBpbiBvciBuZWFyaW5nIHRyYW5zaXRpb24gYXQgdGhpcyBwb2ludC7igJ0gSSBoYWQgYW1hemluZyBudXJzZXMgdGhlIHdob2xlIHByb2Nlc3MuIEkganVzdCBoYWQgYW1hemluZyBudXJzZXMuIEkgaGFkIGFza2VkIGZvciBudXJzZXMgdGhlIHdob2xlIHRpbWUgd2hvIGFncmVlZCB3aXRoIEh5cG5vQmlydGhpbmcgb3Igd2hvIHdlcmUgdHJhaW5lZCBpbiBIeXBub0JpcnRoaW5nLiBJIGhhZCBub3QgZG9uZSB0aGF0LCBidXQgSSBqdXN0IHdhbnRlZCB0aGVtIHdobyB3ZXJlIGEgbGl0dGxlIG1vcmUgaG9saXN0aWMgYW5kIGEgbGl0dGxlIG1vcmUgbmF0dXJhbC7CoE9uZSBvZiBteSBudXJzZXMgYWN0dWFsbHkgc2FpZCwg4oCcWW914oCZcmUgbm90IGRvaW5nIEh5cG5vQmlydGhpbmcu4oCdIEkgc2FpZCwg4oCcSSBrbm93LuKAnSBTaGUgd2FzIGxpa2UsIOKAnFlvdSBqdXN0IHdhbnQgc29tZWJvZHkgd2hv4oCZcyBnb2luZyB0byBsZXQgeW91IGRvIHdoYXQgeW91IHdhbnQsIGh1aD/igJ0gSSBzYWlkLCDigJxZZWFoLCBhYnNvbHV0ZWx5LuKAnSBTaGUgc2FpZCwg4oCcT2theS4gSSBoYXZlIHRoZSBwZXJmZWN0IG51cnNlIGZvciB5b3UgbmV4dCB0aW1lLuKAnUkgaGFkIGFtYXppbmcgbnVyc2VzIHRoZSB3aG9sZSB0aW1lLiBUaGV5IHdlcmUgc28gZW5jb3VyYWdpbmcuwqBNZWFnYW46IE9oIGdvb2QuwqBLcmlzdGVuOiBCdXQgbXkgbnVyc2UgbXVzdCBoYXZlIGJlZW4gZG9pbmcgc29tZXRoaW5nIHNvIGFub3RoZXIgbnVyc2UgY2FtZSBpbiB0byBjaGVjayBtZSBhdCB0aGlzIHBvaW50IGFuZCBzaGUgd2FzIG5vdCBhcyBuaWNlIGFuZCBhbWF6aW5nLiBTaGUgdG9sZCBtZSB0aGF0IHNoZSBuZWVkZWQgdG8gY2hlY2sgbWUuIEkgd2FzIGFib3V0IHRvIGdldCBvbiB0aGUgYmVkIGFuZCBJIGhhZCBhbm90aGVyIGNvbnRyYWN0aW9uIHNvIEkgc3RvcHBlZCByaWdodCBvdXRzaWRlIG9mIHRoZSBiZWQgYW5kIHB1dCBteSBoYW5kcyBvbiB0aGVyZS7CoFNoZSB0b2xkIG1lLCDigJxHZXQgb24gdGhlIGJlZC4gSSBuZWVkIHRvIGNoZWNrIHlvdS7igJ0gSSBjb3VsZG7igJl0IHNwZWFrIGJlY2F1c2UgSSB3YXMgaW4gYSBjb250cmFjdGlvbiwgYnV0IEkgd2FzIHRoaW5raW5nLCBPaCBteSBnb29kbmVzcy4gSSBmaW5hbGx5IGVuZGVkIHVwIGdldHRpbmcgb24gdGhlIGJlZC4gU2hlIGxvb2tlZCBhdCBtZSBhbmQgdG9sZCBtZSBJIHdhcyBhIDYuwqBJbiBteSBoZWFkLCBJIHdhcyBub3QgYSA2LiBUaGUgd2hvbGUgcm9vbSBjaGFuZ2VkIGZvciBtZSBhdCB0aGF0IG1vbWVudC4gSSB3YXMgdmVyeSBkaXNjb3VyYWdlZC7CoFdoZW4gc2hlIHRvbGQgbWUgSSB3YXMgYSA2LCBteSBkb3VsYeKAmXMgZmFjZSB3YXMgcmlnaHQgYmVoaW5kIGhlciBzaGFraW5nIGhlciBoZWFkIG5vLiBTaGUganVzdCB3YXMgbG9va2luZyBhdCBtZSBzaGFraW5nIGhlciBoZWFkIGFuZCBzaGUgd2FzIGxpa2UsIOKAnE5vIHlvdSBhcmUgbm90LOKAnSBidXQgSSBkb27igJl0IGtub3cuIEkgd2FzIGV4aGF1c3RlZCBhbmQgSSBqdXN0IGJyb2tlIG1lbnRhbGx5IGluIHRoYXQgbW9tZW50IHdoZW4gc2hlIHRvbGQgbWUgSSB3YXMgYSA2LiBJIGp1c3QgaGVhcmQgSSBjYW7igJl0IGRvIGl0LiBJIGNhbuKAmXQgZG8gdGhpcy4gVGhpcyBpcyB0b28gbXVjaC4gSSBjYW7igJl0IGJlbGlldmUgSeKAmW0gYXQgYSA2LCBiZWNhdXNlIGF0IHRoYXQgcG9pbnQsIHdoZW4gSSBnb3QgaW50byBiZWQsIEkgZmVsdCBwdXNoeS4gSSBmZWx0IHJlYWxseSBwdXNoeS4gRHVyaW5nIG15IGNvbnRyYWN0aW9uLCBJIHdhcyBiZWFyaW5nIGRvd24gYSBsaXR0bGUgYml0LsKgSSBqdXN0IHRob3VnaHQsIE9rYXksIGlmIEnigJltIHB1c2hpbmcgYXQgNiwgYmFieSBpcyBpbiBhIGJhZCBwb3NpdGlvbi4gSSBqdXN0IHdhcyBzbyBuZXJ2b3VzLsKgSSBnb3QgdXAuIEkgd2VudCB0byB0aGUgYmF0aHJvb20uIE15IGRvdWxhIGFjdHVhbGx5IHRvbGQgbWUsIOKAnFlvdSBuZWVkIHRvIGdldCB1cC4gV2XigJlyZSBnb2luZyB0byB0aGUgYmF0aHJvb20s4oCdIHNvIHNoZSBqdXN0IHRvb2sgbWUgdG8gdGhlIGJhdGhyb29tIGFsb25lIGp1c3QgaGVyIGFuZCBJLiBTaGUgbG9va2VkIGF0IG1lIGFuZCBzaGUgc2FpZCwg4oCcRG8geW91IHRoaW5rIHlvdeKAmXJlIGEgNj/igJ0gSSB3YXMgY3J5aW5nIGF0IHRoaXMgcG9pbnQuIEkgd2FzIGxpa2UsIOKAnE5vLCBJIGRvbuKAmXQuIEkgZG9u4oCZdCB0aGluayBJIGFtLuKAnSBTaGUgd2FzIGxpa2UsIOKAnEkgZG8gbm90IHRoaW5rIHlvdSBhcmUgYSA2IGF0IGFsbC4gSSB0aGluayB5b3Uga25vdyB3aGVyZSB5b3UgYXJlLuKAnSBJIHdhcyBsaWtlLCDigJxJIGtub3csIGJ1dCB3aGF0IGlmIEkgcmVhbGx5IGFtPyBJZiBzaGUgc2F5cyBJIGFtLCBJIGFtLuKAnUkgYnJva2UgZW1vdGlvbmFsbHkgYW5kIEkganVzdCB3YXMgbGlrZSwg4oCcSeKAmW0gc28gdGlyZWQu4oCdIEkgd2FzIHNvIHRpcmVkLiBJIGhhZG7igJl0IHNsZXB0IGluIDI0IGhvdXJzIGF0IHRoYXQgcG9pbnQgYW5kIEkgd2FzIGp1c3Qgc28gZXhoYXVzdGVkIGFuZCB1cHNldC4gSSB0b2xkIGhlciwg4oCcSSB3YW50IGFuIGVwaWR1cmFsLuKAnSBTaGUga25ldyB0aGF0IHdhcyBub3QgbXkgcGxhbiBzbyBzaGUgcmVhbGx5IHRyaWVkIHRvIGVuY291cmFnZSBtZSBhZ2FpbnN0IGl0IGFuZCB0b2xkIG1lIEkgd2FzIGRvaW5nIHN1Y2ggYSBnb29kIGpvYi4gSSBjb3VsZG7igJl0IGhlYXIgaXQgYXQgdGhhdCBwb2ludC4gQWxsIEkgY291bGQgaGVhciB3YXMgdGhlIGRvdWJ0LsKgMjc6MTUgR2V0dGluZyB0aGUgZXBpZHVyYWwgYW5kIHB1c2hpbmcgZm9yIGxlc3MgdGhhbiBhbiBob3VyS3Jpc3RlbjogSSBqdXN0IHRvbGQgaGVyLCDigJxObywgSSB3YW50IGFuIGVwaWR1cmFsLuKAnSBBdCB0aGF0IHBvaW50LCBzaGUgc2hpZnRlZCBnZWFycyBhbmQgd2FzIGxpa2UsIOKAnE9rYXksIHRoZW4gd2XigJlyZSBnZXR0aW5nIGFuIGVwaWR1cmFsIGFuZCB0aGlzIGlzIGdvaW5nIHRvIGJlIGdyZWF0IGFuZCB5b3XigJlyZSBnb2luZyB0byBnZXQgc29tZSByZXN0LuKAnSBJIHdhcyBhIGxpdHRsZSBkaXNjb3VyYWdlZCwgYnV0IEkgZW5kZWQgdXAgZ2V0dGluZyB0aGUgZXBpZHVyYWwgYXQgMzowMCBBTSBhdCB0aGlzIHBvaW50LiBJIGdvdCB0aGUgZXBpZHVyYWwgYW5kIEkgYWN0dWFsbHkgZ290IGFuIGhvdXIgb2YgcmVzdCB3aGljaCB3YXMgcmVhbGx5IGFtYXppbmcgYmVjYXVzZSBJIHdhcyBleGhhdXN0ZWQgYnV0IHdoZW4gdGhleSBoYWQgZ2l2ZW4gbWUgdGhlIGVwaWR1cmFsLCB0aGV5IGNoZWNrZWQgbWUgYXQgc29tZSBwb2ludCBhZnRlciB0aGlzIGFuZCBJIHdhcyBhIDkuNS7CoFNoZSBsb29rZWQgYXQgbWUgYW5kIGdhdmUgbWUgYW4gZXllIGxpa2UsIFllcywgeW91IHdlcmUgbm90IGEgNi4gSXQgd2FzIG5pY2UuIEkgZ290IGFuIGhvdXIgb2YgcmVzdCBhbmQgdGhlbiB0aGV5IGNhbWUgaW4gYW5kIHRvbGQgbWUgdGhhdCBJIHdhcyByZWFkeS4gVGhpcyBzd2VldCwgc3dlZXQgbnVyc2UgY2FtZSBpbiBhbmQgdG9sZCBtZSB0aGF0IEkgd2FzIHJlYWR5IHRvIHN0YXJ0IHByYWN0aWNlLXB1c2hpbmcgb3Igc29tZXRoaW5nIGxpa2UgdGhhdC4gSSB3YXMgbGlrZSwg4oCcT2theS7igJ1JIHdhcyBhIGxpdHRsZSBuZXJ2b3VzIGFib3V0IHRoZSBwdXNoaW5nIHBhcnQganVzdCBiZWNhdXNlIEkgcHVzaGVkIHdpdGggbXkgc29uIGZvciBzbyBsb25nIGFuZCBoaXMgaGVhZCBuZXZlciBzaG93ZWQgc28gSSB3YXMgbGlrZSwgT25jZSB3ZSBnZXQgcGFzdCBhIGhlYWQsIEkgd2lsbCBiZSB0aGVyZS5JIHB1c2hlZCBpbiBvbmUgcG9zaXRpb24gb24gbXkgc2lkZSBhbmQgdGhlbiB0aGUgbnVyc2UgbG9va2VkIGF0IG1lIGFuZCBzaGUgd2FzIGxpa2UsIOKAnFlvdSBrbm93LCB3ZeKAmXJlIGdvaW5nIHRvIHRyeSB0dWctb2Ytd2FyLuKAnSBTaGUgcHV0IHRoZSBzcXVhdCBiYXIgdXAgYW5kIEkgZGlkIGEgdHVnLW9mLXdhciBwdXNoIGFuZCByaWdodCB3aGVuIEkgZGlkIHRoYXQsIGhlciBleWVzIGdvdCBiaWcgYW5kIHNoZSByYW4gb3ZlciBhbmQgZ290IG9uIHRoZSBwaG9uZS4gSSBqdXN0IHJlbWVtYmVyIGhlciBzYXlpbmcgc29tZXRoaW5nIGxpa2UsIOKAnFdoZW4gc2hlIHB1c2hlcyBpbiBzb21lIHBvc2l0aW9uLCBJIHNlZSBzb21ldGhpbmcgYWJvdXQgYmFieeKAmXMgaGVhZC7igJ0gSSBqdXN0IHJlbWVtYmVyIGhlciBzYXlpbmcsIOKAnEJhYnnigJlzIGhlYWQu4oCdIEksIGluIHRoZSBiZWQsIHdhcyBsaWtlLCDigJxZb3Ugc2FpZCBiYWJ54oCZcyBoZWFkP+KAnSBJIHdhcyBzbyBleGNpdGVkLiBJIHdhcyBsaWtlLCDigJxUaGV5IHNhdyBiYWJ54oCZcyBoZWFkLuKAncKgSSBwdXNoZWQgZm9yIGEgbGl0dGxlIGxlc3MgdGhhbiBhbiBob3VyIGFuZCBzaGUgd2FzIHRoZXJlLiBJdCB3YXMgZXZlcnl0aGluZy4gRXZlcnl0aGluZyB3ZW50IGF3YXkgZm9yIG1lIGF0IHRoYXQgcG9pbnQuIEkgd2FzIGp1c3Qgc28gaGFwcHkgYW5kIGV4Y2l0ZWQgYW5kIGl0IHdhcyB0aGUgYmVzdCBmZWVsaW5nIGluIHRoZSB3b3JsZC4gSSBqdXN0IGZlbHQgbGlrZSBhbGwgb2YgbXkgd29yaywgSSBhY3R1YWxseSBkaWQgaXQuIEkgZGlkIGl0LsKgQnV0IEkgZm9yZ290IHRvIG1lbnRpb24sIG15IG1pZHdpZmUgZ290IG9mZiBzaGlmdCBkdXJpbmcgdGhpcyBzbyBhbm90aGVyIE9CIHdhcyBvbiBhbmQgc2hlIGNhbWUgaW4uIFRoZXkgYWN0dWFsbHkgd2VyZSBhc2tpbmcgbWUgdG8gc3RvcCBwdXNoaW5nIHRvIHdhaXQgZm9yIGhlciB0byBjb21lIGluLiBJIGdpZ2dsZWQuIEkgd2FzIG5vdCBnb2luZyB0byBkbyB0aGF0LCBidXQgc2hlIHdhcyBub3QgYXMga2luZCBhbmQgaGVscGZ1bC7CoFNoZSBsZXQgbWUga25vdyByaWdodCBhZnRlciwgZGVzcGl0ZSBrbm93aW5nIG15IGJpcnRoIHBsYW4gdGhhdCBkZWxheWVkIGNvcmQgY2xhbXBpbmcgd2FzbuKAmXQgc2FmZS7CoE1lYWdhbjogV2hhdD9LcmlzdGVuOiBZZWFoLCBhbmQgdGhhdCBJIG5lZWRlZCB0byBjdXQgdGhlIGNvcmQuIFRvIGJlIGhvbmVzdCwgSSB3YXMgaW4gY29tcGxldGUgYmFieSBsYW5kIGF0IHRoYXQgcG9pbnQuIEkgd2FzIHNvIGhhcHB5IHRoYXQgbXkgYmFieSB3YXMgdGhlcmUgdGhhdCBJIGRpZG7igJl0IGZpZ2h0IGl0LiBMb29raW5nIGJhY2ssIEnigJltIGhvbmVzdGx5IGdsYWQgdGhhdCBJIGRpZG7igJl0IGJlY2F1c2UgSSBrbm93IHRoYXQgaXQgd291bGQgaGF2ZSB0YWtlbiBtZSBvdXQgb2Ygd2hlcmUgSSB3YXMgYWJsZSB0byBiZSBhbmQgdGhlIGpveSB0aGF0IEkgd2FzIGluLsKgSSBkaWRu4oCZdCBmaWdodCBpdC4gSSBqdXN0IGxldCBoZXIgZG8gaXQgYW5kIGl0IHdhcyBzaWxseSwgYnV0IGl0IHdhcyBva2F5LiBJIGdvdCB0byBoYXZlIG15IHN3ZWV0IGJhYnkgYW5kIGl0IHdhcyBhbiBhbWF6aW5nIHBvc3RwYXJ0dW0gZXhwZXJpZW5jZS4gSSByZW1lbWJlciBiZWluZyB3aGVlbGVkIG91dCB3aXRoIGhlciBiZWNhdXNlIEkgZGlkbuKAmXQgZ2V0IG15IGxpdHRsZSBib3kgYWZ0ZXIgbXkgQy1zZWN0aW9uIHNvIEkgcmVtZW1iZXIgYmVpbmcgd2hlZWxlZCBvdXQgd2l0aCBoZXIuIEkgd2FzIGp1c3QgaG9sZGluZyBoZXIgaW4gbXkgYXJtcyBhbmQgSSB3YXMgc28gaGFwcHkgc2hlIHdhcyBpbiBteSBhcm1zLsKgSSBsb29rZWQgYXQgYSBqYW5pdG9yIHdoaWxlIEkgd2FzIGJlaW5nIHdoZWVsZWQgdG8gbW90aGVyIGFuZCBiYWJ5LiBJIGxpZnRlZCBoZXIgdXAgYW5kIEkgc21pbGVkIHNvIGJpZyBhdCBoaW0uIEhlIGp1c3Qgd2FzIGxpa2UsIOKAnE9rYXku4oCdwqBNZWFnYW46IOKAnENvbmdyYXR1bGF0aW9uc+KAnS7CoEtyaXN0ZW46IEkganVzdCB3YXMgc28gaGFwcHkuIEJ1dCB5ZWFoLCB0aGF0IHdhcyBteSBzZWNvbmQgYW5kIG15IFZCQUMgd2hpY2ggd2FzIGFtYXppbmcuwqAzMDo1OCBUaGlyZCBwcmVnbmFuY3lLcmlzdGVuOiBXaGVuIG15IGxpdHRsZSBnaXJsIHdhcyA2IG1vbnRocywgSSBnb3QgcHJlZ25hbnQgYWdhaW4uIEl0IHdhcyBhbiBhbWF6aW5nIHByZWduYW5jeS4gSSBmZWx0IGdyZWF0IHRoZSB3aG9sZSB0aW1lLiBJIHRvdGFsbHkgdGhvdWdodCBzaGUgd2FzIGEgYm95IGJlY2F1c2UgSSB3YXNu4oCZdCBzaWNrLCBidXQgaXQgd2FzIGEgZ2lybCB3aGljaCBJIHdhcyBzdXBlciBzdXJwcmlzZWQgYnkuwqBJIGhhZCBubyBCcmF4dG9uIEhpY2tzLiBJIHJlYWxseSBkaWRu4oCZdCBoYXZlIGEgdG9uIHVudGlsIHRoZSBlbmQgd2hpY2ggd2FzIGNyYXp5IHRvIG1lIGJlY2F1c2UgSSBoYWQgdGhlbSBzbyBtdWNoIHdpdGggbXkgcHJldmlvdXMuwqBNZWFnYW46IFllYWgsIGEgbG90LsKgS3Jpc3RlbjogWWVzLiBUaGF0IHdhcyBwcmV0dHkgY3JhenkuIEkgd2VudCBiYWNrIHRvIG15IHByb3ZpZGVyIHdobyBJIGhhZCBnb25lIHRvIHdpdGggbXkgc2Vjb25kIGJhYnkuIEkgd2VudCBiYWNrIHRvIGhlci7CoFRoaW5ncyBmZWx0IGEgbGl0dGxlIGRpZmZlcmVudCB3aXRoIGhlci4gU2hlIHdhcyBzdGlsbCByZWFsbHkgc3VwcG9ydGl2ZSwgYnV0IGl0IGp1c3QgZmVsdCBhIGxpdHRsZSBkaWZmZXJlbnQsIHRoZW4gYXQgMTYtMTcgd2Vla3MgaW4gbXkgcHJlZ25hbmN5LCBJIGRpZCBhbiBpbml0aWFsIHRlc3QgZm9yIHByZWVjbGFtcHNpYSBhbmQgbXkgbnVtYmVycyB3ZXJlIGFscmVhZHkgYWJvdmUuIFRoZSBwcm90ZWluIGluIG15IHVyaW5lIHdhcyBhbHJlYWR5IGFib3ZlIHdoZXJlIGl0IG5lZWRlZCB0byBiZS7CoFNoZSBqdXN0IHRvbGQgbWUgaW4gYW4gYXBwb2ludG1lbnQgdmVyeSBjYXN1YWxseSwgYnV0IEkgd2FzIHN1cGVyIG5lcnZvdXMuIEkgZGlkbuKAmXQga25vdyBhIHRvbi4gRHVyaW5nIHRoaXMgcHJlZ25hbmN5LCBJIGRpZCBhIHRvbiBvZiByZXNlYXJjaCBhYm91dCBwcmVlY2xhbXBzaWEsIHNvIHRoZSBvbmUgdGhpbmcgSSBkaWQgdG8gbXkgZGlldCB3YXMgSSBhdGUgc28gbXVjaCBwcm90ZWluLiBJIGF0ZS4gSSB0cmFja2VkIGVzcGVjaWFsbHkgaW4gdGhhdCBmaXJzdCB0cmltZXN0ZXIuIEkgdHJpZWQgdG8gZWF0IDEwMGcgb3IgbW9yZSBhIGRheS4gSSByZWFsbHkgZm9jdXNlZCBtb3JlIGluIHRoYXQgZmlyc3QgdHJpbWVzdGVyLiBUaGF0IHdhcyB0aGUgb25seSB0aGluZyBJIGZlbHQgbGlrZSBJIGNvdWxkIGRvIHNvIHRoYXTigJlzIHdoYXQgSSBkaWQuwqBTaGUgdG9sZCBtZSBteSBwcm90ZWluIHdhcyBhbHJlYWR5IHJlYWxseSBoaWdoIHdoaWNoIEkgZGlkbuKAmXQgdW5kZXJzdGFuZCBhbmQgaXQgbWFkZSBtZSByZWFsbHkgbmVydm91cy4gSSBhc2tlZCBhIGZldyBxdWVzdGlvbnMgZHVyaW5nIHRoZSBhcHBvaW50bWVudCwgYnV0IEkgZmVsdCBsaWtlIEkgaGFkIGEgdG9uIG9mIHF1ZXN0aW9ucyBhZnRlci4gSSBjYWxsZWQgYW5kIEkgZmVsdCB2ZXJ5IGRpc21pc3NlZC4gSSBmZWx0IGxpa2Ugc2hlIGp1c3Qga2VwdCB0cnlpbmcgdG8gdGVsbCBtZSwg4oCcRG9u4oCZdCBnZXQgaW4geW91ciBoZWFkLiBFdmVyeXRoaW5nIHdpbGwgYmUgb2theS7igJ3CoFNoZSB3YXMgYmVpbmcgdmVyeSBzd2VldCwgYnV0IEkganVzdCBmZWx0IGxpa2UgSSBuZWVkZWQgYSBkb2N0b3IgYXQgdGhhdCBwb2ludC4gSSBkaWRu4oCZdCBuZWVkIGEgZnJpZW5kLiBJIG5lZWRlZCBoZXIgdG8gZ2l2ZSBtZSBpbmZvcm1hdGlvbiBpbnN0ZWFkIG9mIHRyeWluZyB0byBlbmNvdXJhZ2UgbWUuIEl0IHdhcyByZWFsbHkgc3dlZXQsIGJ1dCB3ZSBvbmx5IGhhZCA1IG1pbnV0ZXMgYW5kIEkgZGlkbuKAmXQgd2FudCBlbmNvdXJhZ2VtZW50LiBJIG5lZWRlZCBpbmZvcm1hdGlvbiB0aGF0IEkganVzdCBmZWx0IGxpa2UgSSB3YXNu4oCZdCBiZWluZyBnaXZlbi7CoEkgYWN0dWFsbHkgZW5kZWQgdXAgc3dpdGNoaW5nIGFnYWluIHRvIGFub3RoZXIgT0IuIEkganVzdCB3YXMgaW50ZXJ2aWV3aW5nIHRoZW0gc28gSSBhY3R1YWxseSBoYWQgYXBwb2ludG1lbnRzIHdpdGggbXkgbWlkd2lmZSBhbmQgYW4gT0IuIEhlIGFjdHVhbGx5IGNhbWUgYmFjayBpbnRvIHRvd24uIEkgaGFkIGhlYXJkIHJlYWxseSBnb29kIHRoaW5ncyBhYm91dCBoaW0gYnV0IGhlIG1vdmVkIGFuZCB0aGVuIGhlIGNhbWUgYmFjay4gSSBpbnRlcnZpZXdlZCBoaW0gaW5pdGlhbGx5IGFuZCBhY3R1YWxseSwgSSBsZWZ0IG15IGFwcG9pbnRtZW50IGFuZCBJIGtpbmQgb2YgZHJpbGxlZCBoaW0gYSBsaXR0bGUgYml0LiBJIHJlYWxseSBhc2tlZCBoaW0gYSBsb3Qgb2YgcXVlc3Rpb25zLiBJIGxlZnQgbXkgYXBwb2ludG1lbnQuIEkgY2FsbGVkIG15IHNpc3RlciBhbmQgSSBzYWlkLCDigJxZZXMuIEkgZG9u4oCZdCBiZWxpZXZlIGl0LuKAnUhlIHNhaWQgZXZlcnl0aGluZyBJIHdhbnRlZCB0byBoZWFyIGFuZCB0aGF0IGZlZWxzIHRvbyBiYWl0LWFuZC1zd2l0Y2ggdG8gbWUuIFRoZXJl4oCZcyBubyB3YXkgaGXigJlzIHRoaXMgZ29vZC4gVGhlbiBJIGhhZCBhIGZldyBmcmllbmRzIHRocm91Z2ggY2h1cmNoIHdobyBoZSB3YXMgd2l0aCBhbmQgaGUgZm9sbG93ZWQgdGhyb3VnaCBvbiBldmVyeXRoaW5nLsKgTXkgZG91bGEgdG9sZCBtZSwg4oCcSSB0aGluayBoZeKAmXMganVzdCB0aGF0IGdvb2Qu4oCdSSB3YXMgc3VwZXIgc3VycHJpc2VkIGJlY2F1c2UgSSBjb3VsZCBub3QgYmVsaWV2ZSB0aGF0IGhlIHdhcyB0aGF0IHJlY2VwdGl2ZSBvZiBtZSwgYnV0IEkgd2VudCB0byBhbm90aGVyIGFwcG9pbnRtZW50IGFuZCB0YWxrZWQgYWJvdXQgbXkgaW5pdGlhbCBsYWJzIHdpdGggaGltIGFuZCBoZSBzYXQgdGhlcmUgd2l0aCBtZSBmb3IgYSB3aG9sZSBob3VyIGFuZCBleHBsYWluZWQgd2hhdCBoZSBrbmV3IGFib3V0IHByZWVjbGFtcHNpYSBhbmQgZXhwbGFpbmVkIHdoYXQgaGUgY291bGQgdG8gbWUuwqBJdCB3YXMgcmVhbGx5LCByZWFsbHkgaGVscGZ1bCBhbmQgSSBmZWx0IHZlcnkgaGVhcmQuIFNvIGF0IHRoYXQgbW9tZW50LCBJIGNob3NlIHRvIGdvIHdpdGggaGltLsKgMzQ6NDEgRm9yY2VkIHRvIGZpbmQgYSBuZXcgcHJvdmlkZXIgYXQgMzYgd2Vla3NLcmlzdGVuOiBJIGZpbmlzaGVkIHdpdGggaGltIHRocm91Z2ggdGhlIHJlc3Qgb2YgbXkgcHJlZ25hbmN5LiBNeSBzaXN0ZXIgd2FzIGFjdHVhbGx5IHByZWduYW50IHRvbyBhbmQgc2hlIHdhcyBnb2luZyB3aXRoIGhpbS4gSXQgd2FzIHJlYWxseSBjb29sLsKgTWVhZ2FuOiBIb3cgZnVuLktyaXN0ZW46IFNoZSBoYWQgaGVyIGJhYnkuIEkgZ290IHRvIGJlIHRoZXJlIGZvciBzb21lIG9mIGhlciBiaXJ0aC4gU2hlIHdhcyBkdWUgYSBtb250aCBhbmQgYSBoYWxmIGJlZm9yZSBJIHdhcyBkdWUgc28gSSBnb3QgdG8gYmUgdGhlcmUgd2l0aCBoZXIgYW5kIHdhdGNoIGhlciBhbWF6aW5nIGJpcnRoIHRoZW4gc2hlIHRvbGQgbWUsIOKAnEnigJltIGhhdmluZyBhIGxvdCBvZiBwcmVzc3VyZS4gQ2FuIHlvdSBqdXN0IGxvb2sgZG93biB0aGVyZT/igJ0gU2hlIHdhcyBjcm93bmluZyBhbmQgSSB3YXMgbGlrZSwg4oCcT2gsIHlvdeKAmXZlIGdvdCB0byBnbyB0byB0aGUgaG9zcGl0YWwu4oCdTWVhZ2FuOiBPaCBteSBnb3NoLsKgS3Jpc3RlbjogU2hlIHdlbnQgdG8gdGhlIGhvc3BpdGFsIGFuZCB3ZSBoYWQgdGhhdCBhbWF6aW5nIGV4cGVyaWVuY2UgYW5kIHRoYXQgd2FzIGhlciBmaXJzdCBWQkFDIHNvIGl0IHdhcyByZWFsbHkgYXdlc29tZS5UaGVuIG15IHByb3ZpZGVyIGNhbGxlZCBtZSBhbmQgdG9sZCBtZSB0aGF0IHRoZXkgd2VyZSBzaHV0dGluZyBkb3duIHRoZWlyIG9mZmljZSB3aGVuIEkgd2FzIDM5IHdlZWtzIHByZWduYW50LiBUaGlzIHdhcyBhdCAzNiBvciAzNSB3ZWVrcy4gSSB3YXMgdGhlbiBzY3JhbWJsaW5nIHRvIGZpbmQgYW5vdGhlciBwcm92aWRlci4gSXQgd2FzIHZlcnksIHZlcnkgZGlmZmljdWx0LiBFdmVyeW9uZSBJIHRhbGtlZCB0byBqdXN0IHRvbGQgbWUgdGhhdCB0aGV5IGRpZG7igJl0IHRha2UgVkJBQ3MgcGFzdCAzNSB3ZWVrcyBhbmQgdGhhdCBJIGV2ZW4gd291bGQgaGF2ZSBteSBwYXBlcndvcmsgc3dpdGNoZWQgYW5kIHRoZW4gdGhleSB3ZXJlIGxpa2UsIOKAnE9oLCB5b3XigJlyZSBWQkFDIGFuZCBwcmVlY2xhbXBzaWEuIFdlIHdvbuKAmXQgdGFrZSB5b3Uu4oCdIFRoZXJlIHdlcmUgMyB3ZWVrcyBvZiBtZSBqdXN0IGhvbmVzdGx5IHRyeWluZyB0byBmaW5kIGEgcHJvdmlkZXIgd2hvIHdvdWxkIHRha2UgbWUsIG5vdCBldmVuIGEgc3VwcG9ydGl2ZSBwcm92aWRlciwganVzdCBoYXZpbmcgYSBkb2N0b3IgdGFrZSBtZSB3YXMgdmVyeSBkaWZmaWN1bHQuwqBJIGZpbmFsbHkgZm91bmQgYSBwcm92aWRlciB3aG8gd291bGQgdGFrZSBtZSwgYnV0IHRoZXkgdG9sZCBtZSB0aGVyZSB3YXMgYW5vdGhlciBwcm92aWRlciBpbiB0aGUgb2ZmaWNlIHdobyB3YXMgdmVyeSB1bnN1cHBvcnRpdmUuIEhlIGFjdHVhbGx5IHdhcyB0aGVyZSBkdXJpbmcgbXkgc2lzdGVy4oCZcyBiaXJ0aCB3aGVuIHNoZSBjYW1lIGluIGFuZCB3YXMgdG90YWxseSBjcm93bmluZy4gSGUgc2F0IGJhY2sgd2l0aCBoaXMgYXJtcyBhbmQgbGVncyBjcm9zc2VkIGFuZCBzaGUgd2FzIGNyb3duaW5nLCBob3BwaW5nIG9uIHRoZSBiZWQgcmVhZHkgdG8gcHVzaCBhbmQgaGUgc2F0IHRoZXJlIHdpdGggaGlzIGFybXMgYW5kIGxlZ3MgY3Jvc3NlZCBhbmQgdG9sZCBoZXIgaG93IHVuc2FmZSBWQkFDcyB3ZXJlLsKgTWVhZ2FuOiBPaCBteSBnb3NoLsKgS3Jpc3RlbjogSGUgdG9sZCBoZXIgdGhhdCBoZSBkaWRu4oCZdCBrbm93IHdobyBhcHByb3ZlZCBoZXIgY2hhcnQsIGJ1dCB0aGlzIHdhcyBub3Qgb2theS4gVGhhbmsgZ29vZG5lc3MsIHRoZSBwcm92aWRlciB3aG8gd2FzIGFtYXppbmcgY2FtZSBpbiBhbmQgc2F2ZWQgdGhlIGRheS4gQnV0IGhlIHdhcyBhd2Z1bCBhbmQgaGUgd2FzIGFjdHVhbGx5IG9uZSBvZiB0aGUgdGhyZWUgcHJvdmlkZXJzIGluIHRoaXMgb2ZmaWNlIHRoYXQgd291bGQgdGFrZSBtZS4gSSB3YXMgcmVhbGx5IG5lcnZvdXMgYWJvdXQgdGhlIG9uLWNhbGwgc2NoZWR1bGUgYW5kIGlmIGhlIHdhcyBnb2luZyB0byBlbmQgdXAgYmVpbmcgb24tY2FsbCB3aGVuIEkgd2FzIGdvaW5nIGludG8gbGFib3IuwqBUaGVyZSB3YXMgYSBsb3Qgb2YgYmFjayBhbmQgZm9ydGggdGhlcmUsIGJ1dCBJIGVuZGVkIHVwIG1lZXRpbmcgd2l0aCB0aGlzIHByb3ZpZGVyIGFuZCBJIG1ldCB3aXRoIGhpbSB3aGVuIEkgd2FzIDQwIHdlZWtzIGFuZCBhIGRheSBzbyBJIG1ldCB3aXRoIGhpbSB0aGUgZGF5IGFmdGVyIG15IGR1ZSBkYXRlIGFuZCB0aGlzIHdhcyBvdXIgZmlyc3QgdGltZSBtZWV0aW5nLiBJIGdhdmUgaGltIG15IGJpcnRoIHBsYW4uIEhlIGxvb2tlZCBhdCBob3cgZmFyIEkgd2FzIGFuZCBoZSB3YXMgbGlrZSwg4oCcT2gsIGF3ZXNvbWUuIFlvdeKAmXJlIGFsbW9zdCBkb25lLuKAncKgSSBmZWx0IGxpa2UgaGUgd2FzIHBlcmZlY3QuIOKAnExldOKAmXMganVzdCBnZXQgeW91IG91dCBvZiBoZXJlLuKAnSBIZSB3YXMgZG9pbmcgaXQgYXMgYSBmYXZvciB0byB0aGUgb3RoZXIgcHJvdmlkZXIuIEkgZmVsdCBsaWtlIGEgY2hlY2sgaW4gaGlzIGJveCBmcm9tIHRoZSBzdGFydCBvZiBiZWluZyB0aGVyZS4gSSB3YXMgcmVhbGx5IG5lcnZvdXMgYWJvdXQgbXkgYmxvb2QgcHJlc3N1cmUuIEkga2VwdCB0ZWxsaW5nIGV2ZXJ5b25lLCBJIGhhZCBubyBzeW1wdG9tcyB3aXRoIG15IHByZXZpb3VzIHByZWVjbGFtcHNpYS4gSSBoYWQgbm8gc3ltcHRvbXMgYW5kIGFsbCBvZiBteSBsYWJzIGFyZSBwb3NpdGl2ZSBzbyBJIGp1c3Qgd2FudCB0byBiZSByZWFsbHkgb24gaXQuwqBJIGRpZG7igJl0IGhhdmUgYSBwcm92aWRlciBmb3IgMiB3ZWVrcyBhbmQgYXQgdGhlIGVuZCBvZiBteSBwcmVnbmFuY3kgc28gSSBqdXN0IGdvdCBhIGJsb29kIHByZXNzdXJlIGN1ZmYgYW5kIEkgbW9uaXRvcmVkIG15c2VsZiBhcyBtdWNoIGFzIEkgY291bGQuIEl0IHdhcyBzdHJlc3NmdWwuIEkgZW5kZWQgdXAgZ29pbmcgaW50byB0cmlhZ2Ugb25jZSBiZWNhdXNlIG15IGJsb29kIHByZXNzdXJlIHdhcyBoaWdoIGFuZCBJIGRpZG7igJl0IGhhdmUgYW55b25lIHRvIGNhbGwuIEkgZGlkbuKAmXQga25vdyB3aGF0IHRvIGRvLCBzbyBJIHdlbnQgaW50byB0cmlhZ2UgYW5kIHRoZXkganVzdCB3ZXJlIG5vdCB2ZXJ5IGF3ZXNvbWUgd2l0aCBtZS7CoEJ1dCB0aGF0IHdhcyBva2F5IGFuZCBteSBibG9vZCBwcmVzc3VyZSB3YXMgZmluZSBzbyBJIGVuZGVkIHVwIGdldHRpbmcgdG8gZ28gaG9tZS4gSSB3YXMgd2l0aCBteSBwcm92aWRlci4gSGUganVzdCB3YXMgbm90LCBoZSByZWFsbHkgd2FudGVkIHRvIGluZHVjZSBtZS4gSGUgdG9sZCBtZSBhbGwgYWJvdXQgbXkgcGxhY2VudGEgZHlpbmcgYXQgNDEgd2Vla3MgYW5kIGhlIHdhcyBzbyBzY2FyZWQgYWJvdXQgbWUgZ29pbmcgcGFzdCA0MSB3ZWVrcy7CoEkgYXNrZWQgaGltIGlmIHRoaXMgd2FzIGp1c3Qgc29tZXRoaW5nIGhlIGRpZCB3aXRoIGp1c3QgVkJBQyBwYXRpZW50cyBhbmQgaGUgc2FpZCwg4oCcTm8sIEkgZG8gdGhpcyB3aXRoIGV2ZXJ5b25lLuKAnSBJIHdhcyBsaWtlLCDigJxPaCwgb2theS7igJ0gSSB3YXMgbGlrZSwg4oCcUGVyZmVjdC4gSeKAmW0gZXZlbiBsZXNzIHdvcnJpZWQgbm93LiBJIHdhcyB0aGlua2luZyB5b3UgaGFkIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgVkJBQyBhbmQgbXkgcGxhY2VudGEsIHNvIEnigJltIGxlc3Mgd29ycmllZCBub3cu4oCdTWVhZ2FuOiBMZXNzIGNvbmNlcm5lZC7CoEtyaXN0ZW46IEkgdG9sZCBoaW0sIOKAnEkgZG9u4oCZdCB3YW50IHRvIGJlIGluZHVjZWQgYXQgNDEgd2Vla3Mu4oCdSGUga2VwdCB0ZWxsaW5nIG1lLCDigJxPaCwgSSBrbm93LiBZb3UgZG8geW91ciByZXNlYXJjaC4gWW91IGRvIHlvdXIgcmVzZWFyY2gu4oCdIEhlIGRpZCBub3QgbGlrZSB0aGF0IEkgd2FzIHZlcnkgaW5mb3JtZWQgb24gdGhpbmdzLsKgSSBlbmRlZCB1cCBoYXZpbmcgdG8gZ28gaW50byB0cmlhZ2UgYXQgdGhlIGVuZCBvZiBteSBwcmVnbmFuY3kgdGhyZWUgc2VwYXJhdGUgdGltZXMgYmVjYXVzZSBvZiBteSBibG9vZCBwcmVzc3VyZSByZWFkaW5ncyBhdCBob21lLCBidXQgZXZlcnkgdGltZSBJIHdlbnQgaW50byB0cmlhZ2UsIHRoZXkgd2VyZSBmaW5lIHRoZXJlIHNvIEkga2VwdCB0ZWxsaW5nIHBlb3BsZSwg4oCcSSBkb27igJl0IGtub3cgd2hhdCBteSBibG9vZCBwcmVzc3VyZSByZWFkaW5nIGlzIGRvaW5nIGF0IGhvbWUsIGJ1dCBpcyB0aGVyZSBzb21ldGhpbmcgZWxzZSBJIGNhbiBkbz/igJ3CoEV2ZXJ5b25lIHdvdWxkIGxvb2sgYXQgbXkgYmxvb2QgcHJlc3N1cmUgY3VmZiBhbmQgc2F5LCDigJxZZWFoLCB0aGF04oCZcyBncmVhdC4gVGhhdOKAmXMgdGhlIG9uZSBJIHJlY29tbWVuZC7igJ1JIHdhcyBsaWtlLCBXZWxsLCB3aHkgaXMgbXkgYmxvb2QgcHJlc3N1cmUgc28gaGlnaCBhdCBob21lPyBJIG5lZWQgc29tZSBoZWxwLiBUaGlzIGhhcyB0byBub3QgYmUgd29ya2luZy4gQXQgb25lIHBvaW50LCBJIGJyb3VnaHQgbXkgYmxvb2QgcHJlc3N1cmUgY3VmZiBpbiB3aXRoIG1lIGFuZCB0aGV5IHdlcmUgcmVhZGluZyBkaWZmZXJlbnRseSBhdCB0aGUgaG9zcGl0YWwgdmVyc3VzIHRoZSBjdWZmLiBJIHdhcyBsaWtlLCBNaW5lIGlzIG5vdCB3b3JraW5nLCBzbyBJIGRvbuKAmXQga25vdyBob3cgdG8gY2hlY2sgbXlzZWxmIGF0IGhvbWUuwqBJdCB3YXMgcmVhbGx5IGRpZmZpY3VsdC4gTXkgaHVzYmFuZCBzdGFydGVkIHRvIGJlIGEgbmVydm91cyB3cmVjayBhYm91dCBhbGwgb2YgdGhpcyBhbnl3YXkgc28gZXZlcnlvbmUgd2FzIHB1c2hpbmcgbWUgdG8gZ2V0IGluZHVjZWQgYW5kIGV2ZXJ5IHRpbWUgaGUgaGVhcmQgdGhlIHdvcmQg4oCcaW5kdWN0aW9u4oCdLCBoZSB3YXMgbGlrZSwg4oCcTGV04oCZcyBqdXN0IGRvIGl0LiBJdCB3b3JrZWQgZm9yIHVzIHdpdGggdGhlIGxhc3QgVkJBQy4gTGV04oCZcyBqdXN0IGRvIGl0LuKAnSBFdmVyeSB0aW1lIHRoZXkgdG9sZCBtZSBJIHdhcyBva2F5LCBJIGp1c3Qgd2FzIGxpa2UsIOKAnE5vLiBJ4oCZbSBnb2luZyBob21lLiBJZiBJ4oCZbSBva2F5LCBJIGFtIGdvaW5nIHRvIGhhdmUgdGhpcyBiYWJ5IG5hdHVyYWxseS7igJ3CoEl0IHdhcyBhIHJlYWxseSBlbW90aW9uYWwgZXhwZXJpZW5jZSBiZWNhdXNlIHdlIHdlcmUgYWxsIHZlcnkgYmFjayBhbmQgZm9ydGguIGl0IGZlbHQgbGlrZSBldmVyeW9uZSB3YXMgZ29pbmcgdGhyb3VnaCBpdCB3aXRoIG1lLCBidXQgSSB3YXMgdGhlIG9uZSBwcmVnbmFudCBhbmQgZmlnaHRpbmcgdG8gc3RheSBwcmVnbmFudCBpZiBteSBiYWJ5IHdhcyBva2F5LiBJdCB3YXMgcmVhbGx5IGRpZmZpY3VsdCwgYnV0IEkgZW5kZWQgdXAgZ2V0dGluZyB0aHJvdWdoIGl0LsKgNDA6NDUgTGFib3IgYmVnaW5zS3Jpc3RlbjogSSBlbmRlZCB1cCBoYXZpbmcgc29tZSBwcm9kcm9tYWwgbGFib3IgYXQgdGhlIGVuZCBpcyB3aGF0IEkgZmVsdCBsaWtlIGl0IHdhcy4gNDEgYW5kIGEgY291cGxlIG9mIGRheXMgd2FzIG15IG5leHQgYXBwb2ludG1lbnQgYW5kIEkgdG9sZCBldmVyeW9uZSwgbXkgaHVzYmFuZCBhbmQgbXkgc2lzdGVyLCBJIHdhcyBsaWtlLCDigJxIZeKAmXMganVzdCBnb2luZyB0byB3YW50IHRvIGluZHVjZSBtZSBhbmQgcHVzaCBpdCBzbyBtdWNoIGF0IG15IG5leHQgYXBwb2ludG1lbnQu4oCdIEkgd2FzIHNvIHdvcnJpZWQgc28gSSB0b2xkIG15IGRvdWxhIHRoYXQgSSB3YXMgdGhpbmtpbmcgYWJvdXQgdHJ5aW5nIGNhc3RvciBvaWwuwqBTaGUgY2FtZSBvdmVyIGFuZCBzaGUgZ2F2ZSBtZSBlbGVjdHJvbHl0ZXMgYW5kIHNoZSBnYXZlIG1lIGEgcmVjaXBlIHdpdGggY2FzdG9yIG9pbCB0aGF0IHdhcyB2ZXJ5LCB2ZXJ5IHNtYWxsLiBJIGhhZCBnb3R0ZW4gYSBmZXcgcmVjaXBlcyBhbmQgaXQgd2FzIG5leHQgdG8gbm90aGluZy4gVGhlcmUgd2FzIG5vIGNhc3RvciBvaWwgaW4gaXQgYmFzaWNhbGx5LiBTaGUgdG9sZCBtZSwg4oCcSXQgc291bmRzIGxpa2UgeW91IGFyZSBpbiBlYXJseSBsYWJvciBzbyBJ4oCZbSBnb2luZyB0byBoYXZlIHlvdSB0cnkgdGhpcyzigJ0gYW5kIEkgZGlkIG9uZSBkb3NlIGV2ZXJ5IDQgaG91cnMuwqBTaGUgd2FzIGxpa2UsIOKAnEl0IHNvdW5kcyBsaWtlIHlvdSBhcmUgaW4gZWFybHkgbGFib3IsIHNvIEnigJltIGdvaW5nIHRvIGhhdmUgeW91IHRyeSB0aGlzLuKAnSBJIGhvbmVzdGx5IHdhcyBldmVuIGdydW1weSBhYm91dCB0aGF0LiBJIHdhcyBsaWtlLCDigJxObywgSSB3YW50IG1vcmUuIElmIEnigJltIGdvaW5nIHRvIHRyeSB0aGlzLCBJIHdhbnQgaXQgdG8gZG8gc29tZXRoaW5nLuKAnUkgdHJpZWQgdGhhdCBhdCAzOjMwIGluIHRoZSBhZnRlcm5vb24gb24gYSBGcmlkYXkuIEkgZGlkIGEgY291cGxlIG9mIGRvc2VzIGFuZCB0aGVuIG15IG1vbSBjYWxsZWQgbWUgYW5kIHRvbGQgbWUgdGhhdCBzaGUgd2FzIGluIHRvd24gYW5kIGFza2VkIGlmIEkgd2FudGVkIGhlciB0byBjb21lIGhhbmcgb3V0IHdpdGggbXkga2lkcy4gSSBoYWQgZG9uZSB0d28gZG9zZXMgYW5kIEkgd2FzIGxpa2UsIOKAnE5vLiBOb3RoaW5nIGlzIGhhcHBlbmluZy4gSeKAmW0gbmV2ZXIgZ29pbmcgaW50byBsYWJvci7igJ0gSSB3YXMgc3VwZXIgZ3J1bXB5LiDigJxJ4oCZbSBuZXZlciBnb2luZyBpbnRvIGxhYm9yLuKAncKgSSBnb3Qgb2ZmIHRoZSBwaG9uZSB3aXRoIGhlci4gSSBzdGFydGVkIGNyeWluZyBiZWNhdXNlIEkgd2FzIHN1cGVyIGVtb3Rpb25hbCBhbmQgbXkgaHVzYmFuZCB0b2xkIG1lIHRvIGp1c3QgZ28gYmFjayBpbiB0aGUgcm9vbSBmb3IgYSBzZWNvbmQuwqBTbyBJIHdlbnQgYmFjayB0aGVyZSBhbmQgSSBkb27igJl0IGtub3cuIEkgbXVzdCBoYXZlIGtub3duIGluIG15IGhlYWQgdGhhdCBzb21ldGhpbmcgd2FzIGdvaW5nIG9uIGJlY2F1c2UgSSBjYWxsZWQgbXkgbW9tIHJpZ2h0IGJhY2sgYW5kIEkgd2FzIGxpa2UsIOKAnFllYWgsIG1heWJlIGNvbWUgb3Zlci7igJ0gU2hlIHdhcyBsaWtlLCDigJxPa2F5LuKAnSBTbyBzaGUgZW5kZWQgdXAgY29taW5nIG92ZXIgYW5kIGhhbmdpbmcgb3V0IHdpdGggdXMgYW5kIHRoZW4gd2UgcHV0IHRoZSBraWRzIHRvIHNsZWVwIGFuZCBJIHdhcyBmZWVsaW5nIGNvbnRyYWN0aW9ucyBhbmQgZXZlcnl0aGluZyB0aGF0IEkgaGFkIG5vcm1hbGx5IGZlbHQgdGhyb3VnaG91dCB0aGUgd2Vlay7CoEkganVzdCB3YXMgbGlrZSwg4oCcSSBkb27igJl0IHRoaW5rIGEgdG9uIGlzIGhhcHBlbmluZy7igJ0gSSBlbmRlZCB1cCBwdXR0aW5nIG15IGxpdHRsZSBib3kgdG8gc2xlZXAgYXQgODowMCBhbmQgSSBoYWQgZmluaXNoZWQgbXkgZG9zZXMgb2Ygd2hhdCBJIHdhcyBkb2luZy4gQXQgdGhhdCBwb2ludCwgSSB3YXMgYnJlYXRoaW5nIHRocm91Z2ggdGhlbSBhIGxpdHRsZSBiaXQsIGJ1dCBJIGtlcHQgdGVsbGluZyBldmVyeW9uZSwg4oCcSSBhbSBub3QgaW4gbGFib3IuIElmIHRoaXMgaXMgaXQsIGl04oCZcyB2ZXJ5LCB2ZXJ5IGVhcmx5LiBJdCBpcyBub3QgaGFwcGVuaW5nLuKAnU15IG1vbSB3YXMgbGlrZSwg4oCcT2theSwgdGhhdOKAmXMgZmluZSwgYnV0IHdoeSBkb27igJl0IHlvdSBqdXN0IGdvIGJhY2s/IFlvdSBuZWVkIHRvIGdldCBzb21lIHJlc3QgYmVjYXVzZSBpZiBpdCBpcyBnb2luZyB0byBoYXBwZW4sIHlvdSBuZWVkIHRvIGdldCBzb21lIHJlc3Qu4oCdIEkgdG9sZCBoZXIsIOKAnE9rYXku4oCdwqBJIHdlbnQgYmFjayB0byBnbyBnZXQgc29tZSByZXN0IGFuZCBJIGRvbuKAmXQga25vdyB3aHkgaW4gbXkgaGVhZCBJIGRpZG7igJl0IHJlYWxpemUgdGhhdCBJIGhhZCBiZWVuIGFibGUgdG8gcmVzdCB0aHJvdWdoIGFsbCBvZiB0aGVtIGJlZm9yZSBpbiB0aGUgd2VlaywgYnV0IHN1ZGRlbmx5LCBJIGNvdWxkIG5vdCBsYXkgaW4gYmVkLiBJIGp1c3QgdG9sZCBteSBodXNiYW5kLCDigJxOby4gSXTigJlzIHJlYWxseSwgcmVhbGx5IGVhcmx5IGlmIGl04oCZcyBoYXBwZW5pbmcu4oCdwqBJIGp1c3Qgc2F0IG9uIG15IGJhbGwuIEkgcm9ja2VkIGFyb3VuZCBvbiBteSBiYWxsIGZvciBhIGxpdHRsZSBiaXQgdGhlbiBJIHdhcyBnZXR0aW5nIHByZXR0eSB1bmNvbWZvcnRhYmxlIGJ1dCBJIGRpZG7igJl0IHdhbnQgdG8gc2F5IGl0IGJlY2F1c2UgSSBkaWRu4oCZdCB3YW50IGl0IHRvIGJlIGZha2UuIEkgc2FpZCwg4oCcWW91IGtub3cgd2hhdD8gSeKAmW0gZ29pbmcgdG8gdGFrZSBhIHNob3dlci4gSSBjYW7igJl0IHN0YXkgaW4gdGhlIHNob3dlciBmb3IgdmVyeSBsb25nIGJlY2F1c2UgSSBkb27igJl0IHdhbnQgaXQgdG8gc2xvdyB0aGluZ3MgZG93biBpZiBpdCBpcyBwaWNraW5nIHVwLuKAncKgTXkgaHVzYmFuZCBhc2tlZCwg4oCcRG8geW91IHdhbnQgbWUgdG8gY29tZSBpbiB0aGVyZSB3aXRoIHlvdT/igJ0gSSBzYWlkLCDigJxOby4gTm8sIG5vLiBJdOKAmXMgZWFybHkuIEnigJltIGdvaW5nIHRvIHRha2UgYSBzaG93ZXIuIEnigJltIGdvaW5nIHRvIGdldCBjbGVhbi4gSeKAmW0gZ29pbmcgdG8gY29tZSBvdXQgYW5kIGRvIHNvbWUgbW9yZSBvbiBteSBiYWxsIGFuZCBkbyBTcGlubmluZyBCYWJpZXMu4oCdwqBIZSBzYWlkLCDigJxPa2F5LuKAncKgSSB3ZW50IGluIHRoZSBzaG93ZXIgYW5kIEkgY291bGRu4oCZdCBldmVuIHJlYWxseSBmaW5kIGEgdGltZS4gSSBwcm9iYWJseSBnb3QgaW4gdGhlIHNob3dlciBhdCA5OjAwLiBJIGNvdWxkbuKAmXQgZmluZCBhIHRpbWUgdG8gd2FzaCBteSBib2R5IG9yIHdhc2ggbXkgaGFpciwgc28gSSB0aG91Z2h0LCDigJxZb3Uga25vdyB3aGF0PyBNYXliZSB0aGlzIGlzbuKAmXQgYXMgZWFybHkgYXMgSSB0aG91Z2h0LuKAnSBJIHdlbnQgYmFjayBpbiB0aGUgcm9vbSBhbmQgaXQgd2FzIHZlcnkgcmVsYXhpbmcuIEkgd2VudCB0byBqdXN0IGdvIGdyYWIgbXkgcGhvbmUgYW5kIG15IGh1c2JhbmQgd2FzIGxpa2UsIOKAnFdoYXQgYXJlIHlvdSBkb2luZz/igJ0gSSB3YXMgbGlrZSwg4oCcSSB0aGluayBJIHNob3VsZCBqdXN0IHRpbWUgdGhlbS7igJ3CoEhlIHdhcyBsaWtlLCDigJxPa2F5LCBJ4oCZbSBjb21pbmcgaW4gdGhlcmUgd2l0aCB5b3Uu4oCdIEhlIHdlbnQgaW4gdGhlcmUgYW5kIGhlIHRvbGQgbWUsIEkgdGhpbmsgYXQgdGhhdCBwb2ludCB0aGV5IHdlcmUgMyBtaW51dGVzIGFwYXJ0IGFuZCBoZSB3YXMgbGlrZSwg4oCcVGhleSBhcmUgcHJldHR5IGNsb3NlLiBJIHRoaW5rIHlvdSBhcmUgZmFydGhlciB0aGFuIHlvdSBhcmUgdGhpbmtpbmcu4oCdwqBJIGp1c3Qgd2FzIGxpa2UsIOKAnE5vLCBubywgbm8uIFRoaXMgaGFwcGVuZWQgd2F5IHRvbyBmYXN0LuKAnSBJIHdhcyBsaWtlLCDigJxOby4gSeKAmW0gbm90LiBJ4oCZbSBnb2luZyB0byBrZWVwIGJlaW5nIGluIHRoZSBzaG93ZXIu4oCdwqBTbyBJIHN0YXllZCBpbiB0aGUgc2hvd2VyIGFuZCBJIGp1c3QgcmVsYXhlZCBpbiB0aGVyZS4gaXQgd2FzIGdyZWF0IHRvIGJlIGluIHRoZXJlIGFuZCB0aGVuIG15IHNpc3RlciBjYW1lIG92ZXIgYXQgYWJvdXQgMTA6MzAgYW5kIGF0IHRoaXMgcG9pbnQsIHRoZXkgd2VyZSBhIG1pbnV0ZSBhcGFydC4gTXkgaHVzYmFuZCBoYWQgY2FsbGVkIG15IGRvdWxhIGFuZCBzaGUgdG9sZCB1cyB0byBsZWF2ZSB0aGUgaG91c2UgYXQgMTE6MDAuIFNoZSBoYWQgZ2l2ZW4gaGltIGFuIGhvdXIgdGltZWZyYW1lLiDigJxJZiBpdCBzdGF5cyBhdCB0aGlzIGZvciBhbiBob3VyLCB5b3Ugc2hvdWxkIGxlYXZlIGF0IDExOjIwIG9yIHNvbWV0aGluZy7igJ3CoEkgd2FzIGluIHRoZSBzaG93ZXIuIE15IHNpc3RlciBjYW1lIG92ZXIuIEkgZG9u4oCZdCByZWFsbHkgcmVtZW1iZXIgaGVyIGNvbWluZyBvdmVyLiBJIHdhcyBqdXN0IGJyZWF0aGluZyB0aHJvdWdoIGV2ZXJ5dGhpbmcuIFNoZSBzYWlkIHNoZSB3YWxrZWQgaW4gYW5kIHNoZSB3YXMgbGlrZSwg4oCcSSBmZWx0IGxpa2UgaXQgd2FzIHRoZSB3cm9uZyBob3VzZS4gSXQgd2FzIHZlcnkgY2FsbS4gSSBkaWRu4oCZdCBrbm93IGFueW9uZSB3YXMgaW4gbGFib3IuIEkganVzdCB3YWxrZWQgaW4gYW5kIHlvdSB3ZXJlIGJyZWF0aGluZy4gWW91IHdlcmVu4oCZdCB0YWxraW5nLuKAncKgTXkgc2lzdGVyIGZpbmFsbHkgY2FtZSBpbiBhbmQgc2hlIHRvbGQgbWUgYXQgb25lIHBvaW50LCDigJxZb3XigJlyZSBkb2luZyBpdC4gWW914oCZcmUgbGFib3JpbmcgYXQgaG9tZS4gVGhpcyBpcyB3aGF0IHlvdSB3YW50ZWQgZm9yIHRoaXMgbGFib3Iu4oCdIFRoYXQgd2FzIHRoZSBvbmUgdGltZSBJIHJlbWVtYmVyIGhlciBiZWluZyB0aGVyZSBhbmQgSSB3YXMgbGlrZSwg4oCcSSBhbSBkb2luZyB0aGlzLiBJIGFtIGxhYm9yaW5nIGF0IGhvbWUu4oCdIEkgd2FzIHNvIGV4Y2l0ZWQuwqA0NjoxMSBSdXNoaW5nIHRvIHRoZSBob3NwaXRhbEtyaXN0ZW46IEV2ZXJ5dGhpbmcgd2FzIGdvaW5nIHJlYWxseSB3ZWxsLiBJIHdhcyBhYmxlIHRvIGJyZWF0aGUgdGhyb3VnaCBldmVyeXRoaW5nLiBNeSBodXNiYW5kIHdhcyBnZXR0aW5nIHRoZSB0cnVjayByZWFkeSBmb3IgdXMgdG8gbGVhdmUgYW5kIHRoZW4gSSBoZWFyZCBhIHBvcCwgYSB2aXNjZXJhbCBwb3AuIEl0IHdhcyBjcmF6eS4gSXQgc291bmRlZCBsaWtlIGEgd2F0ZXIgYmFsbG9vbiBwb3BwaW5nIGFuZCBhbGwgb2YgbXkgd2F0ZXIgYnJva2UuIE15IHNpc3RlciBoYWQganVzdCB0b2xkIG1lIGJlZm9yZSB0aGlzIHByb2JhYmx5IHR3byBjb250cmFjdGlvbnMgYmVmb3JlLCBzaGUgd2FzIGxpa2UsIOKAnFNpcywgdGhleSBhcmUgcmVhbGx5LCByZWFsbHkgY2xvc2UuIEFyZSB5b3Ugc3VyZSB5b3UgZG9u4oCZdCB3YW50IHRvIGxlYXZlIHJpZ2h0IG5vdz/igJ3CoEkgdG9sZCBoZXIsIOKAnFllYWgsIEkgZG9u4oCZdCBmZWVsIGxpa2UgSeKAmW0gZ2V0dGluZyBhIGJyZWFrLCBidXQgc2hlIGlzIG5vdCBkb3duLiBTaGUgaXMgbm90IGVuZ2FnZWQu4oCdIEkgaGFkIG5vIHByZXNzdXJlIGFuZCBJIHdhcyBsaWtlLCDigJxJIGtub3cgd2hhdCB0aGF0IHByZXNzdXJlIGZlZWxzIGxpa2UuIEkgZG9u4oCZdCBoYXZlIHRoZSBwcmVzc3VyZS4gSXTigJlzIG9rYXku4oCdwqBTbyB0aGVuIEkgZmVsdCBhIHBvcCBhbmQgbXkgd2F0ZXIgYnJva2UgYW5kIHRoZW4gSSBmZWx0IGFsbCBvZiB0aGUgcHJlc3N1cmUsIGFic29sdXRlbHkgYWxsIG9mIHRoZSBwcmVzc3VyZS4gSSBsb29rZWQgYXQgaGVyIGFuZCB0aGF0IHdhcyB0aGUgZmlyc3QgdGltZSB0aGF0IEkgaGFkIHJlYWxseSBtYWRlIGEgc291bmQuIEkgdGhpbmsgSSBncnVudGVkIG9yIEkgbW9hbmVkIGFuZCBJIHdhcyBsaWtlLCDigJxPa2F5LCB3ZSBuZWVkIHRvIGxlYXZlLiBXZSBuZWVkIHRvIGxlYXZlIHJpZ2h0IG5vdy7igJ0gSSBmZWx0IGxpa2UgSSBjb3VsZCBoYXZlIGhlciBhdCB0aGF0IG1vbWVudC7CoE1lYWdhbjogWWVhaC7CoEtyaXN0ZW46IFNvIHRoZW4gSSBnb3Qgb3V0IG9mIHRoZSBzaG93ZXIgYW5kIEkgcHV0IHNvbWUgY2xvdGhlcyBvbi4gSSB3YXMgc3RpbGwgYnV0dG9uaW5nIG15IGRyZXNzIHRvIGV2ZW4gd2FsayBvdXQgb2YgdGhlIGRvb3IgYmVjYXVzZSBJIHdhcyBsaWtlLCDigJxJZiB3ZSBkb27igJl0IGxlYXZlIHJpZ2h0IG5vdywgd2Ugd2lsbCBub3QgbWFrZSBpdC7igJ0gSSBhY3R1YWxseSBhc2tlZCBteSBzaXN0ZXIgdG8gZ2V0IG1lIGEgdG93ZWwuIFNoZSBhc2tlZCBtZSBsYXRlciB3aHkgSSBhc2tlZCBoZXIgdG8gZ2V0IG1lIGEgdG93ZWwgYW5kIEkgd2FzIGxpa2UsIOKAnEkgcmVhbGx5IGRpZG7igJl0IGtub3cgaWYgd2Ugd2VyZSBnb2luZyB0byBtYWtlIGl0IHNvIEkgbmVlZGVkIHNvbWV0aGluZyB0byB3cmFwIHRoZSBiYWJ5IGluIGlmIHdlIGRpZG7igJl0LuKAncKgV2UgbGVmdCBhbmQgbGl2ZSA1IG1pbnV0ZXMgZnJvbSB0aGUgaG9zcGl0YWwgc28gd2UgZHJvdmUgdG8gdGhlIGhvc3BpdGFsIGFuZCBJIGhhZCBieSB0aGUgZ3JhY2Ugb2YgR29kLCBvbmUgY29udHJhY3Rpb24gaW4gdGhlIHRydWNrLiBJIHdhcyBsYXlpbmcgZG93biBpbiB0aGUgdHJ1Y2sgYW5kIEkgaGFkIG9uZSBjb250cmFjdGlvbi4gSSByZWFsbHkgd2FzIGFibGUgdG8gaG9sZCBpdCBwcmV0dHkgd2VsbC4gSXQgd2FzbuKAmXQgYXMgaW50ZW5zZSBhcyBteSBjb250cmFjdGlvbiBiZWZvcmUgc28gdGhhdCB3YXMgbmljZS7CoDQ4OjA2IERlbGl2ZXJpbmcgaGVyIG93biBiYWJ5IGluIGEgd2hlZWxjaGFpcktyaXN0ZW46IFdlIGdvdCB0aGVyZSBhbmQgd2UgcGFya2VkLiBJIHN0YXJ0ZWQgd2Fsa2luZyBpbi4gSSBoYWQgb25lIGNvbnRyYWN0aW9uIGluIHRoZSBwYXJraW5nIGxvdC4gSSBqdXN0IHJlbWVtYmVyIGJlaW5nIGJ5IGEgZHVtcHN0ZXIgYW5kIEkgYWN0dWFsbHkgZ290IG1hZCBhdCB0aGF0IHBvaW50LiBJIHdhcyBsaWtlLCDigJxJIHdpbGwgbm90IGhhdmUgdGhpcyBiYWJ5IGluIHRoZSBwYXJraW5nIGxvdCBieSBhIGR1bXBzdGVyLuKAncKgSSB3b3VsZCBoYXZlIHRoaXMgYmFieSBpbiB0aGUgdHJ1Y2sgb3IgaW4gdGhlIGhvc3BpdGFsLCBidXQgSeKAmW0gbm90IGRvaW5nIGl0IGJ5IHRoZSBkdW1wc3Rlci4gSSB0cmllZCB0byB3YWxrIHRocm91Z2ggdGhhdCBjb250cmFjdGlvbiBiZWNhdXNlIEkgd2FzIGxpa2UsIE5vLiBJIGFtIG5vdCBoYXZpbmcgdGhpcyBiYWJ5IGhlcmUuwqBIZSBrZXB0IHRlbGxpbmcgbWUgdGhhdCBJIGd1ZXNzIEkga2VwdCBzYXlpbmcsIOKAnFNoZeKAmXMgaGVyZS4gU2hl4oCZcyBoZXJlLuKAnSBJIHdhcyBqdXN0IGhvbGRpbmcgbXlzZWxmLCBidXQgd2Ugd2Fsa2VkIGluIGFuZCBJIGdvdCBiYWNrd2FyZC4gVGhlIHNlY3VyaXR5IGd1YXJkIGJyb3VnaHQgb3ZlciBhIHdoZWVsY2hhaXIuIEkgZ290IGJhY2t3YXJkcyBvbiBteSBrbmVlcyBhbmQgSSB3YXMgc2l0dGluZyB1cC4gSGUgcHVzaGVkIG1lIHRocm91Z2ggYW5kIEkgZ290IHRvIHJpZ2h0IG91dHNpZGUgdGhlIGVsZXZhdG9yIGFuZCB0aGV5IHdlcmUgcHJlc3NpbmcgdGhlIGVsZXZhdG9yIGRvb3JzLiBUaGUgZWxldmF0b3IganVzdCB3YXMgbm90IGNvbWluZyBhbmQgSSBoYWQgb25lIGNvbnRyYWN0aW9uIGFuZCBJIHdhcyBsaWtlLCDigJxPa2F5LuKAnSBJIGRpZCBub3QgcHVzaC4gSSB0aGluayBpdCB3YXMgdGhlIGZldGFsIGVqZWN0aW9uIHJlZmxleC4gSSBkb27igJl0IGtub3cgd2hhdCBpdCB3YXMsIGJ1dCBJIGRpZCBub3QgcHVzaC7CoFNoZSBqdXN04oCUwqBNZWFnYW46IENhbWUuwqBLcmlzdGVuOiBZZXMuIE15IGh1c2JhbmQgc2FpZCBJIHdhcyBqdXN0IHB1c2hpbmcgdGhlIGJ1dHQgaW4gYW5kIGhlIHNhaWQsIOKAnEkgaGVhcmQsIOKAmEhlcmXigJlzIHRoZSBoZWFkLiBPa2F5LCBoZXJl4oCZcyB0aGUgc2hvdWxkZXJzLiBBbGwgcmlnaHQsIHNoZeKAmXMgaGVyZS4gU2hl4oCZcyBoZXJlLuKAnSBIZSB3YXMgbGlrZSwg4oCcWW91IHdlcmUganVzdCB0YWxraW5nIHVzIGFsbCB0aHJvdWdoIGl0LuKAnSBJIGp1c3QgZmVsdCBoZXIgYW5kIEkgd2FzIGxpa2UsIOKAnEFsbCByaWdodCwgc2hl4oCZcyBoZXJlLuKAncKgSSBwdWxsZWQgaGVyIHVwIGFuZCB0aGlzIHBvb3Igc2VjdXJpdHkgZ3VhcmQgd2FzIHB1c2hpbmcgbXkgd2hlZWxjaGFpciBzbyB0aGVuIGV2ZXJ5dGhpbmcgY2FtZSBvdXQsIGV2ZXJ5dGhpbmcgc28gaGUganVzdCBnb3QsIHRoZSBwb29yIGd1eSwgaGUgZGlkIG5vdCBzaWduIHVwIGZvciB0aGF0LsKgTWVhZ2FuOiBPaCBteSBnb3NoLCB3aGF0IGEgcmlkZSBmb3IgaGltLsKgS3Jpc3RlbjogWWVhaCwgdGhlbiB3ZSBnb3QgaW50byB0aGUgZWxldmF0b3IgYW5kIG15IHBvb3IgaHVzYmFuZCBoYWQgdG8gcHVzaC4gV2UgaGFkIGEgZmFtaWx5IGxlYXZlIHRoZSBlbGV2YXRvciwgaGUgd2FzIGxpa2UsIOKAnFNvcnJ5LCBndXlzLiBZb3XigJl2ZSBnb3QgdG8gZ2V0IG91dC7igJ0gV2UgZ290IGluIGFuZCB0aGF0IGVsZXZhdG9yLCBJIGd1ZXNzLCB3YXNu4oCZdCB3b3JraW5nIHNvIGl0IHRvb2sgdXMgZG93biB0byB0aGUgYmFzZW1lbnQgdGhlbiBpdCB3ZW50IGJhY2sgdXAgdG8gdGhlIGZpcnN0IGZsb29yIGFuZCBiYWNrIHVwIHRvIHRoZSBzZWNvbmQuSSB3YXMganVzdCBob2xkaW5nIG15IGJhYnkgYW5kIHRyeWluZyB0byBtYWtlIGhlciBjcnkgYSB0b24gYmVjYXVzZSBzaGUgaGFkIGNyaWVkIGEgbGl0dGxlIGJpdCwgYnV0IHNoZSB3YXMgcmVhbGx5IHF1aWV0IGFuZCBjYWxtLiBJIHdhcyBsaWtlLCDigJxOb3BlLCBzY3JlYW0uIEkgd2FudCB5b3UgdG8gc2NyZWFtLuKAnVdlIGdvdCB1cCB0byB0aGUgZmxvb3IgZmluYWxseSBhbmQgdGhlbiB0aGVyZSB3YXMgb25lIG51cnNlIHRoZXJlLiBTaGUgd2FzIGxpa2UsIOKAnE9rYXksIHNoZeKAmXMgaGVyZS4gQmFieSBpcyBoZXJlLuKAnSBXZSBqdXN0IHJhbiBiYWNrIHRocm91Z2ggYW5kIGl0IGVuZGVkIHVwIHRoYXQgdGhleSBkaWQgYXdlc29tZS4gSSBnb3QgdG8gZGVsaXZlciBteSBiYWJ5IGFuZCBpdCB3YXMgZ3JlYXQgYmVjYXVzZSBhbGwgb2YgdGhlIGRvY3RvcnMgd2VyZSBzdXBlciBzdHJlc3NlZCBhYm91dCBldmVyeXRoaW5nIGFuZCBhYm91dCBteSBWQkFDIGFuZCBpbmR1Y3Rpb24gYW5kIEkgZmVsdCBsaWtlIEdvZCB3YXMgbGlrZSwg4oCcV2VsbCwgaG9uZXksIHlvdeKAmXJlIGdvaW5nIHRvIHdvcnJ5IGFib3V0IHRoaXMgc28gbXVjaCBhbmQgdGhlbiB5b3UgYXJlIGdvaW5nIHRvIGRlbGl2ZXIgeW91ciBvd24gYmFieS7igJ3CoE1lYWdhbjogWW914oCZcmUgZ29pbmcgdG8gZG8gdGhpcy7CoEtyaXN0ZW46IEFuZCBpdCB3aWxsIGJlIGZpbmUuwqBNZWFnYW46IE9oIG15IGdvc2gsIHdoYXQgYSBzaG9jay4gV2hhdCBhIHJpZGUuIEnigJltIHN1cmUgZXZlcnlib2R5IGFyb3VuZCB3aWxsIG5ldmVyIGZvcmdldCB0aGF0IGRheSBldmVyLiBPaCBteSB3b3JkLiBDb25ncmF0dWxhdGlvbnMgb24gYWxsIHRocmVlIG9mIHlvdXIgc3dlZXQgYmFiaWVzIHdobyBJIGhhdmUgYmVlbiBhYmxlIHRvIHNlZSB0aHJvdWdob3V0IHRoZSBlcGlzb2RlLiBUaGF0IGlzIHNvIGZ1bi7CoFRoYW5rIHlvdSBzbyBtdWNoIGZvciBzaGFyaW5nIHlvdXIgc3Rvcmllcy7CoEdvc2gsIHlvdSB3ZW50IHRocm91Z2ggYSBsb3Qgd2l0aCBzd2l0Y2hpbmcgYW5kIGFsbCBvZiB0aGUgdGhpbmdzIHRoZW4gY2F0Y2hpbmcgeW91ciBvd24gYmFieS4gT2ggbXkgZ29zaC7CoDUxOjI3IFByZWVjbGFtcHNpYSBhcnRpY2xlIGFuZCBjYWxpYnJhdGluZyB5b3VyIGJsb29kIHByZXNzdXJlIGN1ZmZNZWFnYW46IE9rYXksIHNvIHRoZXJlIGlzIGFuIGFydGljbGUgZXNzZW50aWFsbHksIGEgc21hbGwgcmV2aWV3IHRoYXQgaXMgY2FsbGVkIFJpc2sgRmFjdG9ycyBhbmQgTWF0ZXJuYWwvRmV0YWwgT3V0Y29tZXMgQ29tcGxpY2F0ZWQgYnkgUHJlZWNsYW1wc2lhIEZvbGxvd2luZyBDZXNhcmVhbiBBZnRlciBhIFRyaWFsIG9mIFZhZ2luYWwgQmlydGguIFdl4oCZcmUgbm90IGdvaW5nIHRvIGRpdmUgdG9vIG11Y2ggaW50byBpdCBhbmQgZXZlbiBhdCB0aGUgYm90dG9tLCBpdCBzYXlzIHRoYXQgdGhleSBhY2tub3dsZWRnZSB0aGF0IHRoaXMgaXMgbm90IGEgY29ob3J0IHN0dWR5IGFuZCB0aGVyZWZvcmUgdGhlIGV2aWRlbmNlIGlzIG5vdCBhcyBzdHJvbmcgYXMgYSByYW5kb21pemVkLCBjbGluaWNhbCB0cmlhbCBidXQgdGhlIGNvbnNpc3RlbmN5IG9mIHRoZSBkYXRhIGFsb25nc2lkZSBldmlkZW5jZSBmcm9tIHRoZSBvdGhlciBsYXJnZXIgcHVibGlzaGVkIHN0dWRpZXMgaXMgcmVhc3N1cmluZy7CoEl0IHNheXMgdGhhdCB0aGV5IHJlY29tbWVuZCBhIHRyaWFsIG9mIGxhYm9yIGZvciBhbGwgcHJlZ25hbnQgd2l0aCBzZXZlcmUgcHJlZWNsYW1wc2lhIHVubGVzcyBpdCBpcyBleGNsdWRlZCBmb3Igb3RoZXIgaW5kaWNhdGlvbnMuIFNvIGp1c3QgcmlnaHQgdGhlcmUsIEkgbWVhbiwgYWdhaW4gbGlrZSBJIHNhaWQsIHRoaXMgcmlnaHQgaGVyZSBpcyBub3QgYXMgc3Ryb25nLiBUaGV5IGhhdmUgc29tZSBsaW5rcyBhbmQgd2UgYXJlIGdvaW5nIHRvIG1ha2Ugc3VyZSB0aGF0IGl0IGlzIGluIHRoZSBzaG93IG5vdGVzIGZvciB5b3UgdG8gZ28gcmVhZCBvdmVyLsKgQnV0IGFnYWluLCBpZiB5b3UgaGF2ZSBwcmVlY2xhbXBzaWEsIGlmIHlvdXIgbnVtYmVycyBhcmUgc2hvd2luZyBwcmVlY2xhbXBzaWEsIGl0IGlzIHBvc3NpYmxlIHRvIGhhdmUgYSBWQkFDLiBJIGVuY291cmFnZSB5b3UgdG8gZXhwbG9yZSB5b3VyIG9wdGlvbnMgYW5kIHRoZW4gSSB3YW50ZWQgdG8gdG91Y2ggb24gS3Jpc3RlbuKAmXMgY29tbWVudCBvZiBob3cgc2hlIGJyb3VnaHQgaGVyIGN1ZmYgaW4gYW5kIGl0IHdhcyBzbyBkaWZmZXJlbnQuwqBJdCByZWFsbHkgaXMgc29tZXRoaW5nIHRoYXQgYSBsb3Qgb2YgcGVvcGxlIGFjdHVhbGx5IGRvbuKAmXQga25vdyBzbyBJIHdhbnRlZCB0byBicmluZyB0aGlzIHVwLiBCdXQgaXTigJlzIHJlYWxseSBpbXBvcnRhbnQgdG8gZ2V0IGl0IGNoZWNrZWQgYW5kIGNhbGlicmF0ZWQgYnkgYSBwcm9mZXNzaW9uYWwgbGFiIG9yIHNvbWVvbmUgd2hvIHRha2VzIGJsb29kIHByZXNzdXJlIGJlY2F1c2Ugb2Z0ZW4sIGl0IGNhbiBiZSB3cm9uZy4gQSBsb3Qgb2Ygb3VyIHByZWVjbGFtcHRpYyBtb21zIGFyZSBnZXR0aW5nIGN1ZmZzIGFuZCB0aGVuIHRoZXkgYXJlIG5vdCBjYWxpYnJhdGVkLCBzbyB3ZSBhcmUgaGF2aW5nIHJlYWxseSBoaWdoIHJlYWRpbmdzIG9yIHJlYWxseSBsb3cgcmVhZGluZ3MgYW5kIGl04oCZcyB0aGUgb3Bwb3NpdGUuIEl04oCZcyBub3QgbWF0Y2hpbmcgdXAuwqBJZiB5b3UgaGF2ZSBhIGJsb29kIHByZXNzdXJlIGN1ZmYgYXQgaG9tZSBhbmQgeW91IGFyZSBmZWVsaW5nIGxpa2Ugc29tZXRoaW5nIGlzIG9mZiBvciB5b3UgYXJlIGdldHRpbmcgd2VpcmQgcmVhZGluZ3MgYW5kIGl04oCZcyBub3QgY29uc2lzdGVudCB3aXRoIHlvdXIgaG9zcGl0YWwgcmVhZGluZ3MsIGRvbuKAmXQgaGVzaXRhdGUgdG8gZ28gZ2V0IGl0IGNhbGlicmF0ZWQgYmVjYXVzZSB0aGF0IGNhbiBkZWZpbml0ZWx5LCBkZWZpbml0ZWx5IGhlbHAuwqBJdOKAmXMgc3VwcG9zZWQgdG8gYmUgY2FsaWJyYXRlZCBldmVyeSA2IG1vbnRocyBzbyBpZiB5b3UgZ2V0IG9uZSBmb3Igb25lIHByZWduYW5jeSBhbmQgdGhlbiB0d28geWVhcnMgbGF0ZXIgb3Igb25lIHllYXIgbGF0ZXIgb3Igd2hlbmV2ZXIgeW91IGFyZSBoYXZpbmcgeW91ciBiYWJ5IGFuZCB5b3UgYXJlIHVzaW5nIGl0IGFnYWluIGZvciB3aGF0ZXZlciByZWFzb24sIGtub3cgdGhhdCB5b3UgbWF5IG5lZWQgdG8gaGF2ZSBpdCBjYWxpYnJhdGVkIGJlY2F1c2UgaXQgaGFzIGJlZW4gYSB3aGlsZS7CoEkganVzdCBuZWVkZWQgdG8gdGhyb3cgdGhhdCBpbiB0aGVyZSBhbmQgdGhhbmsgeW91IG9uY2UgYWdhaW4gZm9yIGJlaW5nIGhlcmUgd2l0aCB1cyB0b2RheSBhbmQgY29uZ3JhdHVsYXRpb25zIGFnYWluLsKgS3Jpc3RlbjogVGhhbmsgeW91IHNvIG11Y2guwqBDbG9zaW5nV291bGQgeW91IGxpa2UgdG8gYmUgYSBndWVzdCBvbiB0aGUgcG9kY2FzdD8gVGVsbCB1cyBhYm91dCB5b3VyIGV4cGVyaWVuY2UgYXQgdGhldmJhY2xpbmsuY29tL3NoYXJlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBhbGwgdGhpbmdzIFZCQUMgaW5jbHVkaW5nIG9ubGluZSBhbmQgaW4tcGVyc29uIFZCQUMgY2xhc3NlcywgVGhlIFZCQUMgTGluayBibG9nLCBhbmQgTWVhZ2Fu4oCZcyBiaW8sIGhlYWQgb3ZlciB0byB0aGV2YmFjbGluay5jb20uIENvbmdyYXR1bGF0aW9ucyBvbiBzdGFydGluZyB5b3VyIGpvdXJuZXkgb2YgbGVhcm5pbmcgYW5kIGRpc2NvdmVyeSB3aXRoIFRoZSBWQkFDIExpbmsuU3VwcG9ydCB0aGlzIHBvZGNhc3QgYXQg4oCUIGh0dHBzOi8vcmVkY2lyY2xlLmNvbS90aGUtdmJhYy1saW5rL2RvbmF0aW9uc0FkdmVydGlzaW5nIElucXVpcmllczogaHR0cHM6Ly9yZWRjaXJjbGUuY29tL2JyYW5kcyIsImR1cmF0aW9uIjp7InRvdGFsTWlsbGlzZWNvbmRzIjozMzM3NzQzfSwiaWQiOiI2Yjcxd0NJR0FUWnA1bFlrUlVSSUZCIiwibWVkaWFUeXBlcyI6WyJBVURJTyJdLCJuYW1lIjoiRXBpc29kZSAzMDMgS3Jpc3RlbidzIDJWQkFDIFN0b3JpZXMgd2l0aCBQcmVlY2xhbXBzaWEiLCJwbGF5YWJpbGl0eSI6eyJwbGF5YWJsZSI6dHJ1ZSwicmVhc29uIjoiUExBWUFCTEUifSwicGxheWVkU3RhdGUiOnsicGxheVBvc2l0aW9uTWlsbGlzZWNvbmRzIjowLCJzdGF0ZSI6Ik5PVF9TVEFSVEVEIn0sInBvZGNhc3RWMiI6eyJfX3R5cGVuYW1lIjoiUG9kY2FzdFJlc3BvbnNlV3JhcHBlciIsImRhdGEiOnsiX190eXBlbmFtZSI6IlBvZGNhc3QiLCJjb3ZlckFydCI6eyJzb3VyY2VzIjpbeyJoZWlnaHQiOjY0LCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDBmNjhkYmI1Zjc2YmE0MzJkZmMzMDNmMzdmODA2Iiwid2lkdGgiOjY0fSx7ImhlaWdodCI6MzAwLCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDA1ZjFmYmI1Zjc2YmE0MzJkZmMzMDNmMzdmODA2Iiwid2lkdGgiOjMwMH0seyJoZWlnaHQiOjY0MCwidXJsIjoiaHR0cHM6Ly9pLnNjZG4uY28vaW1hZ2UvYWI2NzY1NjMwMDAwYmE4YWJiNWY3NmJhNDMyZGZjMzAzZjM3ZjgwNiIsIndpZHRoIjo2NDB9XX0sIm5hbWUiOiJUaGUgVkJBQyBMaW5rIiwic2hvd1R5cGVzIjpbXSwidXJpIjoic3BvdGlmeTpzaG93OjM2YlZ4cU9HZDFFWWNSMG9KdGVGNW4ifX0sInJlbGVhc2VEYXRlIjp7Imlzb1N0cmluZyI6IjIwMjQtMDUtMjdUMDc6MTA6MDBaIn0sInJlc3RyaWN0aW9ucyI6eyJwYXl3YWxsQ29udGVudCI6ZmFsc2V9LCJ1cmkiOiJzcG90aWZ5OmVwaXNvZGU6NmI3MXdDSUdBVFpwNWxZa1JVUklGQiJ9LHsiX190eXBlbmFtZSI6IkVwaXNvZGUiLCJhdWRpbyI6eyJpdGVtcyI6W3siZmlsZUlkIjoiZWY4MmYxZjdkYjUzMTc4NDI3ZDQ1ZDMzNWQ1Y2RkZDg3YzM3YzgwNSIsImZvcm1hdCI6Ik1QNF8xMjhfRFVBTCIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3L2VmODJmMWY3ZGI1MzE3ODQyN2Q0NWQzMzVkNWNkZGQ4N2MzN2M4MDUifSx7ImZpbGVJZCI6ImZjZTNjNDZkYjM2NmZhYzQ4YTRmYTY4YzlkZWM3N2Q5MDZkNGVjM2YiLCJmb3JtYXQiOiJNUDRfMTI4X0NCQ1MiLCJ1cmwiOiJodHRwczovL3Auc2Nkbi5jby9tcDMtcHJldmlldy9mY2UzYzQ2ZGIzNjZmYWM0OGE0ZmE2OGM5ZGVjNzdkOTA2ZDRlYzNmIn0seyJmaWxlSWQiOiJjOWRlZWEyOGZmYzlkYzdhZGI0OTg1NGM2MjJhMmY4YTMzMjNkMjk5IiwiZm9ybWF0IjoiTVA0XzEyOCIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3L2M5ZGVlYTI4ZmZjOWRjN2FkYjQ5ODU0YzYyMmEyZjhhMzMyM2QyOTkifSx7ImZpbGVJZCI6Ijc3YjU3ZDhiMzM2OGM3MTdiMzViNjBlM2Q4YWU2NDBkMmQ2YjllNjciLCJmb3JtYXQiOiJBQUNfMjQiLCJ1cmwiOiJodHRwczovL3Auc2Nkbi5jby9tcDMtcHJldmlldy83N2I1N2Q4YjMzNjhjNzE3YjM1YjYwZTNkOGFlNjQwZDJkNmI5ZTY3In0seyJmaWxlSWQiOiJhYzRmZWUwY2RiMGM3ZjhiZWUwODMzNmI2NmI1YWI0NjVmMDRmOTgzIiwiZm9ybWF0IjoiT0dHX1ZPUkJJU185NiIsInVybCI6Imh0dHBzOi8vcC5zY2RuLmNvL21wMy1wcmV2aWV3L2FjNGZlZTBjZGIwYzdmOGJlZTA4MzM2YjY2YjVhYjQ2NWYwNGY5ODMifV19LCJjb250ZW50UmF0aW5nIjp7ImxhYmVsIjoiTk9ORSJ9LCJjb3ZlckFydCI6eyJzb3VyY2VzIjpbeyJoZWlnaHQiOjY0LCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDBmNjhkYmI1Zjc2YmE0MzJkZmMzMDNmMzdmODA2Iiwid2lkdGgiOjY0fSx7ImhlaWdodCI6MzAwLCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDA1ZjFmYmI1Zjc2YmE0MzJkZmMzMDNmMzdmODA2Iiwid2lkdGgiOjMwMH0seyJoZWlnaHQiOjY0MCwidXJsIjoiaHR0cHM6Ly9pLnNjZG4uY28vaW1hZ2UvYWI2NzY1NjMwMDAwYmE4YWJiNWY3NmJhNDMyZGZjMzAzZjM3ZjgwNiIsIndpZHRoIjo2NDB9XX0sImRlc2NyaXB0aW9uIjoiUGF0cmljZeKAmXMgZmlyc3QgcHJlZ25hbmN5IGVuZGVkIGluIGEgQy1zZWN0aW9uLiBXaXRoIGhlciBzZWNvbmQsIHNoZSB3YXMgZGV0ZXJtaW5lZCB0byBkZWxpdmVyIHZhZ2luYWxseS4gVGhlIHByZWduYW5jeSB3YXMgcHJvZ3Jlc3NpbmcgZmluZS4gV2hhdCB3YXNuJ3QgZmluZSB3YXMgaGVyIHByb3ZpZGVy4oCZcyBhdHRpdHVkZSB0b3dhcmQgaGVyIGJpcnRoIHBsYW4uIFBhdHJpY2Ugd2FzIG11Y2ggbW9yZSBlZHVjYXRlZCBkdXJpbmcgaGVyIHNlY29uZCBwcmVnbmFuY3kgdGhhbiBoZXIgZmlyc3QsIGFuZCBhc2tlZCBtYW55IHNwZWNpZmljIHF1ZXN0aW9ucyB0byBoZXIgcHJvdmlkZXIgb3ZlciB0aGUgY291cnNlIG9mIHRoZSBwcmVnbmFuY3kuIFBhdHJpY2UgZXZlbnR1YWxseSBsZWFybmVkIHRocm91Z2ggdGhlc2UgaW5xdWlyaWVzIHRoYXQgaGVyIHByb3ZpZGVyIHdhcyBtb3JlIFZCQUMtdG9sZXJhbnQgdGhhbiBWQkFDLXN1cHBvcnRpdmUgdGhhbiBzaGUgaGFkIGJlZW4gbGVkIHRvIGJlbGlldmUuIFdpdGggdGhlIHN1Z2dlc3Rpb24gb2YgYSBzZWNvbmQgQy1zZWN0aW9uIGFuZCB0YWxrIG9mIHNjaGVkdWxpbmcgaW5kdWN0aW9uLCBQYXRyaWNlIGZlbHQgZGlzY291cmFnZWQsIGJldHJheWVkLCBob3BlbGVzcywgYW5kIGFmcmFpZC4gTHVja2lseSwgUGF0cmljZSBkaWQgdGhlIHJpZ2h0IHRoaW5nOiBzaGUgZmlyZWQgaGVyIHByb3ZpZGVyIGFuZCBmb3VuZCBhbm90aGVyIHdobyBiZWxpZXZlZCBpbiBoZXLCoCBhbmQgaGVyIFZCQUMgYmlydGggcGxhbi4gV29tZW4gb2Ygc3RyZW5ndGgsIGxldCBtZSB0ZWxsIHlvdTogZmlyaW5nIHlvdXIgcHJvdmlkZXIgdGFrZXMgY291cmFnZS4gU29tZSBvZiB0aGUgdGhpbmdzIHRoYXQgUGF0cmljZeKAmXMgcHJvdmlkZXIgc3VnZ2VzdGVkIHRvIGhlciwgeW91IHdpbGwgbW9zdCBsaWtlbHkgaGVhciBhcyB3ZWxsIGlmIHlvdXIgcHJvdmlkZXIgZmFsbHMgbW9yZSBvbiB0aGUgVkJBQy10b2xlcmFudCBzaWRlIG9mIHRoZSBzY2FsZSB0aGFuIFZCQUMtc3VwcG9ydGl2ZS4gRXZlcnkgcGVyc29uIG9uIHlvdXIgYmlydGggdGVhbSBuZWVkcyB0byBiZWxpZXZlIGluIHlvdSAxMTAlIGFuZCBubyBsZXNzLCBhbmQgdGhhdCBpbmNsdWRlcyB5b3VyIHByb3ZpZGVyLiBJbiB0aGlzIGVwaXNvZGUsIGxpc3RlbiB0byBQYXRyaWNlIHRlbGwgdGhlIHN0b3J5IG9mIGhvdyBoZXIgc2Vjb25kIHByZWduYW5jeSBlbmRlZCBpbiBhIGJlYXV0aWZ1bCBWQkFDLiBBbmQgYWx3YXlzIHJlbWVtYmVyLCB5b3XigJlyZSB0aGUgb25lIGNhbGxpbmcgdGhlIHNob3RzLCB5b3XigJlyZSB0aGUgb25lIGluIGNoYXJnZSwgbm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLCBhbmQgeW91IG93ZSB5b3VyIHByb3ZpZGVyIG5vdGhpbmcuIEZ1biBmaW5kcyBpbiB0aGlzIGVwaXNvZGU6IHdl4oCZbGwgbGVhcm4gd2hhdCBhbiBhcXVhZG91bGEgaXMsIGFuZCBhbHNvIHdoYXQgYW4gb3V0cGF0aWVudCBmb2xleSBidWxiIGlzLiBDaGVjayBvdXQgb3VyIGJsb2csIFRoZSBCZXN0IEluZHVjdGlvbiBNZXRob2QgZm9yIFZCQUMsIHRvIGZpbmQgb3V0IG1vcmUgYWJvdXQgdGhlIGZvbGV5IGJ1bGIgYW5kIG90aGVyIFZCQUMgaW5kdWN0aW9uIG1ldGhvZHMuIFN1cHBvcnQgdGhpcyBwb2RjYXN0IGF0IOKAlCBodHRwczovL3JlZGNpcmNsZS5jb20vdGhlLXZiYWMtbGluay9kb25hdGlvbnNBZHZlcnRpc2luZyBJbnF1aXJpZXM6IGh0dHBzOi8vcmVkY2lyY2xlLmNvbS9icmFuZHMiLCJkdXJhdGlvbiI6eyJ0b3RhbE1pbGxpc2Vjb25kcyI6MjcwMzA0Nn0sImlkIjoiNXFXbXBKYTduR0xlTkk4MjlBMWFWNiIsIm1lZGlhVHlwZXMiOlsiQVVESU8iXSwibmFtZSI6Ijk3IFBhdHJpY2UncyBWQkFDICsgVGhlIEJlc3QgSW5kdWN0aW9uIE1ldGhvZCBmb3IgVkJBQyIsInBsYXlhYmlsaXR5Ijp7InBsYXlhYmxlIjp0cnVlLCJyZWFzb24iOiJQTEFZQUJMRSJ9LCJwbGF5ZWRTdGF0ZSI6eyJwbGF5UG9zaXRpb25NaWxsaXNlY29uZHMiOjAsInN0YXRlIjoiTk9UX1NUQVJURUQifSwicG9kY2FzdFYyIjp7Il9fdHlwZW5hbWUiOiJQb2RjYXN0UmVzcG9uc2VXcmFwcGVyIiwiZGF0YSI6eyJfX3R5cGVuYW1lIjoiUG9kY2FzdCIsImNvdmVyQXJ0Ijp7InNvdXJjZXMiOlt7ImhlaWdodCI6NjQsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMGY2OGRiYjVmNzZiYTQzMmRmYzMwM2YzN2Y4MDYiLCJ3aWR0aCI6NjR9LHsiaGVpZ2h0IjozMDAsInVybCI6Imh0dHBzOi8vaS5zY2RuLmNvL2ltYWdlL2FiNjc2NTYzMDAwMDVmMWZiYjVmNzZiYTQzMmRmYzMwM2YzN2Y4MDYiLCJ3aWR0aCI6MzAwfSx7ImhlaWdodCI6NjQwLCJ1cmwiOiJodHRwczovL2kuc2Nkbi5jby9pbWFnZS9hYjY3NjU2MzAwMDBiYThhYmI1Zjc2YmE0MzJkZmMzMDNmMzdmODA2Iiwid2lkdGgiOjY0MH1dfSwibmFtZSI6IlRoZSBWQkFDIExpbmsiLCJzaG93VHlwZXMiOltdLCJ1cmkiOiJzcG90aWZ5OnNob3c6MzZiVnhxT0dkMUVZY1Iwb0p0ZUY1biJ9fSwicmVsZWFzZURhdGUiOnsiaXNvU3RyaW5nIjoiMjAxOS0xMC0zMFQwOTowMDowMFoifSwicmVzdHJpY3Rpb25zIjp7InBheXdhbGxDb250ZW50IjpmYWxzZX0sInVyaSI6InNwb3RpZnk6ZXBpc29kZTo1cVdtcEphN25HTGVOSTgyOUExYVY2In1dLCJ1cmkiOiJzcG90aWZ5OmVwaXNvZGU6N3NBN2E5Qk1kZTVLOVJwUmFlSENpaiIsInN0YXR1cyI6IkxPQURFRCJ9LCJzaW1pbGFyUGxheWxpc3RzIjp7InN0YXR1cyI6IlVOQVZBSUxBQkxFIn0sInNpbWlsYXJBbGJ1bXMiOnsic3RhdHVzIjoiVU5BVkFJTEFCTEUifSwicG9wdWxhckVwaXNvZGVzIjp7InN0YXR1cyI6IlVOQVZBSUxBQkxFIn19LCJwbGF5bGlzdFJlY29tbWVuZGVkVHJhY2tzIjp7InBsYXlsaXN0Ijp7InN0YXR1cyI6IlVOQVZBSUxBQkxFIn19LCJjb25jZXJ0SHViIjp7ImNvbmNlcnRGZWVkIjpudWxsLCJsb2NhdGlvbiI6bnVsbH0sIm1hc3RoZWFkIjp7ImlzQ3Jhd2xlckJvdCI6ZmFsc2V9fQ==</script><script id="remote-configuration" type="text/plain">eyIjdiI6IjEiLCJlbmFibGVJTFJQbGF5bGlzdE1XUCI6ImNvbnRyb2wiLCJlbmFibGVJMThuUm91dGVzIjoidmFyaWFudCIsImRpc2FibGVVbmF1dGhMeXJpY3NDVEEiOnRydWUsIiNjb25maWd1cmF0aW9uQXNzaWdubWVudElkIjoiYTg0NTg2YWEtMDg3YS01ODRiLTIxMWEtZDBmMDA1ZTJkNGQ3OjAiLCIjZ3JvdXBJZHMiOnsiZW5hYmxlSUxSUGxheWxpc3RNV1AiOjEyMTA5MTgsImVuYWJsZUkxOG5Sb3V0ZXMiOjExMDI2NjEsImRpc2FibGVVbmF1dGhMeXJpY3NDVEEiOjExODY1NDF9LCIjZmV0Y2hUaW1lTWlsbGlzIjoxNzMyNzA2ODM0MDQxLCIjY29udGV4dEhhc2giOiJlMzM5MGRmNzJiYjAwODE0In0=</script><script src="https://open.spotifycdn.com/cdn/build/mobile-web-player/mobile-web-player.fad55d4f.js"></script><script src="https://open.spotifycdn.com/cdn/build/mobile-web-player/vendor~mobile-web-player.8e5c597b.js"></script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10