Tag Archive | "personal responsibility"

Choices That Impact Your Marriage


God has given you the ability to choose. Next to the gift of His Son Jesus, this is the most precious gift you possess. It’s what separates you from all other forms of life on this planet. Making choices allows you to tap into strengths you never thought you had and exercise the power to change whatever needs changing in your life. Whatever grief or anger or pain you may feel about your marriage, you have the power within you to do something about it. You are not a victim. You are free to choose to act, to change. God has given you a huge reservoir of talent, creativity, knowledge, self-worth, energy, and love. You have the freedom to change your negative responses to your mate’s behavior and draw on these God-given assets to do the right and helpful thing. Making this choice can introduce a redemptive force for positive change in your marriage.

For marriage choices it narrows down to two critical things every married individual must exercise: unconditional love and personal responsibility. Unconditional love means you accept and cherish your mate as he or she is. Personal responsibility means you take charge of correcting your own faults instead of your mate’s. That, in a nutshell, is it. Intimacy, happiness, growth, communication and all the other vital aspects of a good marriage grow out of these two choices. If both partners recognize this fact, there will be no victims in the marriage. Each person’s happiness will rest entirely in his or her own hands. And the end result is the safety and security that every marriage must have in order to thrive.

Do you believe this? Really believe this? Since it’s my contention that all behavior is a result of what we believe, this is a crucial question. Do you believe that you can take personal responsibility for the success of your marriage? If you don’t, then you must believe the opposite—that your spouse or circumstances are in control of what happens to you. You must believe that you are a victim. Therefore you must react and put the blame on your mate when the marriage does not meet your expectations. This is a tragedy, because when you blame your mate you not only divest yourself of your responsibility, you also reduce the choices you have to change the relationship. You forfeit the ability to control your own destiny.

So if you want your marriage to be the most exciting and rewarding journey of your life, the question to ask is not whether your mate is doing enough to make the marriage work, but rather: Are you loving your mate unconditionally by taking responsibility for your role in the relationship? A good way to turn this intention into a commitment is to make a promise of it. Promise to look at yourself first, to take responsibility for your own part of the marriage, and to stop trying to change your mate. Such a promise puts legs on unconditional love. It says you are willing to put your personal dreams and needs on hold for a while and make what’s best for the relationship a priority.

Posted in Conflict Resolution, Hiding God's Word, MarriageView Comments

Who’s Fault Is It, Anyway?


Who’s Fault Is It, Anyway?
By Gary Smalley

My all time favorite comic strip is the one from Peanuts where Charlie Brown attempts to kick a football held by Lucy. But she always jerks it away at the last minute, causing poor Charlie to fall flat on his back. Each year Lucy promises Charlie Brown that this time she will keep the football on the ground so he can kick it. Each year Charlie Brown is doubtful. He wavers. He remembers all the times that Lucy has yanked the football away. Each year Lucy gives Charlie plausible, sincere explanations why this time it will be different. And each year Charlie Brown finally believes her, races determinedly across the yard, and falls with a thud when yet again Lucy yanks the football away.
If you are like me, you feel sorry for Charlie Brown. You also probably feel angry at Lucy. She’s really being unkind. But has it ever occurred to you that Charlie brown is being stupid? After all, he’s been falling for the same old trick for years. When will he ever learn? What is he thinking? Well, obviously he thinks that this time, at long last, Lucy will not jerk the football away. And when she does, what does Charlie Brown do? He blames Lucy! Now think about this for a moment. Who’s really at fault here?
I believe Charlie Brown is at fault. Here’s why. Who, in the final analysis, is the cause of the problem? It’s not Lucy. Lucy is not doing it to Charlie Brown. He is allowing this to happen to him. He hasn’t learned a thing in all the years Lucy has been snatching the ball away. Unless Charlie Brown decides for himself to stop trying to kick the football, nothing will ever change. But if he changes his behavior and stops trying to kick the ball, two positive things happen: He avoids disappointment and Lucy’s behavior changes. She has no choice. She won’t be able to take the football away.
Saying all this doesn’t make Lucy right; it just means that Charlie Brown’s happiness is always in his own hands. Happiness is always your choice, as we will see in a moment. When you feel unhappy or unfulfilled in your marriage, more than likely it means you have not done enough to create a secure environment where unconditional love can flourish. You need to focus your attention entirely on what you can do to become more loving—not on trying to change your partner—because that’s what will make the greatest difference in your marriage and in your happiness. As long as we focus on being right and in control, insisting on the appearance of being correct while making our spouse appear to be wrong, the secure environment in which love can grow will elude us.
You probably don’t want to hear this, but it’s true. If you are unhappy in a relationship, you’re the one who’s probably at fault. A strong statement? Absolutely. But if you can come to grips with the truth of it, it will change your marriage and your life.

Posted in Communication, MarriageView Comments

The Key to Lasting Marital Change


The Key to Lasting Marital Change
By Gary Smalley

This is the key to real, lasting love in your marriage: change yourself first and accept your mate unconditionally just the way he or she is. Then as you work with God to become more like Him, watch how your mate will eventually try to emulate you. But don’t do this just to change your mate; do it for yourself and for your own personal relationship with God. By taking responsibility for your actions and changing even small behaviors, you demonstrate unconditional love and thus create an emotionally secure atmosphere in which your marriage can thrive. Pushing your spouse to change in order to make you feel safer is hardly the way of unconditional love. When you want to change your mate, 99.99% of the time there’s a selfish motive behind it. Expecting him or her to change to meet your expectations is putting self first, and if your mate does the same thing, then you have two selves in conflict, each fighting to fulfill his or her own needs. The only way to improve the relationship is to shine the spotlight on yourself and expose your own faults and weaknesses. Your mate may not want to deal with his or her problems, but you will be surprised at how great an impact your own example can have when you choose to deal with your own. You must not give in to hopelessness and helplessness even if you are convinced that your partner is the real problem. Even if that is true, by changing yourself, you can affect things dramatically and positively. I can hardly wait for you to reach chapter 6, because there I’ll show you the easiest and fastest way possible to change anything about yourself.
Here’s why you will influence change in your mate when you change yourself. As one person makes changes, those changes have a ripple effect on the other simply because your lives are connected and interact at many levels. Over time, you and your mate have shaped each other’s behavior by consciously and unconsciously rewarding some behaviors and punishing others. Habits of behavior have been established. Patterns of relating ingrained. In every marriage these patterns cause the relationship to achieve a certain kind of complementary balance. I don’t mean it’s necessarily a formal balance with equality of happiness and responsibility on both sides. One partner may be very aggressive and even overbearing, while the other responds by becoming very passive and compliant. By balance I mean that the two partner’s attributes and responses adjust to accommodate each other. And they maintain some kind of equilibrium that way. Therefore, if one partner changes, the relationship changes, because the other automatically moves to adjust and maintain the balance.
So, when you take it upon yourself to change, you automatically change the balance of the marriage, and your mate must also change in order to maintain equilibrium. Even the slightest change is like adding a weight to one side of the balance. Your partner will sense the imbalance, feel uncomfortable, and adjust. I’ll admit that now and then the partner’s adjustment is for the worse. But not usually. When you make a truly positive change, it’s highly likely that the corresponding change your partner makes will also be positive.
There are two kinds of changes you can make to improve a relationship: you can either increase pleasure or decrease pain. To put it in behaviorist’s terms, you can eliminate undesirable behaviors or increase desirable ones. The latter approach is not only more effective, it’s also easier. It’s much easier to do more of something a partner likes than to stop doing something he hates. And research indicates that this approach works better. Adding loving behaviors will reduce annoying ones.
Sometimes your mate may resist your new behavior. He or she might find even positive changes threatening simply because the balance has been upset. But if you persevere and remain consistent with your change, chances are excellent that your mate will eventually come around and change his or her behavior too, and most often in a positive direction. This is what I call the “principle of reciprocity.” When you do even simple random acts of kindness, such as back rubs, washing the dishes, giving flowers, or making a favorite dessert, your partner is likely to respond in a positive way. Your behavior influences your mate’s behavior, and your mate’s behavior rewards your behavior, making you want to reciprocate. It’s not a vicious circle; it’s a delicious circle.

Posted in Communication, Conflict ResolutionView Comments

Blaming


“You’re the one who needs to change.”

Adam and Eve were caught in sin. They had just eaten from the forbidden tree. When God entered the garden, neither of them would take personal responsibility. Adam shifted the blame to Eve and God by saying, “This woman you gave me.” Eve shifted the blame to Satan. This is where the “blame game” got started.

When we stop blaming others for our shortcomings, we diffuse anger and resolve conflicts.

We encourage you to resist making “you” statements such as, “You’re the one who needs to change,” “You should have warned me that our marriage was in trouble,” “You’re not the same man I married,” and “You weren’t submissive enough,” as reasons for your behavior. These “you” statements are deadly to a relationship, and they seldom improve your situation. Avoid using these types of blaming statements. I have found that you can not change another person, it’s impossible. You can only change yourself with the power of God living within you. You might be able to influence a change in someone else, but your focus should be on the areas of your own life that need improvement. You influence people to change the most by first letting them see a change in you.

Using a statement such as, “You were just too sensitive,” stirs up more anger. As this happens, the blaming backfires and exposes your resistance to improve or change. When you experience the urge to blame, remember King Solomon’s wise words: “A man of knowledge uses words with restraint, and a man of understanding is even-tempered” (Proverbs 17:27).

When conflict raises its ugly head in your relationships, where do you place blame? Your spouse? Kids? Boss? Job? Church? Money?

What steps could you take to accept personal responsibility in your life?

Posted in MarriageView Comments

You are responsible for your own emotions and reactions


Have you ever been utterly humiliated by your spouse in public? I (Amy) got to experience humiliation by the hands of my husband back in February of 2009. It was David’s, our youngest child, seventh birthday. I love this illustration because it is one of the times where I actually handled myself correctly (which is more than I can say for Michael) :-) . Usually I am the escalator and the one needing to apologize for mishandling myself during a conflict. But the disfunction falls directly on Michael’s shoulders this time!

Our son David loves routine and for the third year in a row he wanted to have his birthday at a place near our house called Pump It Up. It is a great venue for kids and is filled from floor to ceiling with these awesome air-blown trampolines, slides, and obstacle courses. We decided to download the birthday invitations so we could fold and hand them out to all the kids in his class.

