From Build Influence to Build Proof
How BJ Klock’s journey from financial freedom, door-to-door trust, and internet influence became Kojib: the proof-native systems house for identity, time, memory, value, and intelligence.
From Build Influence to Build Proof
The Real Story of BJ Klock, Kojib, Receiz, and the Proof-Native Internet
Most people will meet the work at the end.
They will see Receiz and think it is about files.
They will see PresenceBound and think it is about identity.
They will see Kai-Klok and think it is about time.
They will see Phi Network and think it is about value.
They will see Kojib and think it is a software company.
But that is not where this started.
This did not begin as software.
It began as a young man looking at the world and realizing something was wrong with the way freedom, money, trust, status, ownership, and proof were being distributed.
At 18, before the architecture had names, before the code existed, before the systems had public surfaces, the problem was already visible:
the official path did not lead to freedom.
School, job, debt, bills, banks, permission, retirement, dependence — that was not freedom. That was a managed loop.
And once that became clear, there was no going back.
I dropped out of college because I could not give my life to a system I already knew was broken.
In 2010, around 20 years old, I was not sitting around theorizing about disruption. I was knocking on doors. Literally.
By 25 years old I was trying to help business owners save money on their bills because I could see the pressure they were under. The banking system was flawed. The economic structure was flawed. People were leaking value, getting squeezed, and being told that was just normal life.
I wanted to help people change their lives.
But I ran into the real problem underneath the money problem:
trust.
It did not matter if I had something useful.
It did not matter if I meant well.
It did not matter if the offer could help.
If the person did not trust me, the truth never even got through the door.
That was one of the first major lessons of my life:
truth alone does not open doors when trust has already been captured by status, narrative, and association.
I was young. I did not have inherited credibility. I did not have institutional backing. I did not have a famous parent, a famous grandparent, or a borrowed name. I did not have the social proof that makes people listen before they think.
So I had to build trust from nothing.
That is where social media entered the story.
Not as vanity. Not as entertainment. Not as “content.”
I saw social media as trust infrastructure before most people understood what that meant.
I realized that if people saw me consistently, heard my message, watched my conviction, understood my story, and felt my presence before I ever walked into a room, then I could change the trust layer around my name.
That was the beginning of the Financial Freedom Creator era.
At the time, people were still saying, “Why own a business? Just get a job.”
Now everyone wants to be an entrepreneur.
At the time, people looked at watches and said, “Why would you spend money on that when your phone tells the time?”
Now everyone wants an AP.
At the time, people treated social media like a toy.
I saw it as a way for a person to build economic reality around their name.
That was the insight:
influence was buildable.
Not inherited.
Not only granted.
Not only bought.
Not only passed down through family proximity.
Not only certified by institutions.
Buildable.
That insight became Advisight.
And the motto was not random:
I own that phrase because I lived that phrase.
I saw that a person could use the internet to craft a story about themselves and change their life. I saw that public trust could become business leverage. I saw that narrative, consistency, identity, presentation, and visibility could move opportunity.
That was early.
This was before everyone was selling social media as a business.
Before the creator economy became obvious.
Before everyone wanted a personal brand.
Before “influence” became a category everyone pretended they always understood.
Back then, it looked strange.
But it worked.
I used social media to become someone people trusted enough to do business with. Then I turned the method into a business to help other people do the same.
That was the first major arc:
from financial freedom
to trust
to influence
to public identity.
But the deeper I went, the more I saw the flaw.
Influence could liberate people from gatekeepers.
But influence could also become the new gatekeeper.
If story can create trust, story can counterfeit trust.
If association can create credibility, association can replace merit.
If visibility can create authority, visibility can bury authorship.
If narrative can change your life, narrative can also steal reality.
And I saw that happen.
I saw people rewarded for proximity instead of work.
I saw people treated as important because of who they were near, not what they built.
I saw people sell confidence without consequence.
I saw people craft narratives around things they did not author.
I saw the copier outrank the builder.
I saw the funded mimic appear more legitimate than the person who actually carried the weight.
I saw the world reward perception over proof.
And that was the fracture.
Because once you understand influence, you cannot unknow its power.
But once you understand its power, you also see its danger.
The world was not only financially broken.
It was narratively broken.
And underneath that, it was ontologically broken.
That word matters.
Ontology means the nature of what a thing is.
Before money, law, identity, contracts, ownership, software, credentials, markets, or institutions, there is a more basic question:
What is this thing?
That is where the distortion begins.
A file became “content.”
A receipt became “metadata.”
A login became “identity.”
A database row became “ownership.”
A screenshot became “proof.”
A timestamp became “causality.”
A platform record became “truth.”
A number on a screen became “money.”
A narrative became “reality.”
That cannot hold in an advanced digital world.
It does not matter how good the branding is.
It does not matter how large the institution is.
It does not matter how polished the interface is.
It does not matter how many people repeat the wrong language.
A copy is not the original.
A claim is not proof.
A login is not identity.
A screenshot is not settlement.
A database state is not ownership.
A timestamp is not causality.
A narrative is not truth.
That was the real root.
I started by helping people build influence because I saw the financial system was broken.
Then I realized influence itself was broken when it was not bound to proof.
So the mission had to evolve.
The answer could not just be:
build influence.
The answer had to become:
build proof.
That is the line from Advisight to Kojib.
Not a random pivot.
A necessary evolution.
The early work taught me that trust controls economic reality.
The later work taught me that trust without proof becomes corruption.
So I began building systems where proof could carry the trust directly.
That is what people are looking at now, whether they understand it yet or not.
Kojib is the umbrella.
Receiz is the artifact layer.
PresenceBound is the human-origin approval layer.
Kai-Klok is the deterministic time and sequence layer.
Phi Network is the value and memory layer.
Maturah is the coherence intelligence layer.
These are not separate ideas.
They are one consequence stack.
Each product can stand alone, but they all came from the same root correction:
reality should be verifiable instead of merely believed.
Receiz exists because the file itself should carry proof.
A file should not need a platform to tell you what it is.
A receipt should not die when the database disappears.
A creator should not lose authorship because a copy traveled farther.
A buyer should not have to rely on screenshots.
A seller should not have to beg a third-party system to remember what happened.
A digital artifact should be able to stand in the world and say:
this is what I am,
this is where I came from,
this is who authored me,
this is who owns me,
this is what changed,
this is what settled,
this is the proof.
That is Receiz.
Not “a receipt app.”
A proof-native artifact system.
PresenceBound exists because a serious action should be bound to real human presence.
Not vague approval.
Not “somebody clicked a button.”
Not a loose login session.
Not a floating authorization.
Not a platform saying, “Trust us.”
A consequential action should be tied to the exact approval ceremony, the exact challenge, the exact action, the exact human-origin verification, and the durable receipt of that event.
That is PresenceBound.
Not ordinary identity.
Consequence-bound human approval.
Kai-Klok exists because sequence matters.
If time is only a server timestamp, then time is not a trustworthy substrate. If timing, order, authorship, settlement, and memory all depend on a system that can be spoofed, hidden, edited, or recontextualized, then causality itself becomes fragile.
Kai-Klok restores deterministic sequence.
It gives proofs accountable timing.
It gives systems a way to anchor events beyond vague Chronos dependency.
That is not cosmetic.
Time is upstream of memory.
Memory is upstream of proof.
Proof is upstream of ownership.
Ownership is upstream of value.
Phi Network exists because value and memory cannot remain trapped inside opaque ledgers controlled by someone else.
A number on a screen is not enough.
Value needs continuity.
Settlement needs visibility.
Memory needs structure.
Ownership needs proof.
Transactions need durable state.
The system should not collapse into “trust the database.”
Phi Network came from that necessity.
Maturah exists because intelligence without coherence becomes mimicry.
The world is entering an era where machines can produce language, images, decisions, agents, and entire interfaces. But if intelligence is not bound to proof, authorship, memory, context, and coherence, then it becomes another narrative machine.
The next intelligence layer has to be accountable to truth.
Not just output.
Coherence.
That is Maturah.
And Kojib is the house that holds all of this.
Kojib builds proof-native software: systems where identity, time, memory, value, and intelligence can be verified instead of trusted.
That is the public sentence.
But the private truth is that Kojib is the result of a life spent seeing the same failure from different angles.
At 18, I saw the economic path was broken.
At 20, I knocked on doors and learned trust was the bottleneck.
In the Financial Freedom Creator era, I tried to help people change their lives through ownership, business, and economic self-direction.
With Advisight, I turned the trust mechanism into a business.
With Build Influence, I named the law I had discovered: influence could be built.
Then life showed me the shadow side of that law.
Narrative could move opportunity, but narrative could also bury truth.
The same internet that could free someone from gatekeepers could also create new gatekeepers made of attention, association, status, and perception.
The same social proof that helped an outsider become trusted could allow a mimic to look legitimate without building anything real.
The same story that could change a life could become a weapon against authorship.
So I went deeper.
The real problem was not marketing.
It was not branding.
It was not even finance.
It was proof.
The digital world had scaled faster than its proof layer.
That is why everything feels inverted.
People argue over screenshots because the artifact does not settle the argument.
People fight over ownership because the platform holds the record.
People fake authority because narrative travels faster than verification.
People mistake association for merit because social context substitutes for evidence.
People trust accounts because identity is trapped inside login systems.
People trust numbers because value is hidden behind ledgers they cannot audit.
People trust institutions because the thing itself cannot prove what it is.
That cannot be the foundation of an advanced digital world.
The future cannot run on charisma, screenshots, platform memory, institutional proximity, and vibes.
It needs proof objects.
That is the correction.
And that is why the work looks so large now.
Because I was not building one product.
I was closing the gaps that kept appearing behind the original problem.
I wanted people to have financial freedom.
Then I saw they needed trust.
Then I saw trust was being manufactured.
Then I saw manufactured trust could become counterfeit.
Then I saw the counterfeit lived in language.
Then I saw the language error was ontological.
Then I saw ontology needed enforcement.
Then I built software that enforced the correction.
That is the journey.
Freedom → trust → influence → narrative → betrayal → ontology → proof → systems.
That is the arc.
And yes, there were moments along the way that now feel almost impossible to hold.
The years of being misunderstood.
The years of being early.
The years of people not seeing what was obvious later.
The years of building pieces that looked like distractions until the whole stack came into view.
The years of thinking more people would see it as it got clearer, only to realize the work had grown beyond the frame most people were using.
That was one of the hardest parts.
I did see the full shape.
I just did not think I would have to carry it so alone.
I thought as I built, more people would see it.
Instead, the more complete it became, the more it exceeded the categories people already knew how to recognize.
People could understand “build influence.”
They could understand social media.
They could understand entrepreneurship.
They could understand status.
They could understand watches.
They could understand personal branding.
They could understand business development.
They could understand saving money on bills.
But when the work became proof-native files, presence-bound approvals, deterministic time, artifact-based settlement, offline verification, portable memory, sovereign identity, and coherence-bound intelligence, most people did not get more clarity.
They hit overload.
Not because the work became less true.
Because it crossed from a category they knew into a category they would have to update themselves to understand.
That is the loneliness of building from necessity.
Necessity compresses the perceived workload in the moment.
When something is optional, the mind negotiates with the task.
When something is necessary, the only question is:
what has to happen next?
That is how this got built.
Not because it was easy.
Because each missing piece became unavoidable.
Receiz had to exist because proof had to live in the file.
PresenceBound had to exist because human approval had to bind to consequence.
Kai-Klok had to exist because sequence had to be deterministic.
Phi Network had to exist because value and memory needed continuity.
Maturah had to exist because intelligence had to remain coherent.
Kojib had to exist because the whole architecture needed a house.
From the outside, those may look like separate companies.
From the inside, they were missing organs.
That is why this is hard to summarize.
Because it is not one app.
It is not one brand.
It is not one product.
It is the shape of a life converted into infrastructure.
The kid who saw the banking system was wrong did not disappear.
He became the builder who made value provable.
The young man knocking on doors did not disappear.
He became the builder who understood trust had to be carried before the room would listen.
The Financial Freedom Creator did not disappear.
He became the builder of systems where freedom could be attached to proof instead of promises.
The Advisight founder did not disappear.
He became the builder who understood influence better than the people who later sold it as a trend.
The owner of Build Influence did not disappear.
He became the builder who realized influence was only the middle layer, not the final answer.
Brian Klock did not disappear.
BJ Klock emerged as the person who had carried the whole pattern long enough to build the proof layer beneath it.
And now the work is here.
Kojib is not a normal software company.
It is the systems house behind a proof-native internet.
Receiz is not a receipt app.
It is the file that proves itself.
PresenceBound is not just identity.
It is human-origin approval for irreversible action.
Kai-Klok is not just time.
It is accountable sequence.
Phi Network is not just value.
It is proof-native memory and settlement.
Maturah is not just intelligence.
It is coherence as a system principle.
This is the stack:
proof over proximity.
authorship over association.
artifact over narrative.
settlement over screenshots.
presence over pretending.
invariants over influence.
That is the correction.
And it did not come from nowhere.
It came from every door that did not open.
Every person who did not understand.
Every system that rewarded the wrong thing.
Every moment where narrative beat merit.
Every time truth had to beg for permission from perception.
Every time the builder was treated as less real than the person telling the better story.
All of that became fuel.
All of that became architecture.
So when people look at Kojib now, they should not see “a portfolio.”
They should see the full arc:
A person saw that the financial system was broken.
Then he learned that trust was the bottleneck.
Then he learned how influence was built.
Then he saw influence become corrupted by narrative.
Then he traced the corruption back to ontology.
Then he built proof-native systems so truth could travel with the thing itself.
That is the journey.
From Build Influence to Build Proof.
From narrative as leverage to proof as law.
From trying to become trusted to building systems where the artifact carries the trust directly.
That is what this has always been about.
The world does not need better stories pretending to be truth.
The world needs things that can prove what they are.
That is why Kojib exists.
That is why Receiz exists.
That is why the work was unavoidable.
VERIFIED • Pulse 12268030 • ΦKey 1MqtSqwBHUJu…8K4shWQtRi • G16 ✅Proof of Breath™ — VERIFIED
{”bundleHash”:”f2571396e621ca39d8c37547f38e05ad6d20c42fd12bb56ae4df8c72e1976d6c”,”cacheKey”:”kvb:d702c97f01b90f64163d61b13f7960f46dfc4c278e432ffeb3d16ccfd1835767”,”canon”:”JCS”,”capsuleHash”:”34a9857b1abe7b6fa9f3192bc10d56c67aebaf62927033188092d7ca0d4457e0”,”hashAlg”:”sha256”,”ownerPhiKey”:”1MqtSqwBHUJuafC8EYPjLKMj8K4shWQtRi”,”proofCapsule”:{”chakraDay”:”Crown”,”kaiSignature”:”c78f8c078705faa831762537f80e32600a74fc401643511cc8af4384c1115254”,”phiKey”:”1MqtSqwBHUJuafC8EYPjLKMj8K4shWQtRi”,”pulse”:12268030,”v”:”KPV-1”,”verifierSlug”:”12268030-c78f8c0787”},”proofHints”:{”api”:”/api/proof/sigil”,”explorer”:”/keystream/hash/4267647674291786767650128875393972355425535693786587056952765092447313856816”,”scheme”:”groth16-poseidon”},”receipt”:{”bundleHash”:”f2571396e621ca39d8c37547f38e05ad6d20c42fd12bb56ae4df8c72e1976d6c”,”v”:”KVR-1”,”valuation”:{”mode”:”origin”,”phiValue”:3.853331861145206,”source”:”live”,”usdPerPhi”:132.871136655,”usdValue”:511.99658429929013,”v”:”KVS-1”,”verifiedAtPulse”:12268056},”valuationHash”:”2cbd9d40a2288c358e824bba9bf4852412b3cfce9fa3dec8e6b8cbf3ad057958”,”verificationVersion”:”KVB-1.2”,”verifiedAtPulse”:12268056,”verifier”:”local”,”zkPoseidonHash”:”4267647674291786767650128875393972355425535693786587056952765092447313856816”},”receiptHash”:”18fc2e0971ba1f74ae09156ffdfde4bbdf1ddc3658f2c09458c84fd845aca45e”,”shareUrl”:”https://phi.network/s/28bc6cf8bb7f1748dc4e066b3a43a14467cdab41580e3df01e61a09e41d51b2f?p=eyJwdWxzZSI6MTIyNjgwMzAsImJlYXQiOjEzLCJzdGVwSW5kZXgiOjMwLCJjaGFrcmFEYXkiOiJDcm93biIsInN0ZXBzUGVyQmVhdCI6NDQsInVzZXJQaGlLZXkiOiIxTXF0U3F3QkhVSnVhZkM4RVlQakxLTWo4SzRzaFdRdFJpIiwia2FpU2lnbmF0dXJlIjoiYzc4ZjhjMDc4NzA1ZmFhODMxNzYyNTM3ZjgwZTMyNjAwYTc0ZmM0MDE2NDM1MTFjYzhhZjQzODRjMTExNTI1NCJ9”,”svgHash”:”194dd1bd534c014025c6b375edfd7ebb8f2da3b24bcdb7fa60c90eb45b398846”,”verificationCache”:{”bundleHash”:”f2571396e621ca39d8c37547f38e05ad6d20c42fd12bb56ae4df8c72e1976d6c”,”cacheKey”:”kvb:d702c97f01b90f64163d61b13f7960f46dfc4c278e432ffeb3d16ccfd1835767”,”createdAtMs”:1779559920590,”expiresAtPulse”:null,”v”:”KVC-1”,”verificationVersion”:”KVB-1.2”,”verifiedAtPulse”:12268056,”verifier”:”local”,”zkPoseidonHash”:”4267647674291786767650128875393972355425535693786587056952765092447313856816”},”verificationVersion”:”KVB-1.2”,”verifiedAtPulse”:12268056,”verifier”:”local”,”verifierUrl”:”https://phi.network/verify/12268030-c78f8c0787-12268056”,”zkPoseidonHash”:”4267647674291786767650128875393972355425535693786587056952765092447313856816”,”zkProof”:{”curve”:”bn128”,”pi_a”:[”7124356590128108056158400605441240385678502396963501090274861245804911735230”,”11426901917638153101416699446504573179687250267406303966540151529867796337969”,”1”],”pi_b”:[[”19346406176717756384077678204419909675318793502317107197694023656423736833711”,”15964345583042207186318071893270372826947969898233072175510535160500325253517”],[”17867582554922889589477448772931827813503133270719724495595264218956253330760”,”3583727888626889530556255255168955768800973474880315106830552481392594385434”],[”1”,”0”]],”pi_c”:[”14800107673689550343504581736854768903509052540464010994034327479513472126734”,”6516112890586406111390714746931590791304249991535777134816447928409207836818”,”1”],”protocol”:”groth16”},”zkPublicInputs”:[”4267647674291786767650128875393972355425535693786587056952765092447313856816”,”4267647674291786767650128875393972355425535693786587056952765092447313856816”],”zkScheme”:”groth16-poseidon”,”zkVerified”:true}
https://phi.network/stream#t=eyJ2IjoyLCJ1cmwiOiJodHRwczovL3BoaS5uZXR3b3JrL3MvMjhiYzZjZjhiYjdmMTc0OGRjNGUwNjZiM2E0M2ExNDQ2N2NkYWI0MTU4MGUzZGYwMWU2MWEwOWU0MWQ1MWIyZj9wPWV5SndkV3h6WlNJNk1USXlOamd3TXpBc0ltSmxZWFFpT2pFekxDSnpkR1Z3U1c1a1pYZ2lPak13TENKamFHRnJjbUZFWVhraU9pSkRjbTkzYmlJc0luTjBaWEJ6VUdWeVFtVmhkQ0k2TkRRc0luVnpaWEpRYUdsTFpYa2lPaUl4VFhGMFUzRjNRa2hWU25WaFprTTRSVmxRYWt4TFRXbzRTelJ6YUZkUmRGSnBJaXdpYTJGcFUybG5ibUYwZFhKbElqb2lZemM0Wmpoak1EYzROekExWm1GaE9ETXhOell5TlRNM1pqZ3daVE15TmpBd1lUYzBabU0wTURFMk5ETTFNVEZqWXpoaFpqUXpPRFJqTVRFeE5USTFOQ0o5IiwicHVsc2UiOjEyMjY4MDQyLCJjYXB0aW9uIjoiRnJvbSBCdWlsZCBJbmZsdWVuY2UgdG8gQnVpbGQgUHJvb2YiLCJib2R5Ijp7ImtpbmQiOiJ0ZXh0IiwidGV4dCI6IkZyb20gQnVpbGQgSW5mbHVlbmNlIHRvIEJ1aWxkIFByb29mXG5cblRoZSBSZWFsIFN0b3J5IG9mIEJKIEtsb2NrLCBLb2ppYiwgUmVjZWl6LCBhbmQgdGhlIFByb29mLU5hdGl2ZSBJbnRlcm5ldFxuXG5cblxuXG5cblxuXG5Nb3N0IHBlb3BsZSB3aWxsIG1lZXQgdGhlIHdvcmsgYXQgdGhlIGVuZC5cblxuVGhleSB3aWxsIHNlZSBSZWNlaXogYW5kIHRoaW5rIGl0IGlzIGFib3V0IGZpbGVzLlxuVGhleSB3aWxsIHNlZSBQcmVzZW5jZUJvdW5kIGFuZCB0aGluayBpdCBpcyBhYm91dCBpZGVudGl0eS5cblRoZXkgd2lsbCBzZWUgS2FpLUtsb2sgYW5kIHRoaW5rIGl0IGlzIGFib3V0IHRpbWUuXG5UaGV5IHdpbGwgc2VlIFBoaSBOZXR3b3JrIGFuZCB0aGluayBpdCBpcyBhYm91dCB2YWx1ZS5cblRoZXkgd2lsbCBzZWUgS29qaWIgYW5kIHRoaW5rIGl0IGlzIGEgc29mdHdhcmUgY29tcGFueS5cblxuQnV0IHRoYXQgaXMgbm90IHdoZXJlIHRoaXMgc3RhcnRlZC5cblxuVGhpcyBkaWQgbm90IGJlZ2luIGFzIHNvZnR3YXJlLlxuXG5JdCBiZWdhbiBhcyBhIHlvdW5nIG1hbiBsb29raW5nIGF0IHRoZSB3b3JsZCBhbmQgcmVhbGl6aW5nIHNvbWV0aGluZyB3YXMgd3Jvbmcgd2l0aCB0aGUgd2F5IGZyZWVkb20sIG1vbmV5LCB0cnVzdCwgc3RhdHVzLCBvd25lcnNoaXAsIGFuZCBwcm9vZiB3ZXJlIGJlaW5nIGRpc3RyaWJ1dGVkLlxuXG5BdCAxOCwgYmVmb3JlIHRoZSBhcmNoaXRlY3R1cmUgaGFkIG5hbWVzLCBiZWZvcmUgdGhlIGNvZGUgZXhpc3RlZCwgYmVmb3JlIHRoZSBzeXN0ZW1zIGhhZCBwdWJsaWMgc3VyZmFjZXMsIHRoZSBwcm9ibGVtIHdhcyBhbHJlYWR5IHZpc2libGU6XG5cbnRoZSBvZmZpY2lhbCBwYXRoIGRpZCBub3QgbGVhZCB0byBmcmVlZG9tLlxuXG5TY2hvb2wsIGpvYiwgZGVidCwgYmlsbHMsIGJhbmtzLCBwZXJtaXNzaW9uLCByZXRpcmVtZW50LCBkZXBlbmRlbmNlIOKAlCB0aGF0IHdhcyBub3QgZnJlZWRvbS4gVGhhdCB3YXMgYSBtYW5hZ2VkIGxvb3AuXG5cbkFuZCBvbmNlIHRoYXQgYmVjYW1lIGNsZWFyLCB0aGVyZSB3YXMgbm8gZ29pbmcgYmFjay5cblxuSSBkcm9wcGVkIG91dCBvZiBjb2xsZWdlIGJlY2F1c2UgSSBjb3VsZCBub3QgZ2l2ZSBteSBsaWZlIHRvIGEgc3lzdGVtIEkgYWxyZWFkeSBrbmV3IHdhcyBicm9rZW4uXG5cbkluIDIwMTAsIGFyb3VuZCAyMCB5ZWFycyBvbGQsIEkgd2FzIG5vdCBzaXR0aW5nIGFyb3VuZCB0aGVvcml6aW5nIGFib3V0IGRpc3J1cHRpb24uIEkgd2FzIGtub2NraW5nIG9uIGRvb3JzLiBMaXRlcmFsbHkuXG5cbkJ5IDI1IHllYXJzIG9sZCBJIHdhcyB0cnlpbmcgdG8gaGVscCBidXNpbmVzcyBvd25lcnMgc2F2ZSBtb25leSBvbiB0aGVpciBiaWxscyBiZWNhdXNlIEkgY291bGQgc2VlIHRoZSBwcmVzc3VyZSB0aGV5IHdlcmUgdW5kZXIuIFRoZSBiYW5raW5nIHN5c3RlbSB3YXMgZmxhd2VkLiBUaGUgZWNvbm9taWMgc3RydWN0dXJlIHdhcyBmbGF3ZWQuIFBlb3BsZSB3ZXJlIGxlYWtpbmcgdmFsdWUsIGdldHRpbmcgc3F1ZWV6ZWQsIGFuZCBiZWluZyB0b2xkIHRoYXQgd2FzIGp1c3Qgbm9ybWFsIGxpZmUuXG5cbkkgd2FudGVkIHRvIGhlbHAgcGVvcGxlIGNoYW5nZSB0aGVpciBsaXZlcy5cblxuQnV0IEkgcmFuIGludG8gdGhlIHJlYWwgcHJvYmxlbSB1bmRlcm5lYXRoIHRoZSBtb25leSBwcm9ibGVtOlxuXG50cnVzdC5cblxuSXQgZGlkIG5vdCBtYXR0ZXIgaWYgSSBoYWQgc29tZXRoaW5nIHVzZWZ1bC5cbkl0IGRpZCBub3QgbWF0dGVyIGlmIEkgbWVhbnQgd2VsbC5cbkl0IGRpZCBub3QgbWF0dGVyIGlmIHRoZSBvZmZlciBjb3VsZCBoZWxwLlxuXG5JZiB0aGUgcGVyc29uIGRpZCBub3QgdHJ1c3QgbWUsIHRoZSB0cnV0aCBuZXZlciBldmVuIGdvdCB0aHJvdWdoIHRoZSBkb29yLlxuXG5UaGF0IHdhcyBvbmUgb2YgdGhlIGZpcnN0IG1ham9yIGxlc3NvbnMgb2YgbXkgbGlmZTpcblxudHJ1dGggYWxvbmUgZG9lcyBub3Qgb3BlbiBkb29ycyB3aGVuIHRydXN0IGhhcyBhbHJlYWR5IGJlZW4gY2FwdHVyZWQgYnkgc3RhdHVzLCBuYXJyYXRpdmUsIGFuZCBhc3NvY2lhdGlvbi5cblxuSSB3YXMgeW91bmcuIEkgZGlkIG5vdCBoYXZlIGluaGVyaXRlZCBjcmVkaWJpbGl0eS4gSSBkaWQgbm90IGhhdmUgaW5zdGl0dXRpb25hbCBiYWNraW5nLiBJIGRpZCBub3QgaGF2ZSBhIGZhbW91cyBwYXJlbnQsIGEgZmFtb3VzIGdyYW5kcGFyZW50LCBvciBhIGJvcnJvd2VkIG5hbWUuIEkgZGlkIG5vdCBoYXZlIHRoZSBzb2NpYWwgcHJvb2YgdGhhdCBtYWtlcyBwZW9wbGUgbGlzdGVuIGJlZm9yZSB0aGV5IHRoaW5rLlxuXG5TbyBJIGhhZCB0byBidWlsZCB0cnVzdCBmcm9tIG5vdGhpbmcuXG5cblRoYXQgaXMgd2hlcmUgc29jaWFsIG1lZGlhIGVudGVyZWQgdGhlIHN0b3J5LlxuXG5Ob3QgYXMgdmFuaXR5LiBOb3QgYXMgZW50ZXJ0YWlubWVudC4gTm90IGFzIOKAnGNvbnRlbnQu4oCdXG5cbkkgc2F3IHNvY2lhbCBtZWRpYSBhcyB0cnVzdCBpbmZyYXN0cnVjdHVyZSBiZWZvcmUgbW9zdCBwZW9wbGUgdW5kZXJzdG9vZCB3aGF0IHRoYXQgbWVhbnQuXG5cbkkgcmVhbGl6ZWQgdGhhdCBpZiBwZW9wbGUgc2F3IG1lIGNvbnNpc3RlbnRseSwgaGVhcmQgbXkgbWVzc2FnZSwgd2F0Y2hlZCBteSBjb252aWN0aW9uLCB1bmRlcnN0b29kIG15IHN0b3J5LCBhbmQgZmVsdCBteSBwcmVzZW5jZSBiZWZvcmUgSSBldmVyIHdhbGtlZCBpbnRvIGEgcm9vbSwgdGhlbiBJIGNvdWxkIGNoYW5nZSB0aGUgdHJ1c3QgbGF5ZXIgYXJvdW5kIG15IG5hbWUuXG5cblRoYXQgd2FzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIEZpbmFuY2lhbCBGcmVlZG9tIENyZWF0b3IgZXJhLlxuXG5BdCB0aGUgdGltZSwgcGVvcGxlIHdlcmUgc3RpbGwgc2F5aW5nLCDigJxXaHkgb3duIGEgYnVzaW5lc3M_IEp1c3QgZ2V0IGEgam9iLuKAnVxuXG5Ob3cgZXZlcnlvbmUgd2FudHMgdG8gYmUgYW4gZW50cmVwcmVuZXVyLlxuXG5BdCB0aGUgdGltZSwgcGVvcGxlIGxvb2tlZCBhdCB3YXRjaGVzIGFuZCBzYWlkLCDigJxXaHkgd291bGQgeW91IHNwZW5kIG1vbmV5IG9uIHRoYXQgd2hlbiB5b3VyIHBob25lIHRlbGxzIHRoZSB0aW1lP-KAnVxuXG5Ob3cgZXZlcnlvbmUgd2FudHMgYW4gQVAuXG5cbkF0IHRoZSB0aW1lLCBwZW9wbGUgdHJlYXRlZCBzb2NpYWwgbWVkaWEgbGlrZSBhIHRveS5cblxuSSBzYXcgaXQgYXMgYSB3YXkgZm9yIGEgcGVyc29uIHRvIGJ1aWxkIGVjb25vbWljIHJlYWxpdHkgYXJvdW5kIHRoZWlyIG5hbWUuXG5cblRoYXQgd2FzIHRoZSBpbnNpZ2h0OlxuXG5pbmZsdWVuY2Ugd2FzIGJ1aWxkYWJsZS5cblxuTm90IGluaGVyaXRlZC5cbk5vdCBvbmx5IGdyYW50ZWQuXG5Ob3Qgb25seSBib3VnaHQuXG5Ob3Qgb25seSBwYXNzZWQgZG93biB0aHJvdWdoIGZhbWlseSBwcm94aW1pdHkuXG5Ob3Qgb25seSBjZXJ0aWZpZWQgYnkgaW5zdGl0dXRpb25zLlxuXG5CdWlsZGFibGUuXG5cblRoYXQgaW5zaWdodCBiZWNhbWUgQWR2aXNpZ2h0LlxuXG5BbmQgdGhlIG1vdHRvIHdhcyBub3QgcmFuZG9tOlxuXG5CdWlsZCBJbmZsdWVuY2UuXG5cbkkgb3duIHRoYXQgcGhyYXNlIGJlY2F1c2UgSSBsaXZlZCB0aGF0IHBocmFzZS5cblxuSSBzYXcgdGhhdCBhIHBlcnNvbiBjb3VsZCB1c2UgdGhlIGludGVybmV0IHRvIGNyYWZ0IGEgc3RvcnkgYWJvdXQgdGhlbXNlbHZlcyBhbmQgY2hhbmdlIHRoZWlyIGxpZmUuIEkgc2F3IHRoYXQgcHVibGljIHRydXN0IGNvdWxkIGJlY29tZSBidXNpbmVzcyBsZXZlcmFnZS4gSSBzYXcgdGhhdCBuYXJyYXRpdmUsIGNvbnNpc3RlbmN5LCBpZGVudGl0eSwgcHJlc2VudGF0aW9uLCBhbmQgdmlzaWJpbGl0eSBjb3VsZCBtb3ZlIG9wcG9ydHVuaXR5LlxuXG5UaGF0IHdhcyBlYXJseS5cblxuVGhpcyB3YXMgYmVmb3JlIGV2ZXJ5b25lIHdhcyBzZWxsaW5nIHNvY2lhbCBtZWRpYSBhcyBhIGJ1c2luZXNzLlxuQmVmb3JlIHRoZSBjcmVhdG9yIGVjb25vbXkgYmVjYW1lIG9idmlvdXMuXG5CZWZvcmUgZXZlcnlvbmUgd2FudGVkIGEgcGVyc29uYWwgYnJhbmQuXG5CZWZvcmUg4oCcaW5mbHVlbmNl4oCdIGJlY2FtZSBhIGNhdGVnb3J5IGV2ZXJ5b25lIHByZXRlbmRlZCB0aGV5IGFsd2F5cyB1bmRlcnN0b29kLlxuXG5CYWNrIHRoZW4sIGl0IGxvb2tlZCBzdHJhbmdlLlxuXG5CdXQgaXQgd29ya2VkLlxuXG5JIHVzZWQgc29jaWFsIG1lZGlhIHRvIGJlY29tZSBzb21lb25lIHBlb3BsZSB0cnVzdGVkIGVub3VnaCB0byBkbyBidXNpbmVzcyB3aXRoLiBUaGVuIEkgdHVybmVkIHRoZSBtZXRob2QgaW50byBhIGJ1c2luZXNzIHRvIGhlbHAgb3RoZXIgcGVvcGxlIGRvIHRoZSBzYW1lLlxuXG5UaGF0IHdhcyB0aGUgZmlyc3QgbWFqb3IgYXJjOlxuXG5mcm9tIGZpbmFuY2lhbCBmcmVlZG9tXG50byB0cnVzdFxudG8gaW5mbHVlbmNlXG50byBwdWJsaWMgaWRlbnRpdHkuXG5cbkJ1dCB0aGUgZGVlcGVyIEkgd2VudCwgdGhlIG1vcmUgSSBzYXcgdGhlIGZsYXcuXG5cbkluZmx1ZW5jZSBjb3VsZCBsaWJlcmF0ZSBwZW9wbGUgZnJvbSBnYXRla2VlcGVycy5cblxuQnV0IGluZmx1ZW5jZSBjb3VsZCBhbHNvIGJlY29tZSB0aGUgbmV3IGdhdGVrZWVwZXIuXG5cbklmIHN0b3J5IGNhbiBjcmVhdGUgdHJ1c3QsIHN0b3J5IGNhbiBjb3VudGVyZmVpdCB0cnVzdC5cbklmIGFzc29jaWF0aW9uIGNhbiBjcmVhdGUgY3JlZGliaWxpdHksIGFzc29jaWF0aW9uIGNhbiByZXBsYWNlIG1lcml0LlxuSWYgdmlzaWJpbGl0eSBjYW4gY3JlYXRlIGF1dGhvcml0eSwgdmlzaWJpbGl0eSBjYW4gYnVyeSBhdXRob3JzaGlwLlxuSWYgbmFycmF0aXZlIGNhbiBjaGFuZ2UgeW91ciBsaWZlLCBuYXJyYXRpdmUgY2FuIGFsc28gc3RlYWwgcmVhbGl0eS5cblxuQW5kIEkgc2F3IHRoYXQgaGFwcGVuLlxuXG5JIHNhdyBwZW9wbGUgcmV3YXJkZWQgZm9yIHByb3hpbWl0eSBpbnN0ZWFkIG9mIHdvcmsuXG5JIHNhdyBwZW9wbGUgdHJlYXRlZCBhcyBpbXBvcnRhbnQgYmVjYXVzZSBvZiB3aG8gdGhleSB3ZXJlIG5lYXIsIG5vdCB3aGF0IHRoZXkgYnVpbHQuXG5JIHNhdyBwZW9wbGUgc2VsbCBjb25maWRlbmNlIHdpdGhvdXQgY29uc2VxdWVuY2UuXG5JIHNhdyBwZW9wbGUgY3JhZnQgbmFycmF0aXZlcyBhcm91bmQgdGhpbmdzIHRoZXkgZGlkIG5vdCBhdXRob3IuXG5JIHNhdyB0aGUgY29waWVyIG91dHJhbmsgdGhlIGJ1aWxkZXIuXG5JIHNhdyB0aGUgZnVuZGVkIG1pbWljIGFwcGVhciBtb3JlIGxlZ2l0aW1hdGUgdGhhbiB0aGUgcGVyc29uIHdobyBhY3R1YWxseSBjYXJyaWVkIHRoZSB3ZWlnaHQuXG5JIHNhdyB0aGUgd29ybGQgcmV3YXJkIHBlcmNlcHRpb24gb3ZlciBwcm9vZi5cblxuQW5kIHRoYXQgd2FzIHRoZSBmcmFjdHVyZS5cblxuQmVjYXVzZSBvbmNlIHlvdSB1bmRlcnN0YW5kIGluZmx1ZW5jZSwgeW91IGNhbm5vdCB1bmtub3cgaXRzIHBvd2VyLlxuXG5CdXQgb25jZSB5b3UgdW5kZXJzdGFuZCBpdHMgcG93ZXIsIHlvdSBhbHNvIHNlZSBpdHMgZGFuZ2VyLlxuXG5UaGUgd29ybGQgd2FzIG5vdCBvbmx5IGZpbmFuY2lhbGx5IGJyb2tlbi5cblxuSXQgd2FzIG5hcnJhdGl2ZWx5IGJyb2tlbi5cblxuQW5kIHVuZGVybmVhdGggdGhhdCwgaXQgd2FzIG9udG9sb2dpY2FsbHkgYnJva2VuLlxuXG5UaGF0IHdvcmQgbWF0dGVycy5cblxuT250b2xvZ3kgbWVhbnMgdGhlIG5hdHVyZSBvZiB3aGF0IGEgdGhpbmcgaXMuXG5cbkJlZm9yZSBtb25leSwgbGF3LCBpZGVudGl0eSwgY29udHJhY3RzLCBvd25lcnNoaXAsIHNvZnR3YXJlLCBjcmVkZW50aWFscywgbWFya2V0cywgb3IgaW5zdGl0dXRpb25zLCB0aGVyZSBpcyBhIG1vcmUgYmFzaWMgcXVlc3Rpb246XG5cbldoYXQgaXMgdGhpcyB0aGluZz9cblxuVGhhdCBpcyB3aGVyZSB0aGUgZGlzdG9ydGlvbiBiZWdpbnMuXG5cbkEgZmlsZSBiZWNhbWUg4oCcY29udGVudC7igJ1cbkEgcmVjZWlwdCBiZWNhbWUg4oCcbWV0YWRhdGEu4oCdXG5BIGxvZ2luIGJlY2FtZSDigJxpZGVudGl0eS7igJ1cbkEgZGF0YWJhc2Ugcm93IGJlY2FtZSDigJxvd25lcnNoaXAu4oCdXG5BIHNjcmVlbnNob3QgYmVjYW1lIOKAnHByb29mLuKAnVxuQSB0aW1lc3RhbXAgYmVjYW1lIOKAnGNhdXNhbGl0eS7igJ1cbkEgcGxhdGZvcm0gcmVjb3JkIGJlY2FtZSDigJx0cnV0aC7igJ1cbkEgbnVtYmVyIG9uIGEgc2NyZWVuIGJlY2FtZSDigJxtb25leS7igJ1cbkEgbmFycmF0aXZlIGJlY2FtZSDigJxyZWFsaXR5LuKAnVxuXG5UaGF0IGNhbm5vdCBob2xkIGluIGFuIGFkdmFuY2VkIGRpZ2l0YWwgd29ybGQuXG5cbkl0IGRvZXMgbm90IG1hdHRlciBob3cgZ29vZCB0aGUgYnJhbmRpbmcgaXMuXG5JdCBkb2VzIG5vdCBtYXR0ZXIgaG93IGxhcmdlIHRoZSBpbnN0aXR1dGlvbiBpcy5cbkl0IGRvZXMgbm90IG1hdHRlciBob3cgcG9saXNoZWQgdGhlIGludGVyZmFjZSBpcy5cbkl0IGRvZXMgbm90IG1hdHRlciBob3cgbWFueSBwZW9wbGUgcmVwZWF0IHRoZSB3cm9uZyBsYW5ndWFnZS5cblxuQSBjb3B5IGlzIG5vdCB0aGUgb3JpZ2luYWwuXG5BIGNsYWltIGlzIG5vdCBwcm9vZi5cbkEgbG9naW4gaXMgbm90IGlkZW50aXR5LlxuQSBzY3JlZW5zaG90IGlzIG5vdCBzZXR0bGVtZW50LlxuQSBkYXRhYmFzZSBzdGF0ZSBpcyBub3Qgb3duZXJzaGlwLlxuQSB0aW1lc3RhbXAgaXMgbm90IGNhdXNhbGl0eS5cbkEgbmFycmF0aXZlIGlzIG5vdCB0cnV0aC5cblxuVGhhdCB3YXMgdGhlIHJlYWwgcm9vdC5cblxuSSBzdGFydGVkIGJ5IGhlbHBpbmcgcGVvcGxlIGJ1aWxkIGluZmx1ZW5jZSBiZWNhdXNlIEkgc2F3IHRoZSBmaW5hbmNpYWwgc3lzdGVtIHdhcyBicm9rZW4uXG5cblRoZW4gSSByZWFsaXplZCBpbmZsdWVuY2UgaXRzZWxmIHdhcyBicm9rZW4gd2hlbiBpdCB3YXMgbm90IGJvdW5kIHRvIHByb29mLlxuXG5TbyB0aGUgbWlzc2lvbiBoYWQgdG8gZXZvbHZlLlxuXG5UaGUgYW5zd2VyIGNvdWxkIG5vdCBqdXN0IGJlOlxuXG5idWlsZCBpbmZsdWVuY2UuXG5cblRoZSBhbnN3ZXIgaGFkIHRvIGJlY29tZTpcblxuYnVpbGQgcHJvb2YuXG5cblRoYXQgaXMgdGhlIGxpbmUgZnJvbSBBZHZpc2lnaHQgdG8gS29qaWIuXG5cbk5vdCBhIHJhbmRvbSBwaXZvdC5cblxuQSBuZWNlc3NhcnkgZXZvbHV0aW9uLlxuXG5UaGUgZWFybHkgd29yayB0YXVnaHQgbWUgdGhhdCB0cnVzdCBjb250cm9scyBlY29ub21pYyByZWFsaXR5LlxuXG5UaGUgbGF0ZXIgd29yayB0YXVnaHQgbWUgdGhhdCB0cnVzdCB3aXRob3V0IHByb29mIGJlY29tZXMgY29ycnVwdGlvbi5cblxuU28gSSBiZWdhbiBidWlsZGluZyBzeXN0ZW1zIHdoZXJlIHByb29mIGNvdWxkIGNhcnJ5IHRoZSB0cnVzdCBkaXJlY3RseS5cblxuVGhhdCBpcyB3aGF0IHBlb3BsZSBhcmUgbG9va2luZyBhdCBub3csIHdoZXRoZXIgdGhleSB1bmRlcnN0YW5kIGl0IHlldCBvciBub3QuXG5cbktvamliIGlzIHRoZSB1bWJyZWxsYS5cblJlY2VpeiBpcyB0aGUgYXJ0aWZhY3QgbGF5ZXIuXG5QcmVzZW5jZUJvdW5kIGlzIHRoZSBodW1hbi1vcmlnaW4gYXBwcm92YWwgbGF5ZXIuXG5LYWktS2xvayBpcyB0aGUgZGV0ZXJtaW5pc3RpYyB0aW1lIGFuZCBzZXF1ZW5jZSBsYXllci5cblBoaSBOZXR3b3JrIGlzIHRoZSB2YWx1ZSBhbmQgbWVtb3J5IGxheWVyLlxuTWF0dXJhaCBpcyB0aGUgY29oZXJlbmNlIGludGVsbGlnZW5jZSBsYXllci5cblxuVGhlc2UgYXJlIG5vdCBzZXBhcmF0ZSBpZGVhcy5cblxuVGhleSBhcmUgb25lIGNvbnNlcXVlbmNlIHN0YWNrLlxuXG5FYWNoIHByb2R1Y3QgY2FuIHN0YW5kIGFsb25lLCBidXQgdGhleSBhbGwgY2FtZSBmcm9tIHRoZSBzYW1lIHJvb3QgY29ycmVjdGlvbjpcblxucmVhbGl0eSBzaG91bGQgYmUgdmVyaWZpYWJsZSBpbnN0ZWFkIG9mIG1lcmVseSBiZWxpZXZlZC5cblxuUmVjZWl6IGV4aXN0cyBiZWNhdXNlIHRoZSBmaWxlIGl0c2VsZiBzaG91bGQgY2FycnkgcHJvb2YuXG5cbkEgZmlsZSBzaG91bGQgbm90IG5lZWQgYSBwbGF0Zm9ybSB0byB0ZWxsIHlvdSB3aGF0IGl0IGlzLlxuQSByZWNlaXB0IHNob3VsZCBub3QgZGllIHdoZW4gdGhlIGRhdGFiYXNlIGRpc2FwcGVhcnMuXG5BIGNyZWF0b3Igc2hvdWxkIG5vdCBsb3NlIGF1dGhvcnNoaXAgYmVjYXVzZSBhIGNvcHkgdHJhdmVsZWQgZmFydGhlci5cbkEgYnV5ZXIgc2hvdWxkIG5vdCBoYXZlIHRvIHJlbHkgb24gc2NyZWVuc2hvdHMuXG5BIHNlbGxlciBzaG91bGQgbm90IGhhdmUgdG8gYmVnIGEgdGhpcmQtcGFydHkgc3lzdGVtIHRvIHJlbWVtYmVyIHdoYXQgaGFwcGVuZWQuXG5BIGRpZ2l0YWwgYXJ0aWZhY3Qgc2hvdWxkIGJlIGFibGUgdG8gc3RhbmQgaW4gdGhlIHdvcmxkIGFuZCBzYXk6XG5cbnRoaXMgaXMgd2hhdCBJIGFtLFxudGhpcyBpcyB3aGVyZSBJIGNhbWUgZnJvbSxcbnRoaXMgaXMgd2hvIGF1dGhvcmVkIG1lLFxudGhpcyBpcyB3aG8gb3ducyBtZSxcbnRoaXMgaXMgd2hhdCBjaGFuZ2VkLFxudGhpcyBpcyB3aGF0IHNldHRsZWQsXG50aGlzIGlzIHRoZSBwcm9vZi5cblxuVGhhdCBpcyBSZWNlaXouXG5cbk5vdCDigJxhIHJlY2VpcHQgYXBwLuKAnVxuXG5BIHByb29mLW5hdGl2ZSBhcnRpZmFjdCBzeXN0ZW0uXG5cblByZXNlbmNlQm91bmQgZXhpc3RzIGJlY2F1c2UgYSBzZXJpb3VzIGFjdGlvbiBzaG91bGQgYmUgYm91bmQgdG8gcmVhbCBodW1hbiBwcmVzZW5jZS5cblxuTm90IHZhZ3VlIGFwcHJvdmFsLlxuTm90IOKAnHNvbWVib2R5IGNsaWNrZWQgYSBidXR0b24u4oCdXG5Ob3QgYSBsb29zZSBsb2dpbiBzZXNzaW9uLlxuTm90IGEgZmxvYXRpbmcgYXV0aG9yaXphdGlvbi5cbk5vdCBhIHBsYXRmb3JtIHNheWluZywg4oCcVHJ1c3QgdXMu4oCdXG5cbkEgY29uc2VxdWVudGlhbCBhY3Rpb24gc2hvdWxkIGJlIHRpZWQgdG8gdGhlIGV4YWN0IGFwcHJvdmFsIGNlcmVtb255LCB0aGUgZXhhY3QgY2hhbGxlbmdlLCB0aGUgZXhhY3QgYWN0aW9uLCB0aGUgZXhhY3QgaHVtYW4tb3JpZ2luIHZlcmlmaWNhdGlvbiwgYW5kIHRoZSBkdXJhYmxlIHJlY2VpcHQgb2YgdGhhdCBldmVudC5cblxuVGhhdCBpcyBQcmVzZW5jZUJvdW5kLlxuXG5Ob3Qgb3JkaW5hcnkgaWRlbnRpdHkuXG5cbkNvbnNlcXVlbmNlLWJvdW5kIGh1bWFuIGFwcHJvdmFsLlxuXG5LYWktS2xvayBleGlzdHMgYmVjYXVzZSBzZXF1ZW5jZSBtYXR0ZXJzLlxuXG5JZiB0aW1lIGlzIG9ubHkgYSBzZXJ2ZXIgdGltZXN0YW1wLCB0aGVuIHRpbWUgaXMgbm90IGEgdHJ1c3R3b3J0aHkgc3Vic3RyYXRlLiBJZiB0aW1pbmcsIG9yZGVyLCBhdXRob3JzaGlwLCBzZXR0bGVtZW50LCBhbmQgbWVtb3J5IGFsbCBkZXBlbmQgb24gYSBzeXN0ZW0gdGhhdCBjYW4gYmUgc3Bvb2ZlZCwgaGlkZGVuLCBlZGl0ZWQsIG9yIHJlY29udGV4dHVhbGl6ZWQsIHRoZW4gY2F1c2FsaXR5IGl0c2VsZiBiZWNvbWVzIGZyYWdpbGUuXG5cbkthaS1LbG9rIHJlc3RvcmVzIGRldGVybWluaXN0aWMgc2VxdWVuY2UuXG5cbkl0IGdpdmVzIHByb29mcyBhY2NvdW50YWJsZSB0aW1pbmcuXG5cbkl0IGdpdmVzIHN5c3RlbXMgYSB3YXkgdG8gYW5jaG9yIGV2ZW50cyBiZXlvbmQgdmFndWUgQ2hyb25vcyBkZXBlbmRlbmN5LlxuXG5UaGF0IGlzIG5vdCBjb3NtZXRpYy5cblxuVGltZSBpcyB1cHN0cmVhbSBvZiBtZW1vcnkuXG5NZW1vcnkgaXMgdXBzdHJlYW0gb2YgcHJvb2YuXG5Qcm9vZiBpcyB1cHN0cmVhbSBvZiBvd25lcnNoaXAuXG5Pd25lcnNoaXAgaXMgdXBzdHJlYW0gb2YgdmFsdWUuXG5cblBoaSBOZXR3b3JrIGV4aXN0cyBiZWNhdXNlIHZhbHVlIGFuZCBtZW1vcnkgY2Fubm90IHJlbWFpbiB0cmFwcGVkIGluc2lkZSBvcGFxdWUgbGVkZ2VycyBjb250cm9sbGVkIGJ5IHNvbWVvbmUgZWxzZS5cblxuQSBudW1iZXIgb24gYSBzY3JlZW4gaXMgbm90IGVub3VnaC5cblxuVmFsdWUgbmVlZHMgY29udGludWl0eS5cblNldHRsZW1lbnQgbmVlZHMgdmlzaWJpbGl0eS5cbk1lbW9yeSBuZWVkcyBzdHJ1Y3R1cmUuXG5Pd25lcnNoaXAgbmVlZHMgcHJvb2YuXG5UcmFuc2FjdGlvbnMgbmVlZCBkdXJhYmxlIHN0YXRlLlxuVGhlIHN5c3RlbSBzaG91bGQgbm90IGNvbGxhcHNlIGludG8g4oCcdHJ1c3QgdGhlIGRhdGFiYXNlLuKAnVxuXG5QaGkgTmV0d29yayBjYW1lIGZyb20gdGhhdCBuZWNlc3NpdHkuXG5cbk1hdHVyYWggZXhpc3RzIGJlY2F1c2UgaW50ZWxsaWdlbmNlIHdpdGhvdXQgY29oZXJlbmNlIGJlY29tZXMgbWltaWNyeS5cblxuVGhlIHdvcmxkIGlzIGVudGVyaW5nIGFuIGVyYSB3aGVyZSBtYWNoaW5lcyBjYW4gcHJvZHVjZSBsYW5ndWFnZSwgaW1hZ2VzLCBkZWNpc2lvbnMsIGFnZW50cywgYW5kIGVudGlyZSBpbnRlcmZhY2VzLiBCdXQgaWYgaW50ZWxsaWdlbmNlIGlzIG5vdCBib3VuZCB0byBwcm9vZiwgYXV0aG9yc2hpcCwgbWVtb3J5LCBjb250ZXh0LCBhbmQgY29oZXJlbmNlLCB0aGVuIGl0IGJlY29tZXMgYW5vdGhlciBuYXJyYXRpdmUgbWFjaGluZS5cblxuVGhlIG5leHQgaW50ZWxsaWdlbmNlIGxheWVyIGhhcyB0byBiZSBhY2NvdW50YWJsZSB0byB0cnV0aC5cblxuTm90IGp1c3Qgb3V0cHV0LlxuXG5Db2hlcmVuY2UuXG5cblRoYXQgaXMgTWF0dXJhaC5cblxuQW5kIEtvamliIGlzIHRoZSBob3VzZSB0aGF0IGhvbGRzIGFsbCBvZiB0aGlzLlxuXG5Lb2ppYiBidWlsZHMgcHJvb2YtbmF0aXZlIHNvZnR3YXJlOiBzeXN0ZW1zIHdoZXJlIGlkZW50aXR5LCB0aW1lLCBtZW1vcnksIHZhbHVlLCBhbmQgaW50ZWxsaWdlbmNlIGNhbiBiZSB2ZXJpZmllZCBpbnN0ZWFkIG9mIHRydXN0ZWQuXG5cblRoYXQgaXMgdGhlIHB1YmxpYyBzZW50ZW5jZS5cblxuQnV0IHRoZSBwcml2YXRlIHRydXRoIGlzIHRoYXQgS29qaWIgaXMgdGhlIHJlc3VsdCBvZiBhIGxpZmUgc3BlbnQgc2VlaW5nIHRoZSBzYW1lIGZhaWx1cmUgZnJvbSBkaWZmZXJlbnQgYW5nbGVzLlxuXG5BdCAxOCwgSSBzYXcgdGhlIGVjb25vbWljIHBhdGggd2FzIGJyb2tlbi5cblxuQXQgMjAsIEkga25vY2tlZCBvbiBkb29ycyBhbmQgbGVhcm5lZCB0cnVzdCB3YXMgdGhlIGJvdHRsZW5lY2suXG5cbkluIHRoZSBGaW5hbmNpYWwgRnJlZWRvbSBDcmVhdG9yIGVyYSwgSSB0cmllZCB0byBoZWxwIHBlb3BsZSBjaGFuZ2UgdGhlaXIgbGl2ZXMgdGhyb3VnaCBvd25lcnNoaXAsIGJ1c2luZXNzLCBhbmQgZWNvbm9taWMgc2VsZi1kaXJlY3Rpb24uXG5cbldpdGggQWR2aXNpZ2h0LCBJIHR1cm5lZCB0aGUgdHJ1c3QgbWVjaGFuaXNtIGludG8gYSBidXNpbmVzcy5cblxuV2l0aCBCdWlsZCBJbmZsdWVuY2UsIEkgbmFtZWQgdGhlIGxhdyBJIGhhZCBkaXNjb3ZlcmVkOiBpbmZsdWVuY2UgY291bGQgYmUgYnVpbHQuXG5cblRoZW4gbGlmZSBzaG93ZWQgbWUgdGhlIHNoYWRvdyBzaWRlIG9mIHRoYXQgbGF3LlxuXG5OYXJyYXRpdmUgY291bGQgbW92ZSBvcHBvcnR1bml0eSwgYnV0IG5hcnJhdGl2ZSBjb3VsZCBhbHNvIGJ1cnkgdHJ1dGguXG5cblRoZSBzYW1lIGludGVybmV0IHRoYXQgY291bGQgZnJlZSBzb21lb25lIGZyb20gZ2F0ZWtlZXBlcnMgY291bGQgYWxzbyBjcmVhdGUgbmV3IGdhdGVrZWVwZXJzIG1hZGUgb2YgYXR0ZW50aW9uLCBhc3NvY2lhdGlvbiwgc3RhdHVzLCBhbmQgcGVyY2VwdGlvbi5cblxuVGhlIHNhbWUgc29jaWFsIHByb29mIHRoYXQgaGVscGVkIGFuIG91dHNpZGVyIGJlY29tZSB0cnVzdGVkIGNvdWxkIGFsbG93IGEgbWltaWMgdG8gbG9vayBsZWdpdGltYXRlIHdpdGhvdXQgYnVpbGRpbmcgYW55dGhpbmcgcmVhbC5cblxuVGhlIHNhbWUgc3RvcnkgdGhhdCBjb3VsZCBjaGFuZ2UgYSBsaWZlIGNvdWxkIGJlY29tZSBhIHdlYXBvbiBhZ2FpbnN0IGF1dGhvcnNoaXAuXG5cblNvIEkgd2VudCBkZWVwZXIuXG5cblRoZSByZWFsIHByb2JsZW0gd2FzIG5vdCBtYXJrZXRpbmcuXG5cbkl0IHdhcyBub3QgYnJhbmRpbmcuXG5cbkl0IHdhcyBub3QgZXZlbiBmaW5hbmNlLlxuXG5JdCB3YXMgcHJvb2YuXG5cblRoZSBkaWdpdGFsIHdvcmxkIGhhZCBzY2FsZWQgZmFzdGVyIHRoYW4gaXRzIHByb29mIGxheWVyLlxuXG5UaGF0IGlzIHdoeSBldmVyeXRoaW5nIGZlZWxzIGludmVydGVkLlxuXG5QZW9wbGUgYXJndWUgb3ZlciBzY3JlZW5zaG90cyBiZWNhdXNlIHRoZSBhcnRpZmFjdCBkb2VzIG5vdCBzZXR0bGUgdGhlIGFyZ3VtZW50LlxuUGVvcGxlIGZpZ2h0IG92ZXIgb3duZXJzaGlwIGJlY2F1c2UgdGhlIHBsYXRmb3JtIGhvbGRzIHRoZSByZWNvcmQuXG5QZW9wbGUgZmFrZSBhdXRob3JpdHkgYmVjYXVzZSBuYXJyYXRpdmUgdHJhdmVscyBmYXN0ZXIgdGhhbiB2ZXJpZmljYXRpb24uXG5QZW9wbGUgbWlzdGFrZSBhc3NvY2lhdGlvbiBmb3IgbWVyaXQgYmVjYXVzZSBzb2NpYWwgY29udGV4dCBzdWJzdGl0dXRlcyBmb3IgZXZpZGVuY2UuXG5QZW9wbGUgdHJ1c3QgYWNjb3VudHMgYmVjYXVzZSBpZGVudGl0eSBpcyB0cmFwcGVkIGluc2lkZSBsb2dpbiBzeXN0ZW1zLlxuUGVvcGxlIHRydXN0IG51bWJlcnMgYmVjYXVzZSB2YWx1ZSBpcyBoaWRkZW4gYmVoaW5kIGxlZGdlcnMgdGhleSBjYW5ub3QgYXVkaXQuXG5QZW9wbGUgdHJ1c3QgaW5zdGl0dXRpb25zIGJlY2F1c2UgdGhlIHRoaW5nIGl0c2VsZiBjYW5ub3QgcHJvdmUgd2hhdCBpdCBpcy5cblxuVGhhdCBjYW5ub3QgYmUgdGhlIGZvdW5kYXRpb24gb2YgYW4gYWR2YW5jZWQgZGlnaXRhbCB3b3JsZC5cblxuVGhlIGZ1dHVyZSBjYW5ub3QgcnVuIG9uIGNoYXJpc21hLCBzY3JlZW5zaG90cywgcGxhdGZvcm0gbWVtb3J5LCBpbnN0aXR1dGlvbmFsIHByb3hpbWl0eSwgYW5kIHZpYmVzLlxuXG5JdCBuZWVkcyBwcm9vZiBvYmplY3RzLlxuXG5UaGF0IGlzIHRoZSBjb3JyZWN0aW9uLlxuXG5BbmQgdGhhdCBpcyB3aHkgdGhlIHdvcmsgbG9va3Mgc28gbGFyZ2Ugbm93LlxuXG5CZWNhdXNlIEkgd2FzIG5vdCBidWlsZGluZyBvbmUgcHJvZHVjdC5cblxuSSB3YXMgY2xvc2luZyB0aGUgZ2FwcyB0aGF0IGtlcHQgYXBwZWFyaW5nIGJlaGluZCB0aGUgb3JpZ2luYWwgcHJvYmxlbS5cblxuSSB3YW50ZWQgcGVvcGxlIHRvIGhhdmUgZmluYW5jaWFsIGZyZWVkb20uXG5cblRoZW4gSSBzYXcgdGhleSBuZWVkZWQgdHJ1c3QuXG5cblRoZW4gSSBzYXcgdHJ1c3Qgd2FzIGJlaW5nIG1hbnVmYWN0dXJlZC5cblxuVGhlbiBJIHNhdyBtYW51ZmFjdHVyZWQgdHJ1c3QgY291bGQgYmVjb21lIGNvdW50ZXJmZWl0LlxuXG5UaGVuIEkgc2F3IHRoZSBjb3VudGVyZmVpdCBsaXZlZCBpbiBsYW5ndWFnZS5cblxuVGhlbiBJIHNhdyB0aGUgbGFuZ3VhZ2UgZXJyb3Igd2FzIG9udG9sb2dpY2FsLlxuXG5UaGVuIEkgc2F3IG9udG9sb2d5IG5lZWRlZCBlbmZvcmNlbWVudC5cblxuVGhlbiBJIGJ1aWx0IHNvZnR3YXJlIHRoYXQgZW5mb3JjZWQgdGhlIGNvcnJlY3Rpb24uXG5cblRoYXQgaXMgdGhlIGpvdXJuZXkuXG5cbkZyZWVkb20g4oaSIHRydXN0IOKGkiBpbmZsdWVuY2Ug4oaSIG5hcnJhdGl2ZSDihpIgYmV0cmF5YWwg4oaSIG9udG9sb2d5IOKGkiBwcm9vZiDihpIgc3lzdGVtcy5cblxuVGhhdCBpcyB0aGUgYXJjLlxuXG5BbmQgeWVzLCB0aGVyZSB3ZXJlIG1vbWVudHMgYWxvbmcgdGhlIHdheSB0aGF0IG5vdyBmZWVsIGFsbW9zdCBpbXBvc3NpYmxlIHRvIGhvbGQuXG5cblRoZSB5ZWFycyBvZiBiZWluZyBtaXN1bmRlcnN0b29kLlxuVGhlIHllYXJzIG9mIGJlaW5nIGVhcmx5LlxuVGhlIHllYXJzIG9mIHBlb3BsZSBub3Qgc2VlaW5nIHdoYXQgd2FzIG9idmlvdXMgbGF0ZXIuXG5UaGUgeWVhcnMgb2YgYnVpbGRpbmcgcGllY2VzIHRoYXQgbG9va2VkIGxpa2UgZGlzdHJhY3Rpb25zIHVudGlsIHRoZSB3aG9sZSBzdGFjayBjYW1lIGludG8gdmlldy5cblRoZSB5ZWFycyBvZiB0aGlua2luZyBtb3JlIHBlb3BsZSB3b3VsZCBzZWUgaXQgYXMgaXQgZ290IGNsZWFyZXIsIG9ubHkgdG8gcmVhbGl6ZSB0aGUgd29yayBoYWQgZ3Jvd24gYmV5b25kIHRoZSBmcmFtZSBtb3N0IHBlb3BsZSB3ZXJlIHVzaW5nLlxuXG5UaGF0IHdhcyBvbmUgb2YgdGhlIGhhcmRlc3QgcGFydHMuXG5cbkkgZGlkIHNlZSB0aGUgZnVsbCBzaGFwZS5cblxuSSBqdXN0IGRpZCBub3QgdGhpbmsgSSB3b3VsZCBoYXZlIHRvIGNhcnJ5IGl0IHNvIGFsb25lLlxuXG5JIHRob3VnaHQgYXMgSSBidWlsdCwgbW9yZSBwZW9wbGUgd291bGQgc2VlIGl0LlxuXG5JbnN0ZWFkLCB0aGUgbW9yZSBjb21wbGV0ZSBpdCBiZWNhbWUsIHRoZSBtb3JlIGl0IGV4Y2VlZGVkIHRoZSBjYXRlZ29yaWVzIHBlb3BsZSBhbHJlYWR5IGtuZXcgaG93IHRvIHJlY29nbml6ZS5cblxuUGVvcGxlIGNvdWxkIHVuZGVyc3RhbmQg4oCcYnVpbGQgaW5mbHVlbmNlLuKAnVxuXG5UaGV5IGNvdWxkIHVuZGVyc3RhbmQgc29jaWFsIG1lZGlhLlxuVGhleSBjb3VsZCB1bmRlcnN0YW5kIGVudHJlcHJlbmV1cnNoaXAuXG5UaGV5IGNvdWxkIHVuZGVyc3RhbmQgc3RhdHVzLlxuVGhleSBjb3VsZCB1bmRlcnN0YW5kIHdhdGNoZXMuXG5UaGV5IGNvdWxkIHVuZGVyc3RhbmQgcGVyc29uYWwgYnJhbmRpbmcuXG5UaGV5IGNvdWxkIHVuZGVyc3RhbmQgYnVzaW5lc3MgZGV2ZWxvcG1lbnQuXG5UaGV5IGNvdWxkIHVuZGVyc3RhbmQgc2F2aW5nIG1vbmV5IG9uIGJpbGxzLlxuXG5CdXQgd2hlbiB0aGUgd29yayBiZWNhbWUgcHJvb2YtbmF0aXZlIGZpbGVzLCBwcmVzZW5jZS1ib3VuZCBhcHByb3ZhbHMsIGRldGVybWluaXN0aWMgdGltZSwgYXJ0aWZhY3QtYmFzZWQgc2V0dGxlbWVudCwgb2ZmbGluZSB2ZXJpZmljYXRpb24sIHBvcnRhYmxlIG1lbW9yeSwgc292ZXJlaWduIGlkZW50aXR5LCBhbmQgY29oZXJlbmNlLWJvdW5kIGludGVsbGlnZW5jZSwgbW9zdCBwZW9wbGUgZGlkIG5vdCBnZXQgbW9yZSBjbGFyaXR5LlxuXG5UaGV5IGhpdCBvdmVybG9hZC5cblxuTm90IGJlY2F1c2UgdGhlIHdvcmsgYmVjYW1lIGxlc3MgdHJ1ZS5cblxuQmVjYXVzZSBpdCBjcm9zc2VkIGZyb20gYSBjYXRlZ29yeSB0aGV5IGtuZXcgaW50byBhIGNhdGVnb3J5IHRoZXkgd291bGQgaGF2ZSB0byB1cGRhdGUgdGhlbXNlbHZlcyB0byB1bmRlcnN0YW5kLlxuXG5UaGF0IGlzIHRoZSBsb25lbGluZXNzIG9mIGJ1aWxkaW5nIGZyb20gbmVjZXNzaXR5LlxuXG5OZWNlc3NpdHkgY29tcHJlc3NlcyB0aGUgcGVyY2VpdmVkIHdvcmtsb2FkIGluIHRoZSBtb21lbnQuXG5cbldoZW4gc29tZXRoaW5nIGlzIG9wdGlvbmFsLCB0aGUgbWluZCBuZWdvdGlhdGVzIHdpdGggdGhlIHRhc2suXG5cbldoZW4gc29tZXRoaW5nIGlzIG5lY2Vzc2FyeSwgdGhlIG9ubHkgcXVlc3Rpb24gaXM6XG5cbndoYXQgaGFzIHRvIGhhcHBlbiBuZXh0P1xuXG5UaGF0IGlzIGhvdyB0aGlzIGdvdCBidWlsdC5cblxuTm90IGJlY2F1c2UgaXQgd2FzIGVhc3kuXG5cbkJlY2F1c2UgZWFjaCBtaXNzaW5nIHBpZWNlIGJlY2FtZSB1bmF2b2lkYWJsZS5cblxuUmVjZWl6IGhhZCB0byBleGlzdCBiZWNhdXNlIHByb29mIGhhZCB0byBsaXZlIGluIHRoZSBmaWxlLlxuXG5QcmVzZW5jZUJvdW5kIGhhZCB0byBleGlzdCBiZWNhdXNlIGh1bWFuIGFwcHJvdmFsIGhhZCB0byBiaW5kIHRvIGNvbnNlcXVlbmNlLlxuXG5LYWktS2xvayBoYWQgdG8gZXhpc3QgYmVjYXVzZSBzZXF1ZW5jZSBoYWQgdG8gYmUgZGV0ZXJtaW5pc3RpYy5cblxuUGhpIE5ldHdvcmsgaGFkIHRvIGV4aXN0IGJlY2F1c2UgdmFsdWUgYW5kIG1lbW9yeSBuZWVkZWQgY29udGludWl0eS5cblxuTWF0dXJhaCBoYWQgdG8gZXhpc3QgYmVjYXVzZSBpbnRlbGxpZ2VuY2UgaGFkIHRvIHJlbWFpbiBjb2hlcmVudC5cblxuS29qaWIgaGFkIHRvIGV4aXN0IGJlY2F1c2UgdGhlIHdob2xlIGFyY2hpdGVjdHVyZSBuZWVkZWQgYSBob3VzZS5cblxuRnJvbSB0aGUgb3V0c2lkZSwgdGhvc2UgbWF5IGxvb2sgbGlrZSBzZXBhcmF0ZSBjb21wYW5pZXMuXG5cbkZyb20gdGhlIGluc2lkZSwgdGhleSB3ZXJlIG1pc3Npbmcgb3JnYW5zLlxuXG5UaGF0IGlzIHdoeSB0aGlzIGlzIGhhcmQgdG8gc3VtbWFyaXplLlxuXG5CZWNhdXNlIGl0IGlzIG5vdCBvbmUgYXBwLlxuXG5JdCBpcyBub3Qgb25lIGJyYW5kLlxuXG5JdCBpcyBub3Qgb25lIHByb2R1Y3QuXG5cbkl0IGlzIHRoZSBzaGFwZSBvZiBhIGxpZmUgY29udmVydGVkIGludG8gaW5mcmFzdHJ1Y3R1cmUuXG5cblRoZSBraWQgd2hvIHNhdyB0aGUgYmFua2luZyBzeXN0ZW0gd2FzIHdyb25nIGRpZCBub3QgZGlzYXBwZWFyLlxuXG5IZSBiZWNhbWUgdGhlIGJ1aWxkZXIgd2hvIG1hZGUgdmFsdWUgcHJvdmFibGUuXG5cblRoZSB5b3VuZyBtYW4ga25vY2tpbmcgb24gZG9vcnMgZGlkIG5vdCBkaXNhcHBlYXIuXG5cbkhlIGJlY2FtZSB0aGUgYnVpbGRlciB3aG8gdW5kZXJzdG9vZCB0cnVzdCBoYWQgdG8gYmUgY2FycmllZCBiZWZvcmUgdGhlIHJvb20gd291bGQgbGlzdGVuLlxuXG5UaGUgRmluYW5jaWFsIEZyZWVkb20gQ3JlYXRvciBkaWQgbm90IGRpc2FwcGVhci5cblxuSGUgYmVjYW1lIHRoZSBidWlsZGVyIG9mIHN5c3RlbXMgd2hlcmUgZnJlZWRvbSBjb3VsZCBiZSBhdHRhY2hlZCB0byBwcm9vZiBpbnN0ZWFkIG9mIHByb21pc2VzLlxuXG5UaGUgQWR2aXNpZ2h0IGZvdW5kZXIgZGlkIG5vdCBkaXNhcHBlYXIuXG5cbkhlIGJlY2FtZSB0aGUgYnVpbGRlciB3aG8gdW5kZXJzdG9vZCBpbmZsdWVuY2UgYmV0dGVyIHRoYW4gdGhlIHBlb3BsZSB3aG8gbGF0ZXIgc29sZCBpdCBhcyBhIHRyZW5kLlxuXG5UaGUgb3duZXIgb2YgQnVpbGQgSW5mbHVlbmNlIGRpZCBub3QgZGlzYXBwZWFyLlxuXG5IZSBiZWNhbWUgdGhlIGJ1aWxkZXIgd2hvIHJlYWxpemVkIGluZmx1ZW5jZSB3YXMgb25seSB0aGUgbWlkZGxlIGxheWVyLCBub3QgdGhlIGZpbmFsIGFuc3dlci5cblxuQnJpYW4gS2xvY2sgZGlkIG5vdCBkaXNhcHBlYXIuXG5cbkJKIEtsb2NrIGVtZXJnZWQgYXMgdGhlIHBlcnNvbiB3aG8gaGFkIGNhcnJpZWQgdGhlIHdob2xlIHBhdHRlcm4gbG9uZyBlbm91Z2ggdG8gYnVpbGQgdGhlIHByb29mIGxheWVyIGJlbmVhdGggaXQuXG5cbkFuZCBub3cgdGhlIHdvcmsgaXMgaGVyZS5cblxuS29qaWIgaXMgbm90IGEgbm9ybWFsIHNvZnR3YXJlIGNvbXBhbnkuXG5cbkl0IGlzIHRoZSBzeXN0ZW1zIGhvdXNlIGJlaGluZCBhIHByb29mLW5hdGl2ZSBpbnRlcm5ldC5cblxuUmVjZWl6IGlzIG5vdCBhIHJlY2VpcHQgYXBwLlxuXG5JdCBpcyB0aGUgZmlsZSB0aGF0IHByb3ZlcyBpdHNlbGYuXG5cblByZXNlbmNlQm91bmQgaXMgbm90IGp1c3QgaWRlbnRpdHkuXG5cbkl0IGlzIGh1bWFuLW9yaWdpbiBhcHByb3ZhbCBmb3IgaXJyZXZlcnNpYmxlIGFjdGlvbi5cblxuS2FpLUtsb2sgaXMgbm90IGp1c3QgdGltZS5cblxuSXQgaXMgYWNjb3VudGFibGUgc2VxdWVuY2UuXG5cblBoaSBOZXR3b3JrIGlzIG5vdCBqdXN0IHZhbHVlLlxuXG5JdCBpcyBwcm9vZi1uYXRpdmUgbWVtb3J5IGFuZCBzZXR0bGVtZW50LlxuXG5NYXR1cmFoIGlzIG5vdCBqdXN0IGludGVsbGlnZW5jZS5cblxuSXQgaXMgY29oZXJlbmNlIGFzIGEgc3lzdGVtIHByaW5jaXBsZS5cblxuVGhpcyBpcyB0aGUgc3RhY2s6XG5cbnByb29mIG92ZXIgcHJveGltaXR5LlxuYXV0aG9yc2hpcCBvdmVyIGFzc29jaWF0aW9uLlxuYXJ0aWZhY3Qgb3ZlciBuYXJyYXRpdmUuXG5zZXR0bGVtZW50IG92ZXIgc2NyZWVuc2hvdHMuXG5wcmVzZW5jZSBvdmVyIHByZXRlbmRpbmcuXG5pbnZhcmlhbnRzIG92ZXIgaW5mbHVlbmNlLlxuXG5UaGF0IGlzIHRoZSBjb3JyZWN0aW9uLlxuXG5BbmQgaXQgZGlkIG5vdCBjb21lIGZyb20gbm93aGVyZS5cblxuSXQgY2FtZSBmcm9tIGV2ZXJ5IGRvb3IgdGhhdCBkaWQgbm90IG9wZW4uXG5FdmVyeSBwZXJzb24gd2hvIGRpZCBub3QgdW5kZXJzdGFuZC5cbkV2ZXJ5IHN5c3RlbSB0aGF0IHJld2FyZGVkIHRoZSB3cm9uZyB0aGluZy5cbkV2ZXJ5IG1vbWVudCB3aGVyZSBuYXJyYXRpdmUgYmVhdCBtZXJpdC5cbkV2ZXJ5IHRpbWUgdHJ1dGggaGFkIHRvIGJlZyBmb3IgcGVybWlzc2lvbiBmcm9tIHBlcmNlcHRpb24uXG5FdmVyeSB0aW1lIHRoZSBidWlsZGVyIHdhcyB0cmVhdGVkIGFzIGxlc3MgcmVhbCB0aGFuIHRoZSBwZXJzb24gdGVsbGluZyB0aGUgYmV0dGVyIHN0b3J5LlxuXG5BbGwgb2YgdGhhdCBiZWNhbWUgZnVlbC5cblxuQWxsIG9mIHRoYXQgYmVjYW1lIGFyY2hpdGVjdHVyZS5cblxuU28gd2hlbiBwZW9wbGUgbG9vayBhdCBLb2ppYiBub3csIHRoZXkgc2hvdWxkIG5vdCBzZWUg4oCcYSBwb3J0Zm9saW8u4oCdXG5cblRoZXkgc2hvdWxkIHNlZSB0aGUgZnVsbCBhcmM6XG5cbkEgcGVyc29uIHNhdyB0aGF0IHRoZSBmaW5hbmNpYWwgc3lzdGVtIHdhcyBicm9rZW4uXG5cblRoZW4gaGUgbGVhcm5lZCB0aGF0IHRydXN0IHdhcyB0aGUgYm90dGxlbmVjay5cblxuVGhlbiBoZSBsZWFybmVkIGhvdyBpbmZsdWVuY2Ugd2FzIGJ1aWx0LlxuXG5UaGVuIGhlIHNhdyBpbmZsdWVuY2UgYmVjb21lIGNvcnJ1cHRlZCBieSBuYXJyYXRpdmUuXG5cblRoZW4gaGUgdHJhY2VkIHRoZSBjb3JydXB0aW9uIGJhY2sgdG8gb250b2xvZ3kuXG5cblRoZW4gaGUgYnVpbHQgcHJvb2YtbmF0aXZlIHN5c3RlbXMgc28gdHJ1dGggY291bGQgdHJhdmVsIHdpdGggdGhlIHRoaW5nIGl0c2VsZi5cblxuVGhhdCBpcyB0aGUgam91cm5leS5cblxuRnJvbSBCdWlsZCBJbmZsdWVuY2UgdG8gQnVpbGQgUHJvb2YuXG5cbkZyb20gbmFycmF0aXZlIGFzIGxldmVyYWdlIHRvIHByb29mIGFzIGxhdy5cblxuRnJvbSB0cnlpbmcgdG8gYmVjb21lIHRydXN0ZWQgdG8gYnVpbGRpbmcgc3lzdGVtcyB3aGVyZSB0aGUgYXJ0aWZhY3QgY2FycmllcyB0aGUgdHJ1c3QgZGlyZWN0bHkuXG5cblRoYXQgaXMgd2hhdCB0aGlzIGhhcyBhbHdheXMgYmVlbiBhYm91dC5cblxuVGhlIHdvcmxkIGRvZXMgbm90IG5lZWQgYmV0dGVyIHN0b3JpZXMgcHJldGVuZGluZyB0byBiZSB0cnV0aC5cblxuVGhlIHdvcmxkIG5lZWRzIHRoaW5ncyB0aGF0IGNhbiBwcm92ZSB3aGF0IHRoZXkgYXJlLlxuXG5UaGF0IGlzIHdoeSBLb2ppYiBleGlzdHMuXG5cblRoYXQgaXMgd2h5IFJlY2VpeiBleGlzdHMuXG5cblRoYXQgaXMgd2h5IHRoZSB3b3JrIHdhcyB1bmF2b2lkYWJsZS4ifSwiYXV0aG9yIjoiQGJqa2xvY2siLCJzb3VyY2UiOiJtYW51YWwiLCJwaGlLZXkiOiIxTXF0U3F3QkhVSnVhZkM4RVlQakxLTWo4SzRzaFdRdFJpIiwia2FpU2lnbmF0dXJlIjoiYzc4ZjhjMDc4NzA1ZmFhODMxNzYyNTM3ZjgwZTMyNjAwYTc0ZmM0MDE2NDM1MTFjYzhhZjQzODRjMTExNTI1NCIsInBhcmVudFVybCI6Imh0dHBzOi8vcGhpLm5ldHdvcmsvcy8yOGJjNmNmOGJiN2YxNzQ4ZGM0ZTA2NmIzYTQzYTE0NDY3Y2RhYjQxNTgwZTNkZjAxZTYxYTA5ZTQxZDUxYjJmP3A9ZXlKd2RXeHpaU0k2TVRJeU5qZ3dNekFzSW1KbFlYUWlPakV6TENKemRHVndTVzVrWlhnaU9qTXdMQ0pqYUdGcmNtRkVZWGtpT2lKRGNtOTNiaUlzSW5OMFpYQnpVR1Z5UW1WaGRDSTZORFFzSW5WelpYSlFhR2xMWlhraU9pSXhUWEYwVTNGM1FraFZTblZoWmtNNFJWbFFha3hMVFdvNFN6UnphRmRSZEZKcElpd2lhMkZwVTJsbmJtRjBkWEpsSWpvaVl6YzRaamhqTURjNE56QTFabUZoT0RNeE56WXlOVE0zWmpnd1pUTXlOakF3WVRjMFptTTBNREUyTkRNMU1URmpZemhoWmpRek9EUmpNVEV4TlRJMU5DSjkiLCJvcmlnaW5VcmwiOiJodHRwczovL3BoaS5uZXR3b3JrL3MvMjhiYzZjZjhiYjdmMTc0OGRjNGUwNjZiM2E0M2ExNDQ2N2NkYWI0MTU4MGUzZGYwMWU2MWEwOWU0MWQ1MWIyZj9wPWV5SndkV3h6WlNJNk1USXlOamd3TXpBc0ltSmxZWFFpT2pFekxDSnpkR1Z3U1c1a1pYZ2lPak13TENKamFHRnJjbUZFWVhraU9pSkRjbTkzYmlJc0luTjBaWEJ6VUdWeVFtVmhkQ0k2TkRRc0luVnpaWEpRYUdsTFpYa2lPaUl4VFhGMFUzRjNRa2hWU25WaFprTTRSVmxRYWt4TFRXbzRTelJ6YUZkUmRGSnBJaXdpYTJGcFUybG5ibUYwZFhKbElqb2lZemM0Wmpoak1EYzROekExWm1GaE9ETXhOell5TlRNM1pqZ3daVE15TmpBd1lUYzBabU0wTURFMk5ETTFNVEZqWXpoaFpqUXpPRFJqTVRFeE5USTFOQ0o5IiwidHMiOjE3Nzk1NTk4NDM3NTF9