Over the years, Michael has learned how to use graphic design programs like Photoshop and Adobe Indesign. When you can’t hire a graphic design team, you do the graphic design work yourself. After we downloaded the invitation, Michael had the idea of making custom changes to the invitation. I was thrilled by his suggestions and gave him the thumbs up to make some changes. We talked about what we wanted added to the cards and then he made the changes. I was quite excited about what we had done to the card! And this would be the last time I felt any kind of positive emotion about this invitation.

The very next morning was the start of a two-day Marriage Restoration Intensive with a couple in crisis for me. This is a program of ours that helps couples in crisis get through trama and hopefully regain a happy marriage. I had to leave early in the morning and was gone before my kids even awoke. Michael was in his office putting the finishing touches on the birthday invitation when our 7-year old walked in and excitedly asked what he was doing. He showed him the card on the computer and David loved it! Then our son asked a question. The answer Michael gave to his question will haunt me for the rest of my days. “Daddy, can you put on the card what I want for my birthday?”

Sounds like an innocent question, doesn’t it. But Michael had no idea of the consequences his decision would reap in only two short days.

Michael replied to David’s question with a resounding, “Of course! Daddy can put whatever you want on this card!” So our son asked for him to put on his birthday card (that was going to be handed over to every single mother in David’s class), “David is requesting CASH for his birthday present.”

I still have a hard time believing that Michael didn’t even consider how this request may come across as inappropriate and rude. But alas, he did not. Michael printed the cards, folded them up, and handed them out to each kid in the class. It wasn’t till later that day, when Michael was sitting under the big Oak tree at our kid’s school, that he wondered if it was weird to put such a request on a birthday card.

One of the moms in our son’s class was sitting next to him under the tree. Michael leaned over and asked her if she had opened the invitation yet. She said no. He then asked her if it was weird to put David’s request for CASH on the birthday invitation. Her response was classic, “Oh no. You did not put that on David’s birthday card?” He said yes. She then asked if I knew what had been added to the card, and he told her that I had not seen the cards yet. The mom then said to him, “Don’t tell her.”

We are not usually ones to endorse keeping secrets, but Michael did feel that this secret did have real implications on his life going on or ending. Which he was probably correct! I know the wives reading this story are weeping in empathy for me, thanks girls!

The party came and I was clueless about the invitation. I did wonder why all the moms were only bringing envelopes as gifts, however. I even brought this to Michael’s attention! It did not bother me, in fact, it was quite the opposite. I was actually pretty happy that the moms did not feel obligated to bring David more gifts. You see, I assumed that the cards were only cards. I did not know yet that the cards contained CASH! I just figured David already had enough toys and was content with no new presents to eventually organize and clean.

[I, Michael, must interject at this point of the story]

Can you imagine my horror at the total health of my wife! Here I was, getting prepared to be lambasted by my wife, and she pulls out this statement! I could not believe my ears. I knew Amy was loving and gracious, but this was crazy! I already felt bad for what she was about to find out, but then her attitude of graciousness at thinking no one was bringing any gifts only made my sickness even worse.

[I've said my peace, Amy can continue now]

Thanks for giving me permission to continue, sweetie =]. Michael was quickly becoming aware of how much trouble his little invitation was about to get him into. And then it happened. One of the moms, who is also a good friend of ours, came right up to me with David’s present. It was a nicely colored tin jar filled to the brim with coins. She was quite proud of her sarcastic moment and winked towards Michael, knowing full well that she was getting him into trouble! She knew what Michael had done and she was making sure he got in trouble for it. She then handed me the invitation and politely said, “I was so thankful your husband let us all know what David wanted for his birthday present.”

That was it. The secret was out and I did what any wife would do in that moment, I whacked Michael on the arm and then pulled him close to my lips and whispered, “We’ll talk about this later.”

I did it! I actually controlled my emotions and put them on hold until we could finish David’s birthday party. Nothing is worse than ruining a party with a horrible fight. I knew this and actually made a decision to put off the discussion until we got home. I wanted to keep David’s party sacred and the reality was that I did not have to respond with anger. I had a choice, and so do you.

Here is the reality. We all have a choice when it comes to our reactions. There are no victims in a healthy marriage, only two people totally responsible for their own emotions and reactions. We have already outlined for you in the beginning chapters on why you do not want to be a victim in any relationship. Victims feel powerless and out-of-control. The reality is that we are not powerless nor out-of-control. We contain the ability to choose how we respond to any circumstance or situation.

If we do not take control over our emotions and reactions, then Mr. Powerless and Mrs. Fear are going to take control for us. Because if we are not taking command of how we respond, then the only choice we leave ourselves is powerlessness and fear.

One of the more poignant things we learned early on in our marriage is that we did not make each other feel anything. This might sound like an impossible statement. But it is true. People, places, or things can not make us feel or do anything. It is our choice in response to someone’s demands or sin against us.

2 Corinthians 5:10 reads, “Sooner or later we’ll all have to face God, regardless of our conditions. We will appear before Christ and take what’s coming to us as a result of our actions, either good or bad.” Notice that this verse says nothing about other people. It only mentions us. We will appear in front of Christ one day and will take responsibility for how we handled ourself while living on Earth. There is no mention of circumstances or other people.

If we are not in control of how we feel or how we respond, then who is? Another problem in acting like a victim is that we open ourselves up to experience harassment from evil and other people.

Evil is a real problem in everyone’s life! There is no one who gets a free pass from being messed with by evil. Until Christ’s return, we are all victims of Satan’s plot against mankind. 1 Peter 5: 8-10 says:

8 Keep a cool head. Stay alert. The Devil is poised to pounce, and would like nothing better than to catch you napping. 9 Keep your guard up. You’re not the only ones plunged into these hard times. It’s the same with Christians all over the world. So keep a firm grip on the faith. 10 The suffering won’t last forever. It won’t be long before this generous God who has great plans for us in Christ—eternal and glorious plans they are!—will have you put together and on your feet for good.

Scripture is filled with references about taking responsibility for our lives. “Stay alert” is an active and personal statement to us. The Devil would like nothing else than for us to be unaware of our own power and ability to resist and defend ourselves from his attacks. We will get in to the spiritual warfare aspect later on in the book.

But the point is to take control over protecting ourselves and to take control over our responses to circumstances. I (Amy) could have easily freaked out at the party and really let Michael have it for humiliating me in front of all of David’s friends. But I did not have to freak out. I had a choice and so do you.

Michael messed up the invitation, but that does not mean I have to lose control and handle myself in a destructive manner. I did feel humiliated and embarrassed, but the key is in knowing that my emotional response was my choice. Michael does not control how I feel, I do.

Your spouse does not make you feel anything. Your feelings are a direct result of your choices. If you choose to feel humiliated, distraught, depressed, or any other negative emotion, there is no one to blame but yourself. We are not trying to be insensitive to the hurt you experience from a spouse (or anyone), we are trying to get you to understand how you have control over what you feel and how you respond.

This is a freedom of experience permission slip! Your spouse and other people are going to continue sinning against you. There is no way to avoid sin from other people. Sin permeates this entire planet. The question is, how are you going to respond to sin? Are you going to allow someone else’s issues to bring you down? Or are you going to make a stand and choose to respond in a productive, loving manner?

Posted in Conflict Resolution, FeaturedView Comments

A quarter-life crisis! Seriously, what is our problem?


I’m in Atlanta this morning getting ready for the second day of our Renew 2.0 conference at our old friend’s church, Conyers First Baptist.  Fox News this morning actually did a story on a “quarter-life crisis”!  Seriously, it’s enough that we have a mid-life crisis, but now socialiogists are saying kids in their 20’s are having quarter-life crises!  Stop it!

There’s even a website for young people suffering the effects of a quarter-life crisis (http://www.quarterlifecrisis.com):

QLC FAQs
• Q: What is a quarterlife crisis?
• A: The quarterlife crisis, or QLC, is essentially a period of anxiety, uncertainty and inner turmoil that often accompanies the transition to adulthood.

• Q: Who coined the phrase “quarterlife crisis?”
• A: Abby Wilner, co-author of Quarterlife Crisis and Quarterlifer’s Companion, coined the phrase in 1997 after she graduated from college, moved back home, and couldn’t figure out what to do with her life.

• Q: What makes the QLC unique for twentysomethings today?
• A: Essentially, it is taking longer to become an adult today based on traditional markers such as financial independence and starting a family. The average American job hops 8 times before the age of 32, the average college graduate accrues $20,000 in education loan debt, and the average age to get married is now 27.

Here’s my advice for 20-somethings, grow up.  The site talks about how these young kids are feeling it is taking longer to grow up, who’s fault is that?  Maybe they should spend less time focusing on a quarter-life crisis and more time choosing to mature.  I do not want this to sound harsh, but since I’m feeling the need to write those words, I must be feeling like I’m being too harsh.  But the story really caught me off guard this morning.

It just feels like society is looking for labels and things to blame for our own choices in life.  We all need to take control over our lives and make the kind of decisions that improves our lives and the lives of others.  What do you think?

Posted in Life, The JournalsView Comments

advert

PHVsPjxsaT48c3Ryb25nPndvb19hZHNfcm90YXRlPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzIwMF9hZHNlbnNlPC9zdHJvbmc+IC0gPCEtLS8qIE9wZW5YIEphdmFzY3JpcHQgVGFnIHYyLjguMi1yYzI1ICovLS0+DQoNCjxzY3JpcHQgdHlwZT1cJ3RleHQvamF2YXNjcmlwdFwnPjwhLS0vLzwhW0NEQVRBWw0KICAgdmFyIG0zX3UgPSAobG9jYXRpb24ucHJvdG9jb2w9PVwnaHR0cHM6XCc/XCdodHRwczovL2QxLm9wZW54Lm9yZy9hanMucGhwXCc6XCdodHRwOi8vZDEub3Blbngub3JnL2Fqcy5waHBcJyk7DQogICB2YXIgbTNfciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo5OTk5OTk5OTk5OSk7DQogICBpZiAoIWRvY3VtZW50Lk1BWF91c2VkKSBkb2N1bWVudC5NQVhfdXNlZCA9IFwnLFwnOw0KICAgZG9jdW1lbnQud3JpdGUgKFwiPHNjclwiK1wiaXB0IHR5cGU9XCd0ZXh0L2phdmFzY3JpcHRcJyBzcmM9XCdcIittM191KTsNCiAgIGRvY3VtZW50LndyaXRlIChcIj96b25laWQ9ODM4OTYmYW1wO3RhcmdldD1fdG9wXCIpOw0KICAgZG9jdW1lbnQud3JpdGUgKFwnJmFtcDtjYj1cJyArIG0zX3IpOw0KICAgaWYgKGRvY3VtZW50Lk1BWF91c2VkICE9IFwnLFwnKSBkb2N1bWVudC53cml0ZSAoXCImYW1wO2V4Y2x1ZGU9XCIgKyBkb2N1bWVudC5NQVhfdXNlZCk7DQogICBkb2N1bWVudC53cml0ZSAoZG9jdW1lbnQuY2hhcnNldCA/IFwnJmFtcDtjaGFyc2V0PVwnK2RvY3VtZW50LmNoYXJzZXQgOiAoZG9jdW1lbnQuY2hhcmFjdGVyU2V0ID8gXCcmYW1wO2NoYXJzZXQ9XCcrZG9jdW1lbnQuY2hhcmFjdGVyU2V0IDogXCdcJykpOw0KICAgZG9jdW1lbnQud3JpdGUgKFwiJmFtcDtsb2M9XCIgKyBlc2NhcGUod2luZG93LmxvY2F0aW9uKSk7DQogICBpZiAoZG9jdW1lbnQucmVmZXJyZXIpIGRvY3VtZW50LndyaXRlIChcIiZhbXA7cmVmZXJlcj1cIiArIGVzY2FwZShkb2N1bWVudC5yZWZlcnJlcikpOw0KICAgaWYgKGRvY3VtZW50LmNvbnRleHQpIGRvY3VtZW50LndyaXRlIChcIiZjb250ZXh0PVwiICsgZXNjYXBlKGRvY3VtZW50LmNvbnRleHQpKTsNCiAgIGlmIChkb2N1bWVudC5tbW1fZm8pIGRvY3VtZW50LndyaXRlIChcIiZhbXA7bW1tX2ZvPTFcIik7DQogICBkb2N1bWVudC53cml0ZSAoXCJcJz48XFwvc2NyXCIrXCJpcHQ+XCIpOw0KLy9dXT4tLT48L3NjcmlwdD48bm9zY3JpcHQ+PGEgaHJlZj1cJ2h0dHA6Ly9kMS5vcGVueC5vcmcvY2sucGhwP249YTdmOTg4ZTAmY2I9SU5TRVJUX1JBTkRPTV9OVU1CRVJfSEVSRVwnIHRhcmdldD1cJ190b3BcJz48aW1nIHNyYz1cJ2h0dHA6Ly9kMS5vcGVueC5vcmcvYXZ3LnBocD96b25laWQ9ODM4OTYmY2I9SU5TRVJUX1JBTkRPTV9OVU1CRVJfSEVSRSZuPWE3Zjk4OGUwXCcgYm9yZGVyPVwnMFwnIGFsdD1cJ1wnIC8+PC9hPjwvbm9zY3JpcHQ+PC9saT48bGk+PHN0cm9uZz53b29fYWRfMjAwX2ltYWdlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfMjAwX3VybDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzI1MF9hZHNlbnNlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfMjUwX2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3NtYWxsZXkuY2MvaW1hZ2VzL0FzTG9uZ0FzV2VCb3RoLTI1MHgyNTAuanBnPC9saT48bGk+PHN0cm9uZz53b29fYWRfMjUwX3VybDwvc3Ryb25nPiAtIGh0dHA6Ly9zbWFsbGV5b25saW5lc3RvcmUuY29tL2FzbG9uZ2Fzd2Vib3Roc2hhbGxsaXZlLmFzcHg8L2xpPjxsaT48c3Ryb25nPndvb19hZF9jb250ZW50X2Fkc2Vuc2U8L3N0cm9uZz4gLSA8IS0tLyogT3BlblggSmF2YXNjcmlwdCBUYWcgdjIuOC41IChSaWNoIE1lZGlhIC0gT3BlblgpICovLS0+Cgo8IS0tLyoKICAqIFRoZSBiYWNrdXAgaW1hZ2Ugc2VjdGlvbiBvZiB0aGlzIHRhZyBoYXMgYmVlbiBnZW5lcmF0ZWQgZm9yIHVzZSBvbiBhCiAgKiBub24tU1NMIHBhZ2UuIElmIHRoaXMgdGFnIGlzIHRvIGJlIHBsYWNlZCBvbiBhbiBTU0wgcGFnZSwgY2hhbmdlIHRoZQogICogICBcJ2h0dHA6Ly9kMS5vcGVueC5vcmcvLi4uXCcKICAqIHRvCiAgKiAgIFwnaHR0cHM6Ly9kMS5vcGVueC5vcmcvLi4uXCcKICAqCiAgKiBUaGlzIG5vc2NyaXB0IHNlY3Rpb24gb2YgdGhpcyB0YWcgb25seSBzaG93cyBpbWFnZSBiYW5uZXJzLiBUaGVyZQogICogaXMgbm8gd2lkdGggb3IgaGVpZ2h0IGluIHRoZXNlIGJhbm5lcnMsIHNvIGlmIHlvdSB3YW50IHRoZXNlIHRhZ3MgdG8KICAqIGFsbG9jYXRlIHNwYWNlIGZvciB0aGUgYWQgYmVmb3JlIGl0IHNob3dzLCB5b3Ugd2lsbCBuZWVkIHRvIGFkZCB0aGlzCiAgKiBpbmZvcm1hdGlvbiB0byB0aGUgPGltZz4gdGFnLgogICoKICAqIElmIHlvdSBkbyBub3Qgd2FudCB0byBkZWFsIHdpdGggdGhlIGludHJpY2l0aWVzIG9mIHRoZSBub3NjcmlwdAogICogc2VjdGlvbiwgZGVsZXRlIHRoZSB0YWcgKGZyb20gPG5vc2NyaXB0Pi4uLiB0byA8L25vc2NyaXB0PikuIE9uCiAgKiBhdmVyYWdlLCB0aGUgbm9zY3JpcHQgdGFnIGlzIGNhbGxlZCBmcm9tIGxlc3MgdGhhbiAxJSBvZiBpbnRlcm5ldAogICogdXNlcnMuCiAgKi8tLT4KCjxzY3JpcHQgdHlwZT1cJ3RleHQvamF2YXNjcmlwdFwnPjwhLS0vLzwhW0NEQVRBWwogICBkb2N1bWVudC5NQVhfY3QwID1cJ3tjbGlja3VybH1cJzsKCiAgIHZhciBtM191ID0gKGxvY2F0aW9uLnByb3RvY29sPT1cJ2h0dHBzOlwnP1wnaHR0cHM6Ly9kMS5vcGVueC5vcmcvYWpzLnBocFwnOlwnaHR0cDovL2QxLm9wZW54Lm9yZy9hanMucGhwXCcpOwogICB2YXIgbTNfciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo5OTk5OTk5OTk5OSk7CiAgIGlmICghZG9jdW1lbnQuTUFYX3VzZWQpIGRvY3VtZW50Lk1BWF91c2VkID0gXCcsXCc7CiAgIGRvY3VtZW50LndyaXRlICgiPHNjciIrImlwdCB0eXBlPVwndGV4dC9qYXZhc2NyaXB0XCcgc3JjPVwnIittM191KTsKICAgZG9jdW1lbnQud3JpdGUgKCI/em9uZWlkPTExODE0OSIpOwogICBkb2N1bWVudC53cml0ZSAoXCcmYW1wO2NiPVwnICsgbTNfcik7CiAgIGlmIChkb2N1bWVudC5NQVhfdXNlZCAhPSBcJyxcJykgZG9jdW1lbnQud3JpdGUgKCImYW1wO2V4Y2x1ZGU9IiArIGRvY3VtZW50Lk1BWF91c2VkKTsKICAgZG9jdW1lbnQud3JpdGUgKGRvY3VtZW50LmNoYXJzZXQgPyBcJyZhbXA7Y2hhcnNldD1cJytkb2N1bWVudC5jaGFyc2V0IDogKGRvY3VtZW50LmNoYXJhY3RlclNldCA/IFwnJmFtcDtjaGFyc2V0PVwnK2RvY3VtZW50LmNoYXJhY3RlclNldCA6IFwnXCcpKTsKICAgZG9jdW1lbnQud3JpdGUgKCImYW1wO2xvYz0iICsgZXNjYXBlKHdpbmRvdy5sb2NhdGlvbikpOwogICBpZiAoZG9jdW1lbnQucmVmZXJyZXIpIGRvY3VtZW50LndyaXRlICgiJmFtcDtyZWZlcmVyPSIgKyBlc2NhcGUoZG9jdW1lbnQucmVmZXJyZXIpKTsKICAgaWYgKGRvY3VtZW50LmNvbnRleHQpIGRvY3VtZW50LndyaXRlICgiJmNvbnRleHQ9IiArIGVzY2FwZShkb2N1bWVudC5jb250ZXh0KSk7CiAgIGlmICgodHlwZW9mKGRvY3VtZW50Lk1BWF9jdDApICE9IFwndW5kZWZpbmVkXCcpICYmIChkb2N1bWVudC5NQVhfY3QwLnN1YnN0cmluZygwLDQpID09IFwnaHR0cFwnKSkgewogICAgICAgZG9jdW1lbnQud3JpdGUgKCImYW1wO2N0MD0iICsgZXNjYXBlKGRvY3VtZW50Lk1BWF9jdDApKTsKICAgfQogICBpZiAoZG9jdW1lbnQubW1tX2ZvKSBkb2N1bWVudC53cml0ZSAoIiZhbXA7bW1tX2ZvPTEiKTsKICAgZG9jdW1lbnQud3JpdGUgKCJcJz48L3NjciIrImlwdD4iKTsKLy9dXT4tLT48L3NjcmlwdD48bm9zY3JpcHQ+PGEgaHJlZj1cJ2h0dHA6Ly9kMS5vcGVueC5vcmcvY2sucGhwP249YTU0ZWFmZmEmY2I9e3JhbmRvbX1cJyB0YXJnZXQ9XCdfYmxhbmtcJz48aW1nIHNyYz1cJ2h0dHA6Ly9kMS5vcGVueC5vcmcvYXZ3LnBocD96b25laWQ9MTE4MTQ5JmNiPXtyYW5kb219Jm49YTU0ZWFmZmEmY3QwPXtjbGlja3VybH1cJyBib3JkZXI9XCcwXCcgYWx0PVwnXCcgLz48L2E+PC9ub3NjcmlwdD48L2xpPjxsaT48c3Ryb25nPndvb19hZF9jb250ZW50X2Rpc2FibGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2NvbnRlbnRfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy00Njh4NjAtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9jb250ZW50X3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzE8L3N0cm9uZz4gLSBodHRwOi8vc21hbGxleS5jYy9pbWFnZXMvTmV3bHl3ZWRLaXQtMTI1eDEyNS5wbmc8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV8yPC9zdHJvbmc+IC0gaHR0cDovL3NtYWxsZXkuY2MvaW1hZ2VzL1dvcmtib29rcy0xMjV4MTI1LnBuZzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzM8L3N0cm9uZz4gLSBodHRwOi8vc21hbGxleS5jYy9pbWFnZXMvRW1icmFjZS0xMjV4MTI1LnBuZzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzQ8L3N0cm9uZz4gLSBodHRwOi8vc21hbGxleS5jYy9pbWFnZXMvUFlGLTEyNXgxMjUuanBnPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfNTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtNC5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV82PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS00LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX21wdV9hZHNlbnNlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfbXB1X2Rpc2FibGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX21wdV9pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly9zbWFsbGV5LmNjL2ltYWdlcy9ETkEtMzAwWDI1MC5qcGc8L2xpPjxsaT48c3Ryb25nPndvb19hZF9tcHVfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3NtYWxsZXlvbmxpbmVzdG9yZS5jb20vZG5hb2ZyZWxhdGlvbnNoaXBzc2VyaWVzb25kdmQuYXNweDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3RvcF9hZHNlbnNlPC9zdHJvbmc+IC0gPCEtLS8qIE9wZW5YIEphdmFzY3JpcHQgVGFnIHYyLjguNSAoUmljaCBNZWRpYSAtIE9wZW5YKSAqLy0tPg0KDQo8IS0tLyoNCiAgKiBUaGUgYmFja3VwIGltYWdlIHNlY3Rpb24gb2YgdGhpcyB0YWcgaGFzIGJlZW4gZ2VuZXJhdGVkIGZvciB1c2Ugb24gYQ0KICAqIG5vbi1TU0wgcGFnZS4gSWYgdGhpcyB0YWcgaXMgdG8gYmUgcGxhY2VkIG9uIGFuIFNTTCBwYWdlLCBjaGFuZ2UgdGhlDQogICogICBcJ2h0dHA6Ly9kMS5vcGVueC5vcmcvLi4uXCcNCiAgKiB0bw0KICAqICAgXCdodHRwczovL2QxLm9wZW54Lm9yZy8uLi5cJw0KICAqDQogICogVGhpcyBub3NjcmlwdCBzZWN0aW9uIG9mIHRoaXMgdGFnIG9ubHkgc2hvd3MgaW1hZ2UgYmFubmVycy4gVGhlcmUNCiAgKiBpcyBubyB3aWR0aCBvciBoZWlnaHQgaW4gdGhlc2UgYmFubmVycywgc28gaWYgeW91IHdhbnQgdGhlc2UgdGFncyB0bw0KICAqIGFsbG9jYXRlIHNwYWNlIGZvciB0aGUgYWQgYmVmb3JlIGl0IHNob3dzLCB5b3Ugd2lsbCBuZWVkIHRvIGFkZCB0aGlzDQogICogaW5mb3JtYXRpb24gdG8gdGhlIDxpbWc+IHRhZy4NCiAgKg0KICAqIElmIHlvdSBkbyBub3Qgd2FudCB0byBkZWFsIHdpdGggdGhlIGludHJpY2l0aWVzIG9mIHRoZSBub3NjcmlwdA0KICAqIHNlY3Rpb24sIGRlbGV0ZSB0aGUgdGFnIChmcm9tIDxub3NjcmlwdD4uLi4gdG8gPC9ub3NjcmlwdD4pLiBPbg0KICAqIGF2ZXJhZ2UsIHRoZSBub3NjcmlwdCB0YWcgaXMgY2FsbGVkIGZyb20gbGVzcyB0aGFuIDElIG9mIGludGVybmV0DQogICogdXNlcnMuDQogICovLS0+DQoNCjxzY3JpcHQgdHlwZT1cJ3RleHQvamF2YXNjcmlwdFwnPjwhLS0vLzwhW0NEQVRBWw0KICAgZG9jdW1lbnQuTUFYX2N0MCA9XCd7Y2xpY2t1cmx9XCc7DQoNCiAgIHZhciBtM191ID0gKGxvY2F0aW9uLnByb3RvY29sPT1cJ2h0dHBzOlwnP1wnaHR0cHM6Ly9kMS5vcGVueC5vcmcvYWpzLnBocFwnOlwnaHR0cDovL2QxLm9wZW54Lm9yZy9hanMucGhwXCcpOw0KICAgdmFyIG0zX3IgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqOTk5OTk5OTk5OTkpOw0KICAgaWYgKCFkb2N1bWVudC5NQVhfdXNlZCkgZG9jdW1lbnQuTUFYX3VzZWQgPSBcJyxcJzsNCiAgIGRvY3VtZW50LndyaXRlIChcIjxzY3JcIitcImlwdCB0eXBlPVwndGV4dC9qYXZhc2NyaXB0XCcgc3JjPVwnXCIrbTNfdSk7DQogICBkb2N1bWVudC53cml0ZSAoXCI/em9uZWlkPTY0NTgyXCIpOw0KICAgZG9jdW1lbnQud3JpdGUgKFwnJmFtcDtjYj1cJyArIG0zX3IpOw0KICAgaWYgKGRvY3VtZW50Lk1BWF91c2VkICE9IFwnLFwnKSBkb2N1bWVudC53cml0ZSAoXCImYW1wO2V4Y2x1ZGU9XCIgKyBkb2N1bWVudC5NQVhfdXNlZCk7DQogICBkb2N1bWVudC53cml0ZSAoZG9jdW1lbnQuY2hhcnNldCA/IFwnJmFtcDtjaGFyc2V0PVwnK2RvY3VtZW50LmNoYXJzZXQgOiAoZG9jdW1lbnQuY2hhcmFjdGVyU2V0ID8gXCcmYW1wO2NoYXJzZXQ9XCcrZG9jdW1lbnQuY2hhcmFjdGVyU2V0IDogXCdcJykpOw0KICAgZG9jdW1lbnQud3JpdGUgKFwiJmFtcDtsb2M9XCIgKyBlc2NhcGUod2luZG93LmxvY2F0aW9uKSk7DQogICBpZiAoZG9jdW1lbnQucmVmZXJyZXIpIGRvY3VtZW50LndyaXRlIChcIiZhbXA7cmVmZXJlcj1cIiArIGVzY2FwZShkb2N1bWVudC5yZWZlcnJlcikpOw0KICAgaWYgKGRvY3VtZW50LmNvbnRleHQpIGRvY3VtZW50LndyaXRlIChcIiZjb250ZXh0PVwiICsgZXNjYXBlKGRvY3VtZW50LmNvbnRleHQpKTsNCiAgIGlmICgodHlwZW9mKGRvY3VtZW50Lk1BWF9jdDApICE9IFwndW5kZWZpbmVkXCcpICYmIChkb2N1bWVudC5NQVhfY3QwLnN1YnN0cmluZygwLDQpID09IFwnaHR0cFwnKSkgew0KICAgICAgIGRvY3VtZW50LndyaXRlIChcIiZhbXA7Y3QwPVwiICsgZXNjYXBlKGRvY3VtZW50Lk1BWF9jdDApKTsNCiAgIH0NCiAgIGlmIChkb2N1bWVudC5tbW1fZm8pIGRvY3VtZW50LndyaXRlIChcIiZhbXA7bW1tX2ZvPTFcIik7DQogICBkb2N1bWVudC53cml0ZSAoXCJcJz48L3NjclwiK1wiaXB0PlwiKTsNCi8vXV0+LS0+PC9zY3JpcHQ+PG5vc2NyaXB0PjxhIGhyZWY9XCdodHRwOi8vZDEub3Blbngub3JnL2NrLnBocD9uPWExZGMxZDRmJmNiPXtyYW5kb219XCcgdGFyZ2V0PVwnX2JsYW5rXCc+PGltZyBzcmM9XCdodHRwOi8vZDEub3Blbngub3JnL2F2dy5waHA/em9uZWlkPTY0NTgyJmNiPXtyYW5kb219Jm49YTFkYzFkNGYmY3QwPXtjbGlja3VybH1cJyBib3JkZXI9XCcwXCcgYWx0PVwnXCcgLz48L2E+PC9ub3NjcmlwdD48L2xpPjxsaT48c3Ryb25nPndvb19hZF90b3BfZGlzYWJsZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wX2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtNDY4eDYwLTIuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wX3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8xPC9zdHJvbmc+IC0gaHR0cDovL3NtYWxsZXlvbmxpbmVzdG9yZS5jb20vdGhlbmV3bHl3ZWRraXQuYXNweDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8yPC9zdHJvbmc+IC0gaHR0cDovL3NtYWxsZXlvbmxpbmVzdG9yZS5jb20vd29ya2Jvb2tzc3R1ZHlndWlkZXMuYXNweDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8zPC9zdHJvbmc+IC0gaHR0cDovL3NtYWxsZXlvbmxpbmVzdG9yZS5jb20vZW1icmFjZS10aGVtYXJyaWFnZXNlbWluYXJhdWRpb3Nlcmllcy5hc3B4PC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzQ8L3N0cm9uZz4gLSBodHRwOi8vc21hbGxleW9ubGluZXN0b3JlLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF81PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzY8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hbHRfc3R5bGVzaGVldDwvc3Ryb25nPiAtIGRlZmF1bHQuY3NzPC9saT48bGk+PHN0cm9uZz53b29fYXJjaGl2ZV9ib3hlczwvc3Ryb25nPiAtIE9uPC9saT48bGk+PHN0cm9uZz53b29fYXJjaGl2ZV9jb250ZW50PC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2F1dGhvcjwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19hdXRvX2ltZzwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fYm94ZWRfdGh1bWJfaGVpZ2h0PC9zdHJvbmc+IC0gMTAwPC9saT48bGk+PHN0cm9uZz53b29fYm94ZWRfdGh1bWJfd2lkdGg8L3N0cm9uZz4gLSAyMzQ8L2xpPjxsaT48c3Ryb25nPndvb19icmVhZGNydW1iczwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fYnV5X3RoZW1lczwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19jYXJvdXNlbF9oZWlnaHQ8L3N0cm9uZz4gLSAyOTI8L2xpPjxsaT48c3Ryb25nPndvb19jYXRuYXZfZXhjbHVkZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9leDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9tZW51PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jb21tZW50X3Bvc3RzPC9zdHJvbmc+IC0gNTwvbGk+PGxpPjxzdHJvbmc+d29vX2NvbnRhY3Rmb3JtX2VtYWlsPC9zdHJvbmc+IC0gaW5mb0BzbWFsbGV5LmNjPC9saT48bGk+PHN0cm9uZz53b29fY29udGVudDwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY29udGVudF9hcmNoaXZlczwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY29udGVudF9mZWF0PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fY3NzPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX2Zhdmljb248L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fdXBsb2FkX3RyYWNraW5nPC9zdHJvbmc+IC0gYToxOntpOjA7YTo0OntzOjQ6ImZpbGUiO3M6NjA6Ii9ob21lcGFnZXMvMjQvZDE5MjcwNzQ1MC9odGRvY3MvR29TbWFsbGV5L2ltYWdlcy9kYXRpbmcyLmpwZyI7czozOiJ1cmwiO3M6MzY6Imh0dHA6Ly9zbWFsbGV5LmNjL2ltYWdlcy9kYXRpbmcyLmpwZyI7czo0OiJ0eXBlIjtzOjEwOiJpbWFnZS9qcGVnIjtzOjExOiJvcHRpb25fbmFtZSI7czo1OiJJbWFnZSI7fX08L2xpPjxsaT48c3Ryb25nPndvb19lbWJlZDwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0dXJlZF9jYXRlZ29yeTwvc3Ryb25nPiAtIEZlYXR1cmVkPC9saT48bGk+PHN0cm9uZz53b29fZmVhdHVyZWRfcG9zdHM8L3N0cm9uZz4gLSAxPC9saT48bGk+PHN0cm9uZz53b29fZmVhdHVyZWRfdGFnczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlYXRfZW50cmllczwvc3Ryb25nPiAtIDE8L2xpPjxsaT48c3Ryb25nPndvb19mZWVkYnVybmVyX2lkPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZmVlZGJ1cm5lcl91cmw8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mb290ZXJfY3JlZGl0czwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2Zvb3Rlcl9pbWFnZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZyYW1ld29ya191cGRhdGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2ZyYW1ld29ya192ZXJzaW9uPC9zdHJvbmc+IC0gMi41LjM8L2xpPjxsaT48c3Ryb25nPndvb19mdWxsX3RodW1iX2hlaWdodDwvc3Ryb25nPiAtIDE4MDwvbGk+PGxpPjxzdHJvbmc+d29vX2Z1bGxfdGh1bWJfd2lkdGg8L3N0cm9uZz4gLSA1NjA8L2xpPjxsaT48c3Ryb25nPndvb19nZXRfaW1hZ2VfaGVpZ2h0PC9zdHJvbmc+IC0gMTQyPC9saT48bGk+PHN0cm9uZz53b29fZ2V0X2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gMTkwPC9saT48bGk+PHN0cm9uZz53b29fZ29vZ2xlX2FuYWx5dGljczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfYXJjPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2JveGVzPC9zdHJvbmc+IC0gT248L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2NvbnRlbnQ8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfZmVhdHVyZWQ8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9saW5rPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfbGlua19kZXNjPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9saW5rX3RleHQ8L3N0cm9uZz4gLSBIb21lPC9saT48bGk+PHN0cm9uZz53b29faG9tZV90aHVtYl9oZWlnaHQ8L3N0cm9uZz4gLSA5MjwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfdGh1bWJfd2lkdGg8L3N0cm9uZz4gLSAyNDc8L2xpPjxsaT48c3Ryb25nPndvb19pbWFnZV9oZWlnaHQ8L3N0cm9uZz4gLSAyMTA8L2xpPjxsaT48c3Ryb25nPndvb19pbWFnZV9zaW5nbGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gNTQwPC9saT48bGk+PHN0cm9uZz53b29fbG9nbzwvc3Ryb25nPiAtIGh0dHA6Ly9zbWFsbGV5LmNjL2ltYWdlcy9TSVRFLUhFQURFUjEucG5nPC9saT48bGk+PHN0cm9uZz53b29fbWFudWFsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL3N1cHBvcnQvdGhlbWUtZG9jdW1lbnRhdGlvbi9nYXpldHRlLWVkaXRpb24vPC9saT48bGk+PHN0cm9uZz53b29fbmF2X2V4Y2x1ZGU8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19vcHRpb25zPC9zdHJvbmc+IC0gYToxMDc6e3M6MTQ6Indvb19hZHNfcm90YXRlIjtzOjQ6InRydWUiO3M6MTg6Indvb19hZF8yMDBfYWRzZW5zZSI7czoxMzM4OiI8IS0tLyogT3BlblggSmF2YXNjcmlwdCBUYWcgdjIuOC4yLXJjMjUgKi8tLT4NCg0KPHNjcmlwdCB0eXBlPVwndGV4dC9qYXZhc2NyaXB0XCc+PCEtLS8vPCFbQ0RBVEFbDQogICB2YXIgbTNfdSA9IChsb2NhdGlvbi5wcm90b2NvbD09XCdodHRwczpcJz9cJ2h0dHBzOi8vZDEub3Blbngub3JnL2Fqcy5waHBcJzpcJ2h0dHA6Ly9kMS5vcGVueC5vcmcvYWpzLnBocFwnKTsNCiAgIHZhciBtM19yID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjk5OTk5OTk5OTk5KTsNCiAgIGlmICghZG9jdW1lbnQuTUFYX3VzZWQpIGRvY3VtZW50Lk1BWF91c2VkID0gXCcsXCc7DQogICBkb2N1bWVudC53cml0ZSAoXCI8c2NyXCIrXCJpcHQgdHlwZT1cJ3RleHQvamF2YXNjcmlwdFwnIHNyYz1cJ1wiK20zX3UpOw0KICAgZG9jdW1lbnQud3JpdGUgKFwiP3pvbmVpZD04Mzg5NiZhbXA7dGFyZ2V0PV90b3BcIik7DQogICBkb2N1bWVudC53cml0ZSAoXCcmYW1wO2NiPVwnICsgbTNfcik7DQogICBpZiAoZG9jdW1lbnQuTUFYX3VzZWQgIT0gXCcsXCcpIGRvY3VtZW50LndyaXRlIChcIiZhbXA7ZXhjbHVkZT1cIiArIGRvY3VtZW50Lk1BWF91c2VkKTsNCiAgIGRvY3VtZW50LndyaXRlIChkb2N1bWVudC5jaGFyc2V0ID8gXCcmYW1wO2NoYXJzZXQ9XCcrZG9jdW1lbnQuY2hhcnNldCA6IChkb2N1bWVudC5jaGFyYWN0ZXJTZXQgPyBcJyZhbXA7Y2hhcnNldD1cJytkb2N1bWVudC5jaGFyYWN0ZXJTZXQgOiBcJ1wnKSk7DQogICBkb2N1bWVudC53cml0ZSAoXCImYW1wO2xvYz1cIiArIGVzY2FwZSh3aW5kb3cubG9jYXRpb24pKTsNCiAgIGlmIChkb2N1bWVudC5yZWZlcnJlcikgZG9jdW1lbnQud3JpdGUgKFwiJmFtcDtyZWZlcmVyPVwiICsgZXNjYXBlKGRvY3VtZW50LnJlZmVycmVyKSk7DQogICBpZiAoZG9jdW1lbnQuY29udGV4dCkgZG9jdW1lbnQud3JpdGUgKFwiJmNvbnRleHQ9XCIgKyBlc2NhcGUoZG9jdW1lbnQuY29udGV4dCkpOw0KICAgaWYgKGRvY3VtZW50Lm1tbV9mbykgZG9jdW1lbnQud3JpdGUgKFwiJmFtcDttbW1fZm89MVwiKTsNCiAgIGRvY3VtZW50LndyaXRlIChcIlwnPjxcXC9zY3JcIitcImlwdD5cIik7DQovL11dPi0tPjwvc2NyaXB0Pjxub3NjcmlwdD48YSBocmVmPVwnaHR0cDovL2QxLm9wZW54Lm9yZy9jay5waHA/bj1hN2Y5ODhlMCZjYj1JTlNFUlRfUkFORE9NX05VTUJFUl9IRVJFXCcgdGFyZ2V0PVwnX3RvcFwnPjxpbWcgc3JjPVwnaHR0cDovL2QxLm9wZW54Lm9yZy9hdncucGhwP3pvbmVpZD04Mzg5NiZjYj1JTlNFUlRfUkFORE9NX05VTUJFUl9IRVJFJm49YTdmOTg4ZTBcJyBib3JkZXI9XCcwXCcgYWx0PVwnXCcgLz48L2E+PC9ub3NjcmlwdD4iO3M6MTY6Indvb19hZF8yMDBfaW1hZ2UiO3M6MDoiIjtzOjE0OiJ3b29fYWRfMjAwX3VybCI7czowOiIiO3M6MTg6Indvb19hZF8yNTBfYWRzZW5zZSI7czowOiIiO3M6MTY6Indvb19hZF8yNTBfaW1hZ2UiO3M6NTE6Imh0dHA6Ly9zbWFsbGV5LmNjL2ltYWdlcy9Bc0xvbmdBc1dlQm90aC0yNTB4MjUwLmpwZyI7czoxNDoid29vX2FkXzI1MF91cmwiO3M6NTg6Imh0dHA6Ly9zbWFsbGV5b25saW5lc3RvcmUuY29tL2FzbG9uZ2Fzd2Vib3Roc2hhbGxsaXZlLmFzcHgiO3M6MjI6Indvb19hZF9jb250ZW50X2Fkc2Vuc2UiO3M6MjIwODoiPCEtLS8qIE9wZW5YIEphdmFzY3JpcHQgVGFnIHYyLjguNSAoUmljaCBNZWRpYSAtIE9wZW5YKSAqLy0tPgoKPCEtLS8qCiAgKiBUaGUgYmFja3VwIGltYWdlIHNlY3Rpb24gb2YgdGhpcyB0YWcgaGFzIGJlZW4gZ2VuZXJhdGVkIGZvciB1c2Ugb24gYQogICogbm9uLVNTTCBwYWdlLiBJZiB0aGlzIHRhZyBpcyB0byBiZSBwbGFjZWQgb24gYW4gU1NMIHBhZ2UsIGNoYW5nZSB0aGUKICAqICAgXCdodHRwOi8vZDEub3Blbngub3JnLy4uLlwnCiAgKiB0bwogICogICBcJ2h0dHBzOi8vZDEub3Blbngub3JnLy4uLlwnCiAgKgogICogVGhpcyBub3NjcmlwdCBzZWN0aW9uIG9mIHRoaXMgdGFnIG9ubHkgc2hvd3MgaW1hZ2UgYmFubmVycy4gVGhlcmUKICAqIGlzIG5vIHdpZHRoIG9yIGhlaWdodCBpbiB0aGVzZSBiYW5uZXJzLCBzbyBpZiB5b3Ugd2FudCB0aGVzZSB0YWdzIHRvCiAgKiBhbGxvY2F0ZSBzcGFjZSBmb3IgdGhlIGFkIGJlZm9yZSBpdCBzaG93cywgeW91IHdpbGwgbmVlZCB0byBhZGQgdGhpcwogICogaW5mb3JtYXRpb24gdG8gdGhlIDxpbWc+IHRhZy4KICAqCiAgKiBJZiB5b3UgZG8gbm90IHdhbnQgdG8gZGVhbCB3aXRoIHRoZSBpbnRyaWNpdGllcyBvZiB0aGUgbm9zY3JpcHQKICAqIHNlY3Rpb24sIGRlbGV0ZSB0aGUgdGFnIChmcm9tIDxub3NjcmlwdD4uLi4gdG8gPC9ub3NjcmlwdD4pLiBPbgogICogYXZlcmFnZSwgdGhlIG5vc2NyaXB0IHRhZyBpcyBjYWxsZWQgZnJvbSBsZXNzIHRoYW4gMSUgb2YgaW50ZXJuZXQKICAqIHVzZXJzLgogICovLS0+Cgo8c2NyaXB0IHR5cGU9XCd0ZXh0L2phdmFzY3JpcHRcJz48IS0tLy88IVtDREFUQVsKICAgZG9jdW1lbnQuTUFYX2N0MCA9XCd7Y2xpY2t1cmx9XCc7CgogICB2YXIgbTNfdSA9IChsb2NhdGlvbi5wcm90b2NvbD09XCdodHRwczpcJz9cJ2h0dHBzOi8vZDEub3Blbngub3JnL2Fqcy5waHBcJzpcJ2h0dHA6Ly9kMS5vcGVueC5vcmcvYWpzLnBocFwnKTsKICAgdmFyIG0zX3IgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqOTk5OTk5OTk5OTkpOwogICBpZiAoIWRvY3VtZW50Lk1BWF91c2VkKSBkb2N1bWVudC5NQVhfdXNlZCA9IFwnLFwnOwogICBkb2N1bWVudC53cml0ZSAoIjxzY3IiKyJpcHQgdHlwZT1cJ3RleHQvamF2YXNjcmlwdFwnIHNyYz1cJyIrbTNfdSk7CiAgIGRvY3VtZW50LndyaXRlICgiP3pvbmVpZD0xMTgxNDkiKTsKICAgZG9jdW1lbnQud3JpdGUgKFwnJmFtcDtjYj1cJyArIG0zX3IpOwogICBpZiAoZG9jdW1lbnQuTUFYX3VzZWQgIT0gXCcsXCcpIGRvY3VtZW50LndyaXRlICgiJmFtcDtleGNsdWRlPSIgKyBkb2N1bWVudC5NQVhfdXNlZCk7CiAgIGRvY3VtZW50LndyaXRlIChkb2N1bWVudC5jaGFyc2V0ID8gXCcmYW1wO2NoYXJzZXQ9XCcrZG9jdW1lbnQuY2hhcnNldCA6IChkb2N1bWVudC5jaGFyYWN0ZXJTZXQgPyBcJyZhbXA7Y2hhcnNldD1cJytkb2N1bWVudC5jaGFyYWN0ZXJTZXQgOiBcJ1wnKSk7CiAgIGRvY3VtZW50LndyaXRlICgiJmFtcDtsb2M9IiArIGVzY2FwZSh3aW5kb3cubG9jYXRpb24pKTsKICAgaWYgKGRvY3VtZW50LnJlZmVycmVyKSBkb2N1bWVudC53cml0ZSAoIiZhbXA7cmVmZXJlcj0iICsgZXNjYXBlKGRvY3VtZW50LnJlZmVycmVyKSk7CiAgIGlmIChkb2N1bWVudC5jb250ZXh0KSBkb2N1bWVudC53cml0ZSAoIiZjb250ZXh0PSIgKyBlc2NhcGUoZG9jdW1lbnQuY29udGV4dCkpOwogICBpZiAoKHR5cGVvZihkb2N1bWVudC5NQVhfY3QwKSAhPSBcJ3VuZGVmaW5lZFwnKSAmJiAoZG9jdW1lbnQuTUFYX2N0MC5zdWJzdHJpbmcoMCw0KSA9PSBcJ2h0dHBcJykpIHsKICAgICAgIGRvY3VtZW50LndyaXRlICgiJmFtcDtjdDA9IiArIGVzY2FwZShkb2N1bWVudC5NQVhfY3QwKSk7CiAgIH0KICAgaWYgKGRvY3VtZW50Lm1tbV9mbykgZG9jdW1lbnQud3JpdGUgKCImYW1wO21tbV9mbz0xIik7CiAgIGRvY3VtZW50LndyaXRlICgiXCc+PC9zY3IiKyJpcHQ+Iik7Ci8vXV0+LS0+PC9zY3JpcHQ+PG5vc2NyaXB0PjxhIGhyZWY9XCdodHRwOi8vZDEub3Blbngub3JnL2NrLnBocD9uPWE1NGVhZmZhJmNiPXtyYW5kb219XCcgdGFyZ2V0PVwnX2JsYW5rXCc+PGltZyBzcmM9XCdodHRwOi8vZDEub3Blbngub3JnL2F2dy5waHA/em9uZWlkPTExODE0OSZjYj17cmFuZG9tfSZuPWE1NGVhZmZhJmN0MD17Y2xpY2t1cmx9XCcgYm9yZGVyPVwnMFwnIGFsdD1cJ1wnIC8+PC9hPjwvbm9zY3JpcHQ+IjtzOjIyOiJ3b29fYWRfY29udGVudF9kaXNhYmxlIjtzOjU6ImZhbHNlIjtzOjIwOiJ3b29fYWRfY29udGVudF9pbWFnZSI7czo1MToiaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtNDY4eDYwLTIuZ2lmIjtzOjE4OiJ3b29fYWRfY29udGVudF91cmwiO3M6MjQ6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbSI7czoxNDoid29vX2FkX2ltYWdlXzEiO3M6NDg6Imh0dHA6Ly9zbWFsbGV5LmNjL2ltYWdlcy9OZXdseXdlZEtpdC0xMjV4MTI1LnBuZyI7czoxNDoid29vX2FkX2ltYWdlXzIiO3M6NDY6Imh0dHA6Ly9zbWFsbGV5LmNjL2ltYWdlcy9Xb3JrYm9va3MtMTI1eDEyNS5wbmciO3M6MTQ6Indvb19hZF9pbWFnZV8zIjtzOjQ0OiJodHRwOi8vc21hbGxleS5jYy9pbWFnZXMvRW1icmFjZS0xMjV4MTI1LnBuZyI7czoxNDoid29vX2FkX2ltYWdlXzQiO3M6NDA6Imh0dHA6Ly9zbWFsbGV5LmNjL2ltYWdlcy9QWUYtMTI1eDEyNS5qcGciO3M6MTQ6Indvb19hZF9pbWFnZV81IjtzOjUyOiJodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTQuZ2lmIjtzOjE0OiJ3b29fYWRfaW1hZ2VfNiI7czo1MjoiaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS00LmdpZiI7czoxODoid29vX2FkX21wdV9hZHNlbnNlIjtzOjA6IiI7czoxODoid29vX2FkX21wdV9kaXNhYmxlIjtzOjU6ImZhbHNlIjtzOjE2OiJ3b29fYWRfbXB1X2ltYWdlIjtzOjQwOiJodHRwOi8vc21hbGxleS5jYy9pbWFnZXMvRE5BLTMwMFgyNTAuanBnIjtzOjE0OiJ3b29fYWRfbXB1X3VybCI7czo2NDoiaHR0cDovL3NtYWxsZXlvbmxpbmVzdG9yZS5jb20vZG5hb2ZyZWxhdGlvbnNoaXBzc2VyaWVzb25kdmQuYXNweCI7czoxODoid29vX2FkX3RvcF9hZHNlbnNlIjtzOjIyMDY6IjwhLS0vKiBPcGVuWCBKYXZhc2NyaXB0IFRhZyB2Mi44LjUgKFJpY2ggTWVkaWEgLSBPcGVuWCkgKi8tLT4KCjwhLS0vKgogICogVGhlIGJhY2t1cCBpbWFnZSBzZWN0aW9uIG9mIHRoaXMgdGFnIGhhcyBiZWVuIGdlbmVyYXRlZCBmb3IgdXNlIG9uIGEKICAqIG5vbi1TU0wgcGFnZS4gSWYgdGhpcyB0YWcgaXMgdG8gYmUgcGxhY2VkIG9uIGFuIFNTTCBwYWdlLCBjaGFuZ2UgdGhlCiAgKiAgIFwnaHR0cDovL2QxLm9wZW54Lm9yZy8uLi5cJwogICogdG8KICAqICAgXCdodHRwczovL2QxLm9wZW54Lm9yZy8uLi5cJwogICoKICAqIFRoaXMgbm9zY3JpcHQgc2VjdGlvbiBvZiB0aGlzIHRhZyBvbmx5IHNob3dzIGltYWdlIGJhbm5lcnMuIFRoZXJlCiAgKiBpcyBubyB3aWR0aCBvciBoZWlnaHQgaW4gdGhlc2UgYmFubmVycywgc28gaWYgeW91IHdhbnQgdGhlc2UgdGFncyB0bwogICogYWxsb2NhdGUgc3BhY2UgZm9yIHRoZSBhZCBiZWZvcmUgaXQgc2hvd3MsIHlvdSB3aWxsIG5lZWQgdG8gYWRkIHRoaXMKICAqIGluZm9ybWF0aW9uIHRvIHRoZSA8aW1nPiB0YWcuCiAgKgogICogSWYgeW91IGRvIG5vdCB3YW50IHRvIGRlYWwgd2l0aCB0aGUgaW50cmljaXRpZXMgb2YgdGhlIG5vc2NyaXB0CiAgKiBzZWN0aW9uLCBkZWxldGUgdGhlIHRhZyAoZnJvbSA8bm9zY3JpcHQ+Li4uIHRvIDwvbm9zY3JpcHQ+KS4gT24KICAqIGF2ZXJhZ2UsIHRoZSBub3NjcmlwdCB0YWcgaXMgY2FsbGVkIGZyb20gbGVzcyB0aGFuIDElIG9mIGludGVybmV0CiAgKiB1c2Vycy4KICAqLy0tPgoKPHNjcmlwdCB0eXBlPVwndGV4dC9qYXZhc2NyaXB0XCc+PCEtLS8vPCFbQ0RBVEFbCiAgIGRvY3VtZW50Lk1BWF9jdDAgPVwne2NsaWNrdXJsfVwnOwoKICAgdmFyIG0zX3UgPSAobG9jYXRpb24ucHJvdG9jb2w9PVwnaHR0cHM6XCc/XCdodHRwczovL2QxLm9wZW54Lm9yZy9hanMucGhwXCc6XCdodHRwOi8vZDEub3Blbngub3JnL2Fqcy5waHBcJyk7CiAgIHZhciBtM19yID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjk5OTk5OTk5OTk5KTsKICAgaWYgKCFkb2N1bWVudC5NQVhfdXNlZCkgZG9jdW1lbnQuTUFYX3VzZWQgPSBcJyxcJzsKICAgZG9jdW1lbnQud3JpdGUgKCI8c2NyIisiaXB0IHR5cGU9XCd0ZXh0L2phdmFzY3JpcHRcJyBzcmM9XCciK20zX3UpOwogICBkb2N1bWVudC53cml0ZSAoIj96b25laWQ9NjQ1ODIiKTsKICAgZG9jdW1lbnQud3JpdGUgKFwnJmFtcDtjYj1cJyArIG0zX3IpOwogICBpZiAoZG9jdW1lbnQuTUFYX3VzZWQgIT0gXCcsXCcpIGRvY3VtZW50LndyaXRlICgiJmFtcDtleGNsdWRlPSIgKyBkb2N1bWVudC5NQVhfdXNlZCk7CiAgIGRvY3VtZW50LndyaXRlIChkb2N1bWVudC5jaGFyc2V0ID8gXCcmYW1wO2NoYXJzZXQ9XCcrZG9jdW1lbnQuY2hhcnNldCA6IChkb2N1bWVudC5jaGFyYWN0ZXJTZXQgPyBcJyZhbXA7Y2hhcnNldD1cJytkb2N1bWVudC5jaGFyYWN0ZXJTZXQgOiBcJ1wnKSk7CiAgIGRvY3VtZW50LndyaXRlICgiJmFtcDtsb2M9IiArIGVzY2FwZSh3aW5kb3cubG9jYXRpb24pKTsKICAgaWYgKGRvY3VtZW50LnJlZmVycmVyKSBkb2N1bWVudC53cml0ZSAoIiZhbXA7cmVmZXJlcj0iICsgZXNjYXBlKGRvY3VtZW50LnJlZmVycmVyKSk7CiAgIGlmIChkb2N1bWVudC5jb250ZXh0KSBkb2N1bWVudC53cml0ZSAoIiZjb250ZXh0PSIgKyBlc2NhcGUoZG9jdW1lbnQuY29udGV4dCkpOwogICBpZiAoKHR5cGVvZihkb2N1bWVudC5NQVhfY3QwKSAhPSBcJ3VuZGVmaW5lZFwnKSAmJiAoZG9jdW1lbnQuTUFYX2N0MC5zdWJzdHJpbmcoMCw0KSA9PSBcJ2h0dHBcJykpIHsKICAgICAgIGRvY3VtZW50LndyaXRlICgiJmFtcDtjdDA9IiArIGVzY2FwZShkb2N1bWVudC5NQVhfY3QwKSk7CiAgIH0KICAgaWYgKGRvY3VtZW50Lm1tbV9mbykgZG9jdW1lbnQud3JpdGUgKCImYW1wO21tbV9mbz0xIik7CiAgIGRvY3VtZW50LndyaXRlICgiXCc+PC9zY3IiKyJpcHQ+Iik7Ci8vXV0+LS0+PC9zY3JpcHQ+PG5vc2NyaXB0PjxhIGhyZWY9XCdodHRwOi8vZDEub3Blbngub3JnL2NrLnBocD9uPWExZGMxZDRmJmNiPXtyYW5kb219XCcgdGFyZ2V0PVwnX2JsYW5rXCc+PGltZyBzcmM9XCdodHRwOi8vZDEub3Blbngub3JnL2F2dy5waHA/em9uZWlkPTY0NTgyJmNiPXtyYW5kb219Jm49YTFkYzFkNGYmY3QwPXtjbGlja3VybH1cJyBib3JkZXI9XCcwXCcgYWx0PVwnXCcgLz48L2E+PC9ub3NjcmlwdD4iO3M6MTg6Indvb19hZF90b3BfZGlzYWJsZSI7czo1OiJmYWxzZSI7czoxNjoid29vX2FkX3RvcF9pbWFnZSI7czo1MToiaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtNDY4eDYwLTIuZ2lmIjtzOjE0OiJ3b29fYWRfdG9wX3VybCI7czoyNDoiaHR0cDovL3d3dy53b290aGVtZXMuY29tIjtzOjEyOiJ3b29fYWRfdXJsXzEiO3M6NDk6Imh0dHA6Ly9zbWFsbGV5b25saW5lc3RvcmUuY29tL3RoZW5ld2x5d2Vka2l0LmFzcHgiO3M6MTI6Indvb19hZF91cmxfMiI7czo1NToiaHR0cDovL3NtYWxsZXlvbmxpbmVzdG9yZS5jb20vd29ya2Jvb2tzc3R1ZHlndWlkZXMuYXNweCI7czoxMjoid29vX2FkX3VybF8zIjtzOjcyOiJodHRwOi8vc21hbGxleW9ubGluZXN0b3JlLmNvbS9lbWJyYWNlLXRoZW1hcnJpYWdlc2VtaW5hcmF1ZGlvc2VyaWVzLmFzcHgiO3M6MTI6Indvb19hZF91cmxfNCI7czoyOToiaHR0cDovL3NtYWxsZXlvbmxpbmVzdG9yZS5jb20iO3M6MTI6Indvb19hZF91cmxfNSI7czoyNDoiaHR0cDovL3d3dy53b290aGVtZXMuY29tIjtzOjEyOiJ3b29fYWRfdXJsXzYiO3M6MjQ6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbSI7czoxODoid29vX2FsdF9zdHlsZXNoZWV0IjtzOjExOiJza3libHVlLmNzcyI7czoxNzoid29vX2FyY2hpdmVfYm94ZXMiO3M6MjoiT24iO3M6MTk6Indvb19hcmNoaXZlX2NvbnRlbnQiO3M6NDoidHJ1ZSI7czoxMDoid29vX2F1dGhvciI7czo0OiJ0cnVlIjtzOjEyOiJ3b29fYXV0b19pbWciO3M6NToiZmFsc2UiO3M6MjI6Indvb19ib3hlZF90aHVtYl9oZWlnaHQiO3M6MzoiMTAwIjtzOjIxOiJ3b29fYm94ZWRfdGh1bWJfd2lkdGgiO3M6MzoiMjM0IjtzOjE1OiJ3b29fYnJlYWRjcnVtYnMiO3M6NToiZmFsc2UiO3M6MTQ6Indvb19idXlfdGhlbWVzIjtzOjQ6InRydWUiO3M6MTk6Indvb19jYXJvdXNlbF9oZWlnaHQiO3M6MzoiMjkyIjtzOjE4OiJ3b29fY2F0bmF2X2V4Y2x1ZGUiO3M6MDoiIjtzOjEwOiJ3b29fY2F0X2V4IjtzOjA6IiI7czoxMjoid29vX2NhdF9tZW51IjtzOjU6ImZhbHNlIjtzOjE3OiJ3b29fY29tbWVudF9wb3N0cyI7czoxOiI1IjtzOjIxOiJ3b29fY29udGFjdGZvcm1fZW1haWwiO3M6MTU6ImluZm9Ac21hbGxleS5jYyI7czoxMToid29vX2NvbnRlbnQiO3M6NToiZmFsc2UiO3M6MjA6Indvb19jb250ZW50X2FyY2hpdmVzIjtzOjU6ImZhbHNlIjtzOjE2OiJ3b29fY29udGVudF9mZWF0IjtzOjU6ImZhbHNlIjtzOjE0OiJ3b29fY3VzdG9tX2NzcyI7czowOiIiO3M6MTg6Indvb19jdXN0b21fZmF2aWNvbiI7czowOiIiO3M6MjY6Indvb19jdXN0b21fdXBsb2FkX3RyYWNraW5nIjthOjE6e2k6MDthOjQ6e3M6NDoiZmlsZSI7czo2MDoiL2hvbWVwYWdlcy8yNC9kMTkyNzA3NDUwL2h0ZG9jcy9Hb1NtYWxsZXkvaW1hZ2VzL2RhdGluZzIuanBnIjtzOjM6InVybCI7czozNjoiaHR0cDovL3NtYWxsZXkuY2MvaW1hZ2VzL2RhdGluZzIuanBnIjtzOjQ6InR5cGUiO3M6MTA6ImltYWdlL2pwZWciO3M6MTE6Im9wdGlvbl9uYW1lIjtzOjU6IkltYWdlIjt9fXM6OToid29vX2VtYmVkIjtzOjQ6InRydWUiO3M6MjE6Indvb19mZWF0dXJlZF9jYXRlZ29yeSI7czo4OiJGZWF0dXJlZCI7czoxODoid29vX2ZlYXR1cmVkX3Bvc3RzIjtzOjE6IjEiO3M6MTc6Indvb19mZWF0dXJlZF90YWdzIjtzOjA6IiI7czoxNjoid29vX2ZlYXRfZW50cmllcyI7czoxOiI2IjtzOjE3OiJ3b29fZmVlZGJ1cm5lcl9pZCI7czowOiIiO3M6MTg6Indvb19mZWVkYnVybmVyX3VybCI7czowOiIiO3M6MTg6Indvb19mb290ZXJfY3JlZGl0cyI7czowOiIiO3M6MTY6Indvb19mb290ZXJfaW1hZ2UiO3M6MDoiIjtzOjIwOiJ3b29fZnJhbWV3b3JrX3VwZGF0ZSI7czo1OiJmYWxzZSI7czoyMToid29vX2Z1bGxfdGh1bWJfaGVpZ2h0IjtzOjM6IjE4MCI7czoyMDoid29vX2Z1bGxfdGh1bWJfd2lkdGgiO3M6MzoiNTYwIjtzOjIwOiJ3b29fZ2V0X2ltYWdlX2hlaWdodCI7czozOiIxNDIiO3M6MTk6Indvb19nZXRfaW1hZ2Vfd2lkdGgiO3M6MzoiMTkwIjtzOjIwOiJ3b29fZ29vZ2xlX2FuYWx5dGljcyI7czowOiIiO3M6ODoid29vX2hvbWUiO3M6NToiZmFsc2UiO3M6MTI6Indvb19ob21lX2FyYyI7czo1OiJmYWxzZSI7czoxNDoid29vX2hvbWVfYm94ZXMiO3M6MjoiT24iO3M6MTY6Indvb19ob21lX2NvbnRlbnQiO3M6NToiZmFsc2UiO3M6MTc6Indvb19ob21lX2ZlYXR1cmVkIjtzOjQ6InRydWUiO3M6MTM6Indvb19ob21lX2xpbmsiO3M6NDoidHJ1ZSI7czoxODoid29vX2hvbWVfbGlua19kZXNjIjtzOjA6IiI7czoxODoid29vX2hvbWVfbGlua190ZXh0IjtzOjQ6IkhvbWUiO3M6MjE6Indvb19ob21lX3RodW1iX2hlaWdodCI7czoyOiI5MiI7czoyMDoid29vX2hvbWVfdGh1bWJfd2lkdGgiO3M6MzoiMjQ3IjtzOjE2OiJ3b29faW1hZ2VfaGVpZ2h0IjtzOjM6IjIxMCI7czoxNjoid29vX2ltYWdlX3NpbmdsZSI7czo1OiJmYWxzZSI7czoxNToid29vX2ltYWdlX3dpZHRoIjtzOjM6IjU0MCI7czo4OiJ3b29fbG9nbyI7czo0MToiaHR0cDovL3NtYWxsZXkuY2MvaW1hZ2VzL1NJVEUtSEVBREVSMS5wbmciO3M6MTU6Indvb19uYXZfZXhjbHVkZSI7czowOiIiO3M6MTc6Indvb19wb3B1bGFyX3Bvc3RzIjtzOjE6IjUiO3M6MTA6Indvb19yZXNpemUiO3M6NDoidHJ1ZSI7czoxNjoid29vX3Nob3duX3NsaWRlcyI7YToxOntpOjA7czozOiIyNDIiO31zOjE3OiJ3b29fc2hvd19jYXJvdXNlbCI7czo0OiJ0cnVlIjtzOjE2OiJ3b29fc2hvd19vcHRpb25zIjtzOjU6ImZhbHNlIjtzOjIzOiJ3b29fc2hvd190YWxraW5nX3BvaW50cyI7czo1OiJmYWxzZSI7czoxNDoid29vX3Nob3dfdmlkZW8iO3M6NDoidHJ1ZSI7czoxNzoid29vX3NpbmdsZV9oZWlnaHQiO3M6MzoiMTIwIjtzOjE2OiJ3b29fc2luZ2xlX3dpZHRoIjtzOjM6IjE4MCI7czoxNjoid29vX3NsaWRlcl9jZmFkZSI7czo1OiJmYWxzZSI7czoyNDoid29vX3NsaWRlcl9jb250ZW50X3NwZWVkIjtzOjQ6IjEwMDAiO3M6MTY6Indvb19zbGlkZXJfc2ZhZGUiO3M6NToiZmFsc2UiO3M6MTY6Indvb19zbGlkZXJfc3BlZWQiO3M6MzoiNTAwIjtzOjE4OiJ3b29fc2xpZGVyX3RpbWVvdXQiO3M6NDoiNjAwMCI7czo4OiJ3b29fdGFicyI7czo1OiJmYWxzZSI7czoyMzoid29vX3RhbGtpbmdfcG9pbnRzX3RhZ3MiO3M6MDoiIjtzOjEzOiJ3b29fdGhlbWVuYW1lIjtzOjg6IkJ1c3kgQmVlIjtzOjI1OiJ3b29fdGhlbWVfdmVyc2lvbl9jaGVja2VyIjtzOjQ6InRydWUiO3M6MTY6Indvb190aHVtYl9oZWlnaHQiO3M6MjoiODgiO3M6MTU6Indvb190aHVtYl93aWR0aCI7czoyOiI4OCI7czoxMToid29vX3R3aXR0ZXIiO3M6MDoiIjtzOjExOiJ3b29fdXBsb2FkcyI7YTo4OntpOjA7czo4MDoiaHR0cDovL3d3dy5nb3NtYWxsZXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTAtU21hbGxleU9ubGluZS1NYWluLUhlYWRlci5qcGciO2k6MTtzOjc5OiJodHRwOi8vd3d3Lmdvc21hbGxleS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy85LVNtYWxsZXlPbmxpbmUtTWFpbi1IZWFkZXIuanBnIjtpOjI7czo3OToiaHR0cDovL3d3dy5nb3NtYWxsZXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvOC1TbWFsbGV5T25saW5lLU1haW4tSGVhZGVyLmpwZyI7aTozO3M6Nzk6Imh0dHA6Ly93d3cuZ29zbWFsbGV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzctU21hbGxleU9ubGluZS1NYWluLUhlYWRlci5qcGciO2k6NDtzOjcxOiJodHRwOi8vd3d3Lmdvc21hbGxleS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy82LXN0b3JlLWhlYWRlci1sb2dvLnBuZyI7aTo1O3M6NzQ6Imh0dHA6Ly93d3cuZ29zbWFsbGV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzUtU21hbGxleS1sb2dvXzJjX21haW4uanBnIjtpOjY7czo3NDoiaHR0cDovL3d3dy5nb3NtYWxsZXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNC1TbWFsbGV5LWxvZ29fMmNfbWFpbi5qcGciO2k6NztzOjU4OiJodHRwOi8vd3d3Lmdvc21hbGxleS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8zLWxvZ28ucG5nIjt9czoyMjoid29vX3ZpZGVvX2Jyb3dzZXJfaW5pdCI7czoxOiIzIjtzOjE4OiJ3b29fdmlkZW9fY2F0ZWdvcnkiO3M6MTQ6IlZpZGVvIFBvZGNhc3RzIjtzOjE0OiJ3b29fdmlkZW9fdGFncyI7czowOiIiO308L2xpPjxsaT48c3Ryb25nPndvb19wb3B1bGFyX3Bvc3RzPC9zdHJvbmc+IC0gNTwvbGk+PGxpPjxzdHJvbmc+d29vX3Jlc2l6ZTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19zaG9ydG5hbWU8L3N0cm9uZz4gLSB3b288L2xpPjxsaT48c3Ryb25nPndvb19zaG93bl9zbGlkZXM8L3N0cm9uZz4gLSBhOjE6e2k6MDtzOjM6IjI0MiI7fTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfY2Fyb3VzZWw8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fc2hvd19vcHRpb25zPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19zaG93X3RhbGtpbmdfcG9pbnRzPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19zaG93X3ZpZGVvPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3NpbmdsZV9oZWlnaHQ8L3N0cm9uZz4gLSAxMjA8L2xpPjxsaT48c3Ryb25nPndvb19zaW5nbGVfd2lkdGg8L3N0cm9uZz4gLSAxODA8L2xpPjxsaT48c3Ryb25nPndvb19zbGlkZXJfY2ZhZGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3NsaWRlcl9jb250ZW50X3NwZWVkPC9zdHJvbmc+IC0gMTAwMDwvbGk+PGxpPjxzdHJvbmc+d29vX3NsaWRlcl9zZmFkZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fc2xpZGVyX3NwZWVkPC9zdHJvbmc+IC0gNTAwPC9saT48bGk+PHN0cm9uZz53b29fc2xpZGVyX3RpbWVvdXQ8L3N0cm9uZz4gLSA2MDAwPC9saT48bGk+PHN0cm9uZz53b29fdGFiczwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fdGFsa2luZ19wb2ludHNfdGFnczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX3RoZW1lbmFtZTwvc3Ryb25nPiAtIEdhemV0dGU8L2xpPjxsaT48c3Ryb25nPndvb190aGVtZV92ZXJzaW9uX2NoZWNrZXI8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfaGVpZ2h0PC9zdHJvbmc+IC0gODg8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl93aWR0aDwvc3Ryb25nPiAtIDg4PC9saT48bGk+PHN0cm9uZz53b29fdHdpdHRlcjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX3VwbG9hZHM8L3N0cm9uZz4gLSBhOjg6e2k6MDtzOjgwOiJodHRwOi8vd3d3Lmdvc21hbGxleS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8xMC1TbWFsbGV5T25saW5lLU1haW4tSGVhZGVyLmpwZyI7aToxO3M6Nzk6Imh0dHA6Ly93d3cuZ29zbWFsbGV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzktU21hbGxleU9ubGluZS1NYWluLUhlYWRlci5qcGciO2k6MjtzOjc5OiJodHRwOi8vd3d3Lmdvc21hbGxleS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy84LVNtYWxsZXlPbmxpbmUtTWFpbi1IZWFkZXIuanBnIjtpOjM7czo3OToiaHR0cDovL3d3dy5nb3NtYWxsZXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNy1TbWFsbGV5T25saW5lLU1haW4tSGVhZGVyLmpwZyI7aTo0O3M6NzE6Imh0dHA6Ly93d3cuZ29zbWFsbGV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzYtc3RvcmUtaGVhZGVyLWxvZ28ucG5nIjtpOjU7czo3NDoiaHR0cDovL3d3dy5nb3NtYWxsZXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNS1TbWFsbGV5LWxvZ29fMmNfbWFpbi5qcGciO2k6NjtzOjc0OiJodHRwOi8vd3d3Lmdvc21hbGxleS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy80LVNtYWxsZXktbG9nb18yY19tYWluLmpwZyI7aTo3O3M6NTg6Imh0dHA6Ly93d3cuZ29zbWFsbGV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzMtbG9nby5wbmciO308L2xpPjxsaT48c3Ryb25nPndvb192aWRlb19icm93c2VyX2luaXQ8L3N0cm9uZz4gLSAzPC9saT48bGk+PHN0cm9uZz53b29fdmlkZW9fY2F0ZWdvcnk8L3N0cm9uZz4gLSBWaWRlbyBQb2RjYXN0czwvbGk+PGxpPjxzdHJvbmc+d29vX3ZpZGVvX3RhZ3M8L3N0cm9uZz4gLSA8L2xpPjwvdWw+