Tuesday, June 28, 2022

Re: USA Africa Dialogue Series - Re-reading the Canon. Lecture 1: Philosophy, Racist Ideology & Liberatory Pedagogy. A reflection on Kant & the canon problem

salimonu, your story about your grandmother and the notion of having your fate in your hands is so well said. i really enjloyed it.  i don't need to know yoruba to get your point, and furthermore, you provided the translation t o facilitate my understanding.
how much translation do we need in life to be able to relate to each other? kant wrote in german, which i understand badly. i read him, and you, and adepoju in english.
we can talk to each other. if we want to.
i don't understand why i couldn't tell my american kids your wonderful account of your grandmother, or why you would want to exclude kant from your own corpus of knowledge. not everything about kant is great, but we build on thinkers from the past, whereever they come from, and make of their thoughts our own. we share our thoughts, we don't think only in isolation. and we can share the thoughts of chinese philosophers or anyone else. why not?
and then we can sit down and argue, and make life go on
ken

kenneth harrow

professor emeritus

dept of english

michigan state university

517 803-8839

harrow@msu.edu


From: usaafricadialogue@googlegroups.com <usaafricadialogue@googlegroups.com> on behalf of Salimonu Kadiri <ogunlakaiye@hotmail.com>
Sent: Monday, June 27, 2022 3:00 PM
To: Salimonu Kadiri <ogunlakaiye@hotmail.com>; usaafricadialogue@googlegroups.com <usaafricadialogue@googlegroups.com>
Subject: Re: USA Africa Dialogue Series - Re-reading the Canon. Lecture 1: Philosophy, Racist Ideology & Liberatory Pedagogy. A reflection on Kant & the canon problem
 
​Your story about the Fraternity of Solace, a secular mission founded to help people overcome crisis - psychological, physical or spiritual is fantastic. I am mostly excited by your information that, "The mission was founded in the depths of escalating economic and security crisis in Nigeria. It operates through counselling and physical assistance to people in need." Thank you for your effort in persuading a doctor from jumping into the lagoon in Lagos to end his life. However, I am amused by your story that a doctor who was able to buy a car and employ a driver to whom he probably paid a minimum wage of N30,000 a month should have any reason to think of committing suicide because of what you termed depths of escalating economic and security crisis in Nigeria. Did the Doctor tell you why his life had collapsed and why he felt himself worthless despite being a doctor, owning a personal car and being able to employ a driver to drive him to places? How does counselling people help to curb the escalating economic and security crisis in Nigeria? If Pastor/Alhaji Kant's mission is to help people overcome economic and security crisis in Nigeria, what do Kant's missionaries live on, verses of Bible or Quran or some philosophical humbugs?

The greatest psycho-therapist in Yoruba history, my grandmother once told us her grandchildren, was ÒRÚNMÌLÀ, the IFÁ progenitor. She told us that when ÒRÚNMÌLÀ was at the town of ÌWÕ to marry, he was subjected to seven rigorous tests so as to determine his capability to be a husband and to maintain a wife. Despite the fact that ÒRÚNMÌLÀ endured the tests the last hurdle was the traditional tossing of four sectioned cola nut called OBÌ ÀBÀTÀ ALÁWÉ MERIN in Yoruba. To secure approval of the marriage with ÒRÚNMÌLÀ, two of the broken four sectioned cola nut must turn their face up while the other two should turn the face down. But when the broken four sectioned cola nut were tossed on the ground, each three turned the face up and one turned the face down, thus implying that ÒRÚMÌLÀ's marriage to the bride was not approved. ÒRÚMÌLÀ asked the attendants to close their eyes and before urging them to open their eyes again, he changed the positions of the broken and tossed four sectioned cola nut into two facing up and two facing down. When ÒRÚMÌLÀ was queried why he changed the positions of the tossed cola nuts he replied : Owó eni ni a fi ntún nkan ara eni sé, roughly meaning, you can change your fate with your own hands or to be more appropriate, your fate is your own hands. ÒRÚNMÌLÀ got his wife, euphemistically referred thenceforth to as ÌYÀ'WÕ, meaning the suffering in IWÕ. When it comes to the economic and industrial predicaments of Nigeria, I can relate to the philosophy of ÒRÚNMÌLÀ but not Kant because the fate of Nigeria is in hands of Nigerians.
S. Kadiri   


From: usaafricadialogue@googlegroups.com <usaafricadialogue@googlegroups.com> on behalf of Oluwatoyin Adepoju <ovdepoju@gmail.com>
Sent: 26 June 2022 11:07
To: usaafricadialogue <usaafricadialogue@googlegroups.com>
Subject: Re: USA Africa Dialogue Series - Re-reading the Canon. Lecture 1: Philosophy, Racist Ideology & Liberatory Pedagogy. A reflection on Kant & the canon problem
 
Na wa.

''Yes, Nigeria requires different kinds of knowledge to develop economically and industrially but that does not under any circumstance include knowledge of who was Kant and what he stood for. The economic and industrial underdevelopment of Nigeria today are caused by educated parasites, beset with irrelevant and useless knowledge, presiding over the nation's Ministries, Departments and Agencies. Disprove me if you think I am wrong. ''
Salimonu Kadiri

''A doctor had his driver stop at Lagos' Third Mainland Bridge. He got out of his car and climbed the railing, preparing to jump into the water,  as a crowd gathered. I approached him and wondered aloud why he would want to end his life,a great gift with infinite potential, a potential even greater than that of the stars, stars he can see but which cannot see him, a life vibrant in the fires of his inner life. How many lives could be blighted or lost if he, a healer, were to end his own life in a country where there were  so so few doctors?' I spoke gently and he listened.

 'What really is the problem? I asked. 'He told me his life had collapsed and he felt himself worthless. 'Really?' I queried. 'But many would be ecstatic to be in your position,' I told him, 'given that you are alive and healthy.' 'Come, let's talk about it,' I urged him.''

This is the founding story of the Fraternity of  Solace, a secular mission founded to help people overcome crisis, psychological, physical, spiritual. The founder, known only as God's Greatness Crowning, states that she  is inspired by her introduction  at the University of Lagos to the work of the German philosopher Immanuel Kant who celebrates the glory of living and the need to treat each person as having infinite value.

The mission was founded in the depths of escalating economic and security crisis in Nigeria. It  operates through counselling and physical assistance to people in need.

Berlin, 1945. The Second World War had come to a devastating end for the Axis Powers, led by Germany.  After months of terrific bombardment  had reduced much of the city to rubble, the conquering US and Russian armies had converged in Berlin,  the German capital, with the capture of Adolf Hitler, the German leader, one of their  primary goals. 

''In the midst of the life and death struggle of Berliners within this hell, I thought, more than once, of taking my life,'' states Klaus Johannan, ''having endured rape, starvation and homelessness. But at night, sleeping on the street, with the sky as the only roof over me, the stars would enthrall me, a magnificent display for everyone, and for me alone. I felt free, lifted into their timeless brilliance,  liberated from the agonies of earth, projected into eternity. In this way, I gained the strength to survive day after day.''

''After much struggle, I became a local government chairman,'' states Niyi Akande,  of his life as a politician in Nigeria's Ekiti State. ''I experienced intense pressure,'' he discloses, ''to share the state government's allocations to the local government among a network of supporters and other powerful figures. It was a constant battle with my conscience'' he describes. ''My heart  kept struggling between the idea of how to behave in a way that would benefit the larger body of those  I was elected to be responsible for and those few associates who insisted that without them I would not have been elected, the many and the few, the electorate and the enablers''.

''As a new employee at one of Nigeria's power distribution companies'', states Nicholas Ekundayo, ''I was appalled at the practice of replacing fuses in transformers with copper wires  in order to sell the fuses, leading to the copper wire experiencing burn out and causing recurrent power outages in the affected communities.''

''Why can't we, the custodians of this resource people depend so much on, not behave in a way we would like to become a normal way of life, even a law, for everyone? A way of life benefiting everybody?"

All these stories are fictional scenarios evoking the creative possibilities of Kantian thought. The story of the doctor about to take his life on Third Mainland Bridge adapts  a report of an actual suicide on the bridge in visualising how the story could have been different, drawing on Kant's great meditation on self and cosmos, time and infinity, within the context of the celestial bodies in Critique of Pure Reason as well as Kant's ethical philosophy of treating human beings as ends in themselves, not means to ends, an idea suggesting the infinite creative potential of the human person, a potential dramatised in the meditation on self and cosmos.

The account of a woman, Kluas Johannan,  in 1945 Berlin,  is inspired by Annemarie Schimmel's story of how the Islamic mystical writings of Abdullah-i Ansari inspired her will live to live in the chaos of 1945 Berlin. This scenario is reworked  in terms of Kant's meditation on self and cosmos in relation to the stars in Critique of Practical Reason.

Schimmel's account is deeply memorable:

It was a night of despair, a cold October night, 1945, in Germany. We were sitting in a dirty railway station, lucky to have found at least one place to spend the night after long and uncomfortable travelling. People around me tried to sleep, or talked about the horrors of the war, of imprisonment, or hunger...I took from my coat's pocket a small book that had survived wartime Berlin, deportation, and internment, and had given me unending consolation during those years [Abdullah-i Ansari's] Munajat which I had found in the Berlin print of 1924 sometime during the war. 


Once more I delved into its depths, scribbled some rhyming translations of its pithy sayings and verses between the lines, and was carried away from the ''world'' in its ugliest aspects into the realm of peace [through]the wisdom of a searching and suffering man who poured out his feelings in the presence of his Lord like little sighs... 


( From Ibn 'Ata' Illah, The Book of Wisdom; Kwaja Abdullah Ansari, Intimate Conversations. Translated by Victor Danner and Wheeler Thackston. Preface by Annemaire Schimmel. Paulist, Press, 1978, xii-xiii).

 


The narrative of the local government chairman Niyi Akande adapts my expectations of the logic of corruption in Nigeria in terms of the values that shape behaviour in such contexts. The central inspiring idea in that story is Kant's famous ethical concept, the Categorical Imperative, which I understand may be stated as  ''behave in such a way as you would wish to become a universal law in a world you would want to live in.''

The picture of Nicholas Ekundayo at a Nigerian power distribution company is reimagined from an actual account of one of the reasons why Nigerians suffer power outages. It reflects on the internal world, the universe of motivations, of people who engage in the negative practices described, in terms of possible motivations to do things differently, an imaginative reworking of the implications of Kant's Categorical Imperative.

Development and underdevelopment embrace the entire spectrum of quality of life, within and beyond material well being, implicating how the material, the psychological and the social shape each other.

Nigeria is underdeveloped significantly beceause of the values of those who manage it. Philosophy is about values, about reflecting on possibilities of how to live, and of the logic of living, in order to arrive at optimum existence. 

If those who manage the country were more motivated by the lofty values represented by thought like that of Kant, the country would become paradise.

Those fictional scenarios can be multiplied indefinitely, drawing from different Kantian ideas and texts as inspiration, relating their inspiring values to actual historical and contemporary contexts in Nigeria and across the world.

thanks

toyin

On Sat, 25 Jun 2022 at 11:25, Salimonu Kadiri <ogunlakaiye@hotmail.com> wrote:
​And what did you mean when you wrote this : MOST KNOWLEDGE, EVEN IN SCIENCES, IS NOT ABOUT PROVIDING SUCH BASIC INFRASTRUCTURAL AMENITIES AS WATER AND ELECTRICITY, NOR ABOUT ADDRESSING ENERGY NEEDS, INVALUABLE AS ALL THOSE ARE. Feigning Solomon and Sampson in one incredible delusion do not constitute a serious analysis of the different kinds of knowledge required by humanity. Yes, Nigeria requires different kinds of knowledge to develop economically and industrially but that does not under any circumstance include knowledge of who was Kant and what he stood for. The economic and industrial underdevelopment of Nigeria today are caused by educated parasites, beset with irrelevant and useless knowledge, presiding over the nation's Ministries, Departments and Agencies. Disprove me if you think I am wrong. 

​S. Kadiri

From: usaafricadialogue@googlegroups.com <usaafricadialogue@googlegroups.com> on behalf of Oluwatoyin Adepoju <ovdepoju@gmail.com>
Sent: 23 June 2022 13:30
To: usaafricadialogue@googlegroups.com <usaafricadialogue@googlegroups.com>
Subject: Re: USA Africa Dialogue Series - Re-reading the Canon. Lecture 1: Philosophy, Racist Ideology & Liberatory Pedagogy. A reflection on Kant & the canon problem
 
Where did I write this

dismissing knowledge as a provider of basic infrastructural amenities..."

When a response to a serious analysis of the different kinds of knowledge required by humanity degenerates into fictional claims that such an analysis argues that knowledge is unnecessary for proving electricity, water and the likes, what's the point of trying to engage with such thinking?

I wonder why Kant is inspiring such extremist responses.

Thanks

Toyin


On Wed, Jun 22, 2022, 22:12 Salimonu Kadiri <ogunlakaiye@hotmail.com> wrote:
​Most educated Nigeria do not possess the knowledge required for the offices in which they are employed and heavily remunerated. Education, individually or collectively, is useless if it cannot lead us to produce what we need. The importance of education in Nigeria was first highlighted during the question time in the Federal Parliament in 1961 by Dr Nnamani who asked the government why there were still expatriate officers in the country despite Nigeria being independent. Answering on behalf of the government, Zana Bukar Dipcharima said that Nigerians were all around the world studying to acquire knowledge and, on their return, they would give Nigeria the manpower needed to turn our country into paradise on earth when educated returnees might have bombarded the abundant natural resources in the country with their knowledge. In fact, by 1964, all the ministries, departments and agencies had been taken over from expatriates by educated Nigerians and thereby gave credence to the aphorism that what Europeans could do, Nigerians could do it better. But as we have experienced hitherto, that aphorism is true only in the sense that educated Nigerians are much more ruthless in the exploitation of the uneducated Nigeria's masses than the European colonialists.

Most knowledge, even in the sciences, is not about providing such basic infrastructural amenities as water and electricity, nor about addressing energy needs invaluable as all those are - Oluwatoyin V. Adepoju. 

I would have considered Mr. Oluwatoyin Vincent Adepoju a serious Kant Evangelist for dismissing knowledge as a provider of basic infrastructural amenities were it not for his post on this forum on Wednesday, 19 September 2018, titled - Scholarship in a World of Poor Electricity : The Nigerian Example. Our 2022 Kant Evangelist who is now preaching to us that man does not need knowledge to produce basic infrastructural amenity as water and electricity wrote in 2018 : I have been struggling for days in my home in Lagos with trying to meet externally created and self-generated deadlines on a number of essays.
But there has been a blackout of electricity in our neighbourhood for days.
I have access to a number of online databases but the scope of my use of these information systems is limited by access to electricity.
I have to fall back on prints of essays since access to electronic copies of essays is challenged by poor electricity. How are Nigerian Scholars coping? This situation has not changed for decades. It is horrible. Is it possible to do ones best in such an environment as a Scholar or other creative who requires electricity? May God help Nigeria, Black people and Africa. Most educated Nigerians are fictional academics producing imaginary developments while parasitising on the collectively owned natural resources of Nigeria to the exclusion of the masses of Nigeria without conscience.
S. Kadiri


From: usaafricadialogue@googlegroups.com <usaafricadialogue@googlegroups.com> on behalf of Oluwatoyin Adepoju <ovdepoju@gmail.com>
Sent: 19 June 2022 01:14
To: usaafricadialogue@googlegroups.com <usaafricadialogue@googlegroups.com>
Subject: Re: USA Africa Dialogue Series - Re-reading the Canon. Lecture 1: Philosophy, Racist Ideology & Liberatory Pedagogy. A reflection on Kant & the canon problem
 
Most knowledge, even in the sciences, is not about providing such basic infrastructural amenities as water and electricity, nor about addressing energy needs, invaluable as all those are.

Kant is about issues that are both fundamental to human existence and beyond material well being, issues that persist no matter how materially comfortable people are, how technologically and socially developed their society is, questions that have shaped human thought since humanity became aware of itself in the midst of the perplexities of existence and which will continue to reverberate as long as the human being remains trapped within the confines of cognitive limitations, a creature who ventures into space and the depths of the sea, but cannot decisively answer the question of the source and logic of it's existence and of the universe in which they find themselves. 

Why are we here? 

Why does the universe exist?

Does the cosmos have a beginning?

Will it have an end?

Is there life after death?

Is there God?

To what degree can we answer these questions?

How should we live in the face of these perplexities?

To answer these questions, each society creates myths, religions, philosphies and responses in the arts, initiatives also shaping the sciences, efforts that stretch perhaps from the earliest people to the present, across the world.

Kant seems to have been a deeply religious person who once thought his Christian faith answered those questions.

He then began to look closely at that faith, wondering about the foundations of those things it claimed to know.

He concludes that such knowledge does not really exist. 

Belief in God, in the immortality of the soul, etc is a matter of faith, not knowledge, he argues, with particular force in A Critique of Pure Reason.

Kant's profound sensitivity to these ultimate questions drives his work, even as it's soaring power may be seen as shot through with a sense of frustration at not being able to go beyond the limitations of the mind in exploring these questions.

Some of the most powerful expressions of the human hunger for ultimate knowledge, for a grasp of the unity and purpose of the cosmos, are found in A Critique of Pure Reason, even as Kant argues that such knowledge is impossible on account of limitations created by the structure of the human mind and how it gains knowledge.

Kant's writings demonstrate some of the greatest expressions of wonder at the cosmos, a wonder he struggles to describe without invoking religious ideas, but, his description of encounter with phenomena that both make the human being feel small on account of their vastness and yet elevated through their inspirational power, the Sublime,  is an analogue of his sensitivity to cosmic immensity and his unfufilled hunger for greater understanding of it.

In his great reflection on time and eternity, mortality and im mortality, the minisculity of Earth within the temporal and spatial vastness of the celestial bodies, he is unable to escape  a spiritualist orientation, suggesting the shaping foundationality of his Christian background, as he projects an expectation to subsist into eternity, after the "flesh of my body has returned to the elements, having been imbued for a short while with vital force through an unknown process," as he states in Critique of Practical Reason.

My most intense encounter with the sacred has been at the Ogba forest in Benin-City, suffused by an awesome atmosphere described as demonstrating the presence of the goddess there, as such spiritual presences are to be found at every place where a river breaks ground for the first time, as the Ogba river does at that forest, as Benin spiritual belief was explained to me in connection with the forest.

How can I explain that experience, something I encountered before learning of the belief in a goddess there,a sense of presence that people recognised without performing any religious activity there, as when they went there to get  water or swim, a presence that was a part of the landscape?

"An invisible but majestic presence that inspires both dread and fascination and constitutes  the non-rational element of vital religion" sums up my experience beautifully, being a Webster dictionary definition of the term "numinous" as developed by Rodolf Otto in The Idea of the Holy, Otto being a deep Kant scholar, whose epochal book may be understood in relation to Kant on the Sublime , developing a similar thesis as Kant's through cupious examples from Western and Asian religions.

Kant cannot be for me simply a person from another century, from a different country, who held views that display a conceited ignorance about Africa, where I am from.

He is for me a fellow traveler, stranded in a location which he does not know how he got there, where he  is going, nor even why he exists in the first place, a person, who, in spite of his ignorance, which he mistook for knowledge, was  deeply insightful about the most fundamental of human psychological, spiritual and intellectual needs.

Thanks

Toyin




On Sat, Jun 18, 2022, 22:50 Salimonu Kadiri <ogunlakaiye@hotmail.com> wrote:
​ From Salimonu Kadiri.
This Kant thing reminds me of what the late and the greatest Nigerian labour leader, Pa Michael Imodu, once expressed in pidgin English while stating his disappointment over how the educated (?) Nigerian class caused the ruin of Nigeria. He said, "A no go school - e better for me, because people wey go school e no get sense. If them get sense, Nigeria e no go be like this. Them talk say Nigeria be giant of Africa when for my two eyes na dwarf goat of Africa a de see." This Kant knowledge is not about generating and distributing electricity to Nigerian households, it is not about refining crude oil for Nigerian domestic consumption and it is not about pumping potable water into every household in Nigeria etc. To me, whatever is said about Kant is just like talking loudly and saying nothing. If Pa Imodu were still alive, he would have retorted, "Waiting concern me about Kant, na him go bring light, water, food for chop, house for sleep?"
S. Kadiri   


From: usaafricadialogue@googlegroups.com <usaafricadialogue@googlegroups.com> on behalf of Oluwatoyin Adepoju <ovdepoju@gmail.com>
Sent: 18 June 2022 18:53
To: usaafricadialogue <USAAfricaDialogue@googlegroups.com>
Subject: Re: USA Africa Dialogue Series - Re-reading the Canon. Lecture 1: Philosophy, Racist Ideology & Liberatory Pedagogy. A reflection on Kant & the canon problem
 
Even better perhaps-

Kantian Professor of the Humanities.

According to one source, "Professor of the Humanities" is awarded for striking  achievement in various humanities disciplines.

Perhaps if I'm committed enough in broadening my scope, the award could even read "Kantian Professor of the Humanities, of Philosophy of Science and Social Media Studies"

Can you imagine that?!

One person carrying that load of award.

Toyin


On Sat, Jun 18, 2022, 16:59 Oluwatoyin Adepoju <ovdepoju@gmail.com> wrote:
Thanks, Gloria.

"Oluwatoyin Vincent Adepoju,  Kantian Professor and Chair in Social Media Studies.

A professorship awarded for  Adepoju's unusually innovative explorations of Kant, fine grained, multidisciplinary and multicultural studies bringing to a broad readership Kant's fellowship with humanity in pursuit of the most pressing questions of existence, doing this in terms of that most democratic of public platforms, social media, Adepoju's extensive publications in that medium making his work a landmark in new styles of scholarship at the entrance to a new millenium"


On Sat, Jun 18, 2022, 14:42 Emeagwali, Gloria (History) <emeagwali@ccsu.edu> wrote:
Professor of Kantian Studies
and Social Media, 
we look forward to your brilliance
and "geniusness" at the June 30 
conference, and beyond.



Professor Gloria Emeagwali
Prof. of History/African Studies, CCSU
africahistory.net; vimeo.com/ gloriaemeagwali
Recipient of the 2014 Distinguished Research
Excellence Award, Univ. of Texas at Austin;
2019 Distinguished Africanist Award
New York African Studies Association

From: usaafricadialogue@googlegroups.com <usaafricadialogue@googlegroups.com> on behalf of Oluwatoyin Adepoju <ovdepoju@gmail.com>
Sent: Saturday, June 18, 2022 3:34 AM
To: usaafricadialogue@googlegroups.com <usaafricadialogue@googlegroups.com>
Subject: Re: USA Africa Dialogue Series - Re-reading the Canon. Lecture 1: Philosophy, Racist Ideology & Liberatory Pedagogy. A reflection on Kant & the canon problem
 

EXTERNAL EMAIL: This email originated from outside of the organization. Do not click any links or open any attachments unless you trust the sender and know the content is safe.

It's important to read critically rather than to impose ones preconceptions on what one reads.

I devoted an elaborate essay to a dialogue with Bjoern on Kant and you call that a dismissal?

Seems you might need to wear your scholarly hat more in social media dialogues instead of this tendecy to retreat into uncritical verbal brushstrokes when dealing with perspectives you don't agree with.

Have you read Kant? How much Kant do you know? How well have you understood what you know? How informed are you about the signposts of his work in relation to his total productivity? What is the scope of your analysis of Kant? To what degree do you engage with Kant scholarship?

These are the questions through which critique of a scholar's engagement with any body of knowledge, including  Kant Studies, is asessed.

It's not about projecting unsubstantiated views, ungrounded in both the primary subject and it's sorrounding scholarship.

Anyone can see that my Kant scholarship is grounded in close study of Kant, in a degree of relationship to the circles of scholarship developed in relation to his work, going beyond these to bring Kant's thought into dialogue with some of the greatest expressive achievements of various cultures, in various disciplines, Asian, African, Western, and to some degree, Islamic, from the visual and verbal arts to spirituality and philosophy, therefore I can't be accused of Eurocentric parochialism.

The simple truth is that certain achievements in all fields of endevour are unique miracles of creativity, distinctively demonstrating human potential, achievements that inspire acknowledgement from people of all ideological persuasions who understand them. The limitations of Kant's work do not deny him that distinction.

Your responses, indicating strongly  held and emotive convictions that do not demonstrate acquaintance with  Kant's work or with Kant scholarship, suggest one pole of the mythologising to which Kant is subjected.

The other pole sees him as the creator of a forbidding forest of thought, a solipsist living in his own mind, engrossed in his almost self flagellatory existence as a perpetual bachelor of amazingly routinised life style in one small town where he was born, when, in fact, his striking minimality of existence is about the discipline required to pursue the most fundamental questions without extranous considerations. 

We cant all live like that, and Kant had a richer social existence than is often attributed to him, succeeding in social integration as a university lecturer within which context he pursued his mental explorations, but we can learn from such people.

Such mythologising suggests there needs to be more texts that allow Kant to speak for himself, in tandem with close anaysis of what he says, analysis that is simple and clear, yet responding adequately to the profundities of the Konigsberg master.

My central interest in approaching Kant in that way is to foreground his character as a seeker of ultimate meaning, describing his awe at the wonder of existence and trying to map  various  responses to this wonder, in the context of asking how much human beings can really know about the mysterious immensity in which they find themselves and how they can live within the context of this mystery.

Kant is a fellow traveller for me in this quest in which I am also engaged. 

So, my study of Kant is centred in the raison d'etre of my life, it's ultimate purpose, yet approaches this coincidence of values between myself and the advocate of international unity in the critical spirit representing Kant at his best, while going beyond the limitations of his epistemology and developing his work in relation to a cultural ecumenism foreign to him.

 I thereby make my own contribution to Kant Studies and perhaps to the various subjects into which I bring him into dialogue with.

I wish you a nice, Afrocentric weekend.

Thanks

Toyin





On Fri, Jun 17, 2022, 20:20 'Emeagwali, Gloria (History)' via USA Africa Dialogue Series <usaafricadialogue@googlegroups.com> wrote:
Have the last word on this. You also
dismissed Bjoern's critique of Kant
so I am in good company- and
he is a philosophy specialist.

I suggest that you attend this conference
on Racist Ideology with focus on Kant etc.
June 30, 2022.


Have a nice Kantian weekend.

GE



Professor Gloria Emeagwali
Prof. of History/African Studies, CCSU
africahistory.net; vimeo.com/ gloriaemeagwali
Recipient of the 2014 Distinguished Research
Excellence Award, Univ. of Texas at Austin;
2019 Distinguished Africanist Award
New York African Studies Association


From: usaafricadialogue@googlegroups.com <usaafricadialogue@googlegroups.com> on behalf of bfreterb@gmail.com <bfreterb@gmail.com>
Sent: Wednesday, May 25, 2022 9:11 PM
To: usaafricadialogue@googlegroups.com <usaafricadialogue@googlegroups.com>
Subject: USA Africa Dialogue Series - Re-reading the Canon. Lecture 1: Philosophy, Racist Ideology & Liberatory Pedagogy. A reflection on Kant & the canon problem
 

EXTERNAL EMAIL: This email originated from outside of the organization. Do not click any links or open any attachments unless you trust the sender and know the content is safe.

Dear All,

 

You are cordially invited to the first lecture in the series: Re-reading the Canon. New perspectives on ignored problems!

 

The first lecture will be delievered by the great Huaping Lu-Adler.

 

Please find all details below!

 

I hope to see you there!

 

All the best,

Bjoern

 

<img width="602" height="186" id="x_m_1295124716386520030m_-768248975373240994x_m_-1238348801330374044m_-8351911623038055296x_m_-5122998814493599981m_6699276434623731715m_-1657674888192198067x_m_-8151083419568342319m_-3153992873086989215m_5514168160933722739m_2729113258501048553x_Picture_x0020_3" alt="" aria-label="One" style="width:6.2708in; height:auto; max-width:100%" src="data:text/html;base64,PCFkb2N0eXBlIGh0bWw+PGh0bWwgZGlyPSJsdHIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB0cmFuc2xhdGU9Im5vIj48aGVhZD48bWV0YSBjaGFyc2V0PSJ1dGYtOCIvPjxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSIvPjxtZXRhIGh0dHAtZXF1aXY9InByYWdtYSIgY29udGVudD0ibm8tY2FjaGUiLz48bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSx1c2VyLXNjYWxhYmxlPTAiLz48bWV0YSBuYW1lPSJnb29nbGUiIHZhbHVlPSJub3RyYW5zbGF0ZSIvPjxtZXRhIG5hbWU9ImZvcm1hdC1kZXRlY3Rpb24iIGNvbnRlbnQ9InRlbGVwaG9uZT1ubyIvPjxtZXRhIG5hbWU9InNjcmlwdFZlciIgY29udGVudD0iMjAyMjA2MTcwMDUuMDYiLz48bWV0YSBuYW1lPSJwaHlzaWNhbFJpbmciIGNvbnRlbnQ9IldXIi8+PG1ldGEgbmFtZT0iZW52aXJvbm1lbnQiIGNvbnRlbnQ9IlByb2QiLz48bWV0YSBuYW1lPSJib290RmxpZ2h0cyIgY29udGVudD0ic291cmNlbGlzdGFwaSxub3ZhYXBwYmFyLHNlbmRDbGFpbXNDaGFsbGVuZ2VJblF1ZXJ5LHBlcmZvcm1hbmNlRGF0YXBvaW50SGVhbHRoLHBhdGNobm9kZSIvPjxtZXRhIG5hbWU9ImNkblVybCIgY29udGVudD0iLy9yZXMuY2RuLm9mZmljZS5uZXQvIi8+PG1ldGEgbmFtZT0iYmFja3VwQ2RuVXJsIiBjb250ZW50PSIvL3Jlcy0yLmNkbi5vZmZpY2UubmV0LyIvPjxtZXRhIG5hbWU9ImNkbkNvbnRhaW5lciIgY29udGVudD0ib3dhbWFpbC8iLz48bWV0YSBuYW1lPSJkZXZDZG5VcmwiIGNvbnRlbnQ9IiIvPjxtZXRhIG5hbWU9ImFyaWFVcmwiIGNvbnRlbnQ9IiIvPjxtZXRhIG5hbWU9ImNvbXBhY3RBcmlhVXJsIiBjb250ZW50PSIiLz48bWV0YSBuYW1lPSJ3Y3NzRnJhbWVVcmwiIGNvbnRlbnQ9Imh0dHBzOi8vd2Vic2hlbGwuc3VpdGUub2ZmaWNlLmNvbSIvPjxtZXRhIG5hbWU9InNjcmlwdFBhdGgiIGNvbnRlbnQ9InNjcmlwdHMvIi8+PG1ldGEgbmFtZT0ib3dhSXNBdXRoZW50aWNhdGVkIiBjb250ZW50PSJPd2FJc0F1dGhlbnRpY2F0ZWQiLz48bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Ii9tYWlsL2Zhdmljb24uaWNvIiB0eXBlPSJpbWFnZS94LWljb24iLz48bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIGhyZWY9Ii8vcmVzLmNkbi5vZmZpY2UubmV0L2Fzc2V0cy9tYWlsL3B3YS92MS9wbmdzL2FwcGxlLXRvdWNoLWljb24ucG5nIi8+PG5vc2NyaXB0PkphdmFTY3JpcHQgbXVzdCBiZSBlbmFibGVkLjwvbm9zY3JpcHQ+PHRpdGxlPk91dGxvb2s8L3RpdGxlPjxzdHlsZT5AZm9udC1mYWNlIHsKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnU2Vnb2UgVUkgV2VzdEV1cm9wZWFuJzsKICAgICAgICAgICAgICAgIHNyYzogbG9jYWwoJ1NlZ29lIFVJIExpZ2h0JyksIGxvY2FsKCdTZWdvZSBXUCBMaWdodCcpLAogICAgICAgICAgICAgICAgICAgIHVybCgnLy9yZXMuY2RuLm9mZmljZS5uZXQvYXNzZXRzL21haWwvZm9udHMvdjEvZm9udHMvc2Vnb2V1aS1saWdodC5lb3Q/I2llZml4JykKICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLAogICAgICAgICAgICAgICAgICAgIHVybCgnLy9yZXMuY2RuLm9mZmljZS5uZXQvYXNzZXRzL21haWwvZm9udHMvdjEvZm9udHMvc2Vnb2V1aS1saWdodC53b2ZmJykKICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KCd3b2ZmJyksCiAgICAgICAgICAgICAgICAgICAgdXJsKCcvL3Jlcy5jZG4ub2ZmaWNlLm5ldC9hc3NldHMvbWFpbC9mb250cy92MS9mb250cy9zZWdvZXVpLWxpZ2h0LnR0ZicpCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCgndHJ1ZXR5cGUnKTsKICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7CiAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgQGZvbnQtZmFjZSB7CiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ1NlZ29lIFVJIFdlc3RFdXJvcGVhbic7CiAgICAgICAgICAgICAgICBzcmM6IGxvY2FsKCdTZWdvZSBVSScpLCBsb2NhbCgnU2Vnb2UgV1AnKSwKICAgICAgICAgICAgICAgICAgICB1cmwoJy8vcmVzLmNkbi5vZmZpY2UubmV0L2Fzc2V0cy9tYWlsL2ZvbnRzL3YxL2ZvbnRzL3NlZ29ldWktcmVndWxhci5lb3Q/I2llZml4JykKICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLAogICAgICAgICAgICAgICAgICAgIHVybCgnLy9yZXMuY2RuLm9mZmljZS5uZXQvYXNzZXRzL21haWwvZm9udHMvdjEvZm9udHMvc2Vnb2V1aS1yZWd1bGFyLndvZmYnKQogICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQoJ3dvZmYnKSwKICAgICAgICAgICAgICAgICAgICB1cmwoJy8vcmVzLmNkbi5vZmZpY2UubmV0L2Fzc2V0cy9tYWlsL2ZvbnRzL3YxL2ZvbnRzL3NlZ29ldWktcmVndWxhci50dGYnKQogICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQoJ3RydWV0eXBlJyk7CiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIEBmb250LWZhY2UgewogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdTZWdvZSBVSSBXZXN0RXVyb3BlYW4nOwogICAgICAgICAgICAgICAgc3JjOiBsb2NhbCgnU2Vnb2UgVUkgU2VtaWJvbGQnKSwgbG9jYWwoJ1NlZ29lIFdQIFNlbWlib2xkJyksCiAgICAgICAgICAgICAgICAgICAgdXJsKCcvL3Jlcy5jZG4ub2ZmaWNlLm5ldC9hc3NldHMvbWFpbC9mb250cy92MS9mb250cy9zZWdvZXVpLXNlbWlib2xkLmVvdD8jaWVmaXgnKQogICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksCiAgICAgICAgICAgICAgICAgICAgdXJsKCcvL3Jlcy5jZG4ub2ZmaWNlLm5ldC9hc3NldHMvbWFpbC9mb250cy92MS9mb250cy9zZWdvZXVpLXNlbWlib2xkLndvZmYnKQogICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQoJ3dvZmYnKSwKICAgICAgICAgICAgICAgICAgICB1cmwoJy8vcmVzLmNkbi5vZmZpY2UubmV0L2Fzc2V0cy9tYWlsL2ZvbnRzL3YxL2ZvbnRzL3NlZ29ldWktc2VtaWJvbGQudHRmJykKICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KCd0cnVldHlwZScpOwogICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgICAgICAgICAgfQogICAgICAgICAgICBAZm9udC1mYWNlIHsKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnU2Vnb2UgVUkgV2VzdEV1cm9wZWFuJzsKICAgICAgICAgICAgICAgIHNyYzogbG9jYWwoJ1NlZ29lIFVJIFNlbWlsaWdodCcpLCBsb2NhbCgnU2Vnb2UgV1AgU2VtaWxpZ2h0JyksCiAgICAgICAgICAgICAgICAgICAgdXJsKCcvL3Jlcy5jZG4ub2ZmaWNlLm5ldC9hc3NldHMvbWFpbC9mb250cy92MS9mb250cy9zZWdvZXVpLXNlbWlsaWdodC5lb3Q/I2llZml4JykKICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLAogICAgICAgICAgICAgICAgICAgIHVybCgnLy9yZXMuY2RuLm9mZmljZS5uZXQvYXNzZXRzL21haWwvZm9udHMvdjEvZm9udHMvc2Vnb2V1aS1zZW1pbGlnaHQud29mZicpCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCgnd29mZicpLAogICAgICAgICAgICAgICAgICAgIHVybCgnLy9yZXMuY2RuLm9mZmljZS5uZXQvYXNzZXRzL21haWwvZm9udHMvdjEvZm9udHMvc2Vnb2V1aS1zZW1pbGlnaHQudHRmJykKICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KCd0cnVldHlwZScpOwogICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDsKICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgICAgICAgICAgfQogICAgICAgICAgICBAZm9udC1mYWNlIHsKICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnRmFicmljTURMMkljb25zJzsKICAgICAgICAgICAgICAgIHNyYzogdXJsKCcvL3Jlcy5jZG4ub2ZmaWNlLm5ldC9vd2FtYWlsLzIwMjIwNjE3MDA1LjA2L3Jlc291cmNlcy9mb250cy9vMzY1aWNvbnMtbWRsMi53b2ZmJykKICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KCd3b2ZmJyksCiAgICAgICAgICAgICAgICAgICAgdXJsKCcvL3Jlcy5jZG4ub2ZmaWNlLm5ldC9vd2FtYWlsLzIwMjIwNjE3MDA1LjA2L3Jlc291cmNlcy9mb250cy9vMzY1aWNvbnMtbWRsMi50dGYnKQogICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQoJ3RydWV0eXBlJyk7CiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIEBmb250LWZhY2UgewogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdvZmZpY2UzNjVpY29ucyc7CiAgICAgICAgICAgICAgICBzcmM6IHVybCgnLy9yZXMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIyMDYxNzAwNS4wNi9yZXNvdXJjZXMvZm9udHMvb2ZmaWNlMzY1aWNvbnMuZW90PycpOwogICAgICAgICAgICAgICAgc3JjOiB1cmwoJy8vcmVzLmNkbi5vZmZpY2UubmV0L293YW1haWwvMjAyMjA2MTcwMDUuMDYvcmVzb3VyY2VzL2ZvbnRzL29mZmljZTM2NWljb25zLmVvdD8jaWVmaXgnKQogICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksCiAgICAgICAgICAgICAgICAgICAgdXJsKCcvL3Jlcy5jZG4ub2ZmaWNlLm5ldC9vd2FtYWlsLzIwMjIwNjE3MDA1LjA2L3Jlc291cmNlcy9mb250cy9vZmZpY2UzNjVpY29ucy53b2ZmPycpCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCgnd29mZicpLAogICAgICAgICAgICAgICAgICAgIHVybCgnLy9yZXMuY2RuLm9mZmljZS5uZXQvb3dhbWFpbC8yMDIyMDYxNzAwNS4wNi9yZXNvdXJjZXMvZm9udHMvb2ZmaWNlMzY1aWNvbnMudHRmPycpCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCgndHJ1ZXR5cGUnKSwKICAgICAgICAgICAgICAgICAgICB1cmwoJy8vcmVzLmNkbi5vZmZpY2UubmV0L293YW1haWwvMjAyMjA2MTcwMDUuMDYvcmVzb3VyY2VzL2ZvbnRzL29mZmljZTM2NWljb25zLnN2Zz8jb2ZmaWNlMzY1aWNvbnMnKQogICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQoJ3N2ZycpOwogICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgICAgICAgICAgfQogICAgICAgICAgICAjcHJlbG9hZERpdiB7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDsKICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC0xcHg7CiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgICAgICAgICB9CiAgICAgICAgICAgICNsb2FkaW5nU2NyZWVuIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgICAgIGJvdHRvbTogMDsKICAgICAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgICAgICByaWdodDogMDsKICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgI2xvYWRpbmdMb2dvIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgICAgIHRvcDogY2FsYyg1MHZoIC0gOTBweCk7CiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKDUwdncgLSA5MHB4KTsKICAgICAgICAgICAgICAgIHdpZHRoOiAxODBweDsKICAgICAgICAgICAgICAgIGhlaWdodDogMTgwcHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgI01TTG9nbyB7CiAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgICAgICBib3R0b206IDM2cHg7CiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKDUwdncgLSA0NXB4KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAuZGFyayAjbG9hZGluZ1NjcmVlbiB7CiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOwogICAgICAgICAgICB9CiAgICAgICAgICAgICNsb2FkaW5nTG9nbzJfdHMgewogICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBsb2FkaW5nTG9nbzJfdHNfX3RzIDMwMDBtcyBsaW5lYXIgMSBub3JtYWwgZm9yd2FyZHM7CiAgICAgICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxMDAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgICNsb2FkaW5nTG9nbzIgewogICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBsb2FkaW5nTG9nbzJfY19vIDMwMDBtcyBsaW5lYXIgMSBub3JtYWwgZm9yd2FyZHM7CiAgICAgICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxMDAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgICNsb2FkaW5nTG9nbzNfdG8gewogICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBsb2FkaW5nTG9nbzNfdG9fX3RvIDMwMDBtcyBsaW5lYXIgMSBub3JtYWwgZm9yd2FyZHM7CiAgICAgICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxMDAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgICNsb2FkaW5nTG9nbzZfdHMgewogICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBsb2FkaW5nTG9nbzZfdHNfX3RzIDMwMDBtcyBsaW5lYXIgMSBub3JtYWwgZm9yd2FyZHM7CiAgICAgICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxMDAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgICNsb2FkaW5nTG9nbzhfdHMgewogICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBsb2FkaW5nTG9nbzhfdHNfX3RzIDMwMDBtcyBsaW5lYXIgMSBub3JtYWwgZm9yd2FyZHM7CiAgICAgICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxMDAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgICNsb2FkaW5nTG9nbzlfdG8gewogICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBsb2FkaW5nTG9nbzlfdG9fX3RvIDMwMDBtcyBsaW5lYXIgMSBub3JtYWwgZm9yd2FyZHM7CiAgICAgICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxMDAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgICNsb2FkaW5nTG9nbzI5X3RzIHsKICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogbG9hZGluZ0xvZ28yOV90c19fdHMgMzAwMG1zIGxpbmVhciAxIG5vcm1hbCBmb3J3YXJkczsKICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDEwMDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgQGtleWZyYW1lcyBsb2FkaW5nTG9nbzJfdHNfX3RzIHsKICAgICAgICAgICAgICAgIDAlIHsKICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMDguODk0NDNweCwgMTU1LjcxNTEyN3B4KSBzY2FsZSgwLjY2ODk2MywgMC42Njg5NjMpOwogICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIDI2LjY2NjY2NyUgewogICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwOC44OTQ0M3B4LCAxNTUuNzE1MTI3cHgpIHNjYWxlKDEsIDEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgMTAwJSB7CiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTA4Ljg5NDQzcHgsIDE1NS43MTUxMjdweCkgc2NhbGUoMSwgMSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgQGtleWZyYW1lcyBsb2FkaW5nTG9nbzJfY19vIHsKICAgICAgICAgICAgICAgIDAlIHsKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgMTguMzMzMzMzJSB7CiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIDEwMCUgewogICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgQGtleWZyYW1lcyBsb2FkaW5nTG9nbzNfdG9fX3RvIHsKICAgICAgICAgICAgICAgIDAlIHsKICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMDEuMDAwMTU1cHgsIDE5NS45NzA3MDNweCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAxMy4zMzMzMzMlIHsKICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMDEuMDAwMTU1cHgsIDE5NS45NzA3MDNweCk7CiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDEsIDAuMDI1KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIDMxJSB7CiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAxLjAwMDE1NXB4LCAyMDZweCk7CiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTM1LCAwLjcxLCAwLjAzLCAwLjk4NSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICA1MCUgewogICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMS4wMDAxNTVweCwgMTk1Ljk3MDcwM3B4KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIDEwMCUgewogICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMS4wMDAxNTVweCwgMTk1Ljk3MDcwM3B4KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBAa2V5ZnJhbWVzIGxvYWRpbmdMb2dvNl90c19fdHMgewogICAgICAgICAgICAgICAgMCUgewogICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMS4wMDA3MDhweCwgOTcuNDk5NTg4cHgpIHNjYWxlKDEsIC0wLjAwMTcyKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIDIzLjMzMzMzMyUgewogICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMS4wMDA3MDhweCwgOTcuNDk5NTg4cHgpIHNjYWxlKDEsIC0wLjAwMTcyKTsKICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xMzUsIDAuNzEsIDAuMDMsIDAuOTg1KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIDQwJSB7CiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAxLjAwMDcwOHB4LCA5Ny40OTk1ODhweCkgc2NhbGUoMSwgMSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAxMDAlIHsKICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMDEuMDAwNzA4cHgsIDk3LjQ5OTU4OHB4KSBzY2FsZSgxLCAxKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBAa2V5ZnJhbWVzIGxvYWRpbmdMb2dvOF90c19fdHMgewogICAgICAgICAgICAgICAgMCUgewogICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMS4wMDA2OTlweCwgMTU5LjkxNDcyM3B4KSBzY2FsZSgxLCAxKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIDM5LjY2NjY2NyUgewogICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMS4wMDA2OTlweCwgMTU5LjkxNDcyM3B4KSBzY2FsZSgxLCAxKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIDUwJSB7CiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAxLjAwMDY5OXB4LCAxNTkuOTE0NzIzcHgpIHNjYWxlKDEsIDEuMDUwMzYpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgNTIuMzMzMzMzJSB7CiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAxLjAwMDY5OXB4LCAxNTkuOTE0NzIzcHgpIHNjYWxlKDEsIDAuOTU5MjMzKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIDU3LjY2NjY2NyUgewogICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMS4wMDA2OTlweCwgMTU5LjkxNDcyM3B4KSBzY2FsZSgxLCAxKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIDEwMCUgewogICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMS4wMDA2OTlweCwgMTU5LjkxNDcyM3B4KSBzY2FsZSgxLCAxKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBAa2V5ZnJhbWVzIGxvYWRpbmdMb2dvOV90b19fdG8gewogICAgICAgICAgICAgICAgMCUgewogICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMXB4LCAyMDUuNzUzNzY1cHgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgMjYuNjY2NjY3JSB7CiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAxcHgsIDIwNS43NTM3NjVweCk7CiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgNTAlIHsKICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMDFweCwgODFweCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAxMDAlIHsKICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMDFweCwgODFweCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgQGtleWZyYW1lcyBsb2FkaW5nTG9nbzI5X3RzX190cyB7CiAgICAgICAgICAgICAgICAwJSB7CiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAxLjAwMDY5OXB4LCA5Ny40OTk1NzNweCkgc2NhbGUoMSwgMSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAxMy4zMzMzMzMlIHsKICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMDEuMDAwNjk5cHgsIDk3LjQ5OTU3M3B4KSBzY2FsZSgxLCAxKTsKICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMSwgMC4wMjUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgMjMuMzMzMzMzJSB7CiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAxLjAwMDY5OXB4LCA5Ny40OTk1NzNweCkgc2NhbGUoMSwgMC4wMDE3MjMpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgMTAwJSB7CiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAxLjAwMDY5OXB4LCA5Ny40OTk1NzNweCkgc2NhbGUoMSwgMC4wMDE3MjMpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9PC9zdHlsZT48c2NyaXB0IG5vbmNlPSJVMktVaXB0NVZDK2JEcGR3VlhudVdBPT0iPnRyeSB7CiAgICAgICAgICAgICAgICBpZiAoJ2xvY2FsU3RvcmFnZScgaW4gd2luZG93KSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHVzZXJOb3JtYWxpemVkVGhlbWUgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oJ1VzZXJzTm9ybWFsaXplZFRoZW1lJyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXJOb3JtYWxpemVkVGhlbWUgJiYgL1wuZGFyayQvLnRlc3QodXNlck5vcm1hbGl6ZWRUaGVtZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2RhcmsnKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdmFyIHB3YWJhcmNvbG9yID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKCdQd2FUaGVtZScpOwogICAgICAgICAgICAgICAgICAgIGlmIChwd2FiYXJjb2xvcikgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGhlbWV0YWcgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgndGhlbWUtY29sb3InKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoZW1ldGFnICYmIHRoZW1ldGFnLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWV0YWdbMF0uc2V0QXR0cmlidXRlKCdjb250ZW50JywgcHdhYmFyY29sb3IpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIChlKSB7fTwvc2NyaXB0PjxzY3JpcHQgbm9uY2U9IlUyS1VpcHQ1VkMrYkRwZHdWWG51V0E9PSI+d2luZG93LkZhYnJpY0NvbmZpZyA9IHsKICAgICAgICAgICAgICAgIGZvbnRCYXNlVXJsOiBudWxsLAogICAgICAgICAgICB9OwogICAgICAgICAgICB3aW5kb3cub3dhQmFja2ZpbGxlZEVycm9ycyA9IFtdOwogICAgICAgICAgICBmdW5jdGlvbiBsb2dFcnJvcihtLCBmLCBsLCBjLCBlLCBzKSB7CiAgICAgICAgICAgICAgICBpZiAod2luZG93Lm93YUVycm9ySGFuZGxlcikgewogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5vd2FFcnJvckhhbmRsZXIobSwgZiwgbCwgYywgZSwgcyk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5vd2FCYWNrZmlsbGVkRXJyb3JzLnB1c2goYXJndW1lbnRzKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICB3aW5kb3cub25lcnJvciA9IGxvZ0Vycm9yOwogICAgICAgICAgICBpZiAoJ29udW5oYW5kbGVkcmVqZWN0aW9uJyBpbiB3aW5kb3cpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd1bmhhbmRsZWRyZWplY3Rpb24nLCBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgICAgIHZhciByID0gKGUgJiYgZS5yZWFzb24pIHx8ICdbbm8gcmVhc29uIGdpdmVuXSc7CiAgICAgICAgICAgICAgICAgICAgaWYgKHIgaW5zdGFuY2VvZiBFcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICBsb2dFcnJvcignVW5oYW5kbGVkIFJlamVjdGlvbjogJyArIHIsICcnLCAwLCAwLCByKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHIucmVzcG9uc2VFcnJvck1lc3NhZ2UgJiYgci5jYWxsc3RhY2tBdFJlcXVlc3QgJiYgciBpbnN0YW5jZW9mIFJlc3BvbnNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0Vycm9yKHIucmVzcG9uc2VFcnJvck1lc3NhZ2UsICcnLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCByLmNhbGxzdGFja0F0UmVxdWVzdCkKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBsb2dFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVbmhhbmRsZWQgUmVqZWN0aW9uOiAnICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHlwZW9mIHIgPT09ICdzdHJpbmcnID8gciA6IEpTT04uc3RyaW5naWZ5KHIpKQogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgIXNlbGYuT3dhICYmCiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubG9jYXRpb24gJiYKICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2NhdGlvbi5zZWFyY2ggJiYKICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2NhdGlvbi5zZWFyY2guaW5kZXhPZignZ3VscCcpID09IC0xCiAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnL293YS9hdXRoL2Zyb3dueS5hc3B4P2JyZXQ9ZmFpbCZlc3JjPUluZGV4UGFnZUluY29tcGxldGUmYXBwPU1haWwnCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge30KICAgICAgICAgICAgfTs8L3NjcmlwdD48c2NyaXB0IG5vbmNlPSJVMktVaXB0NVZDK2JEcGR3VlhudVdBPT0iPnRyeSB7CiAgICAgICAgICAgICAgICAhKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoJ1BlcmZvcm1hbmNlTG9uZ1Rhc2tUaW1pbmcnIGluIHdpbmRvdykgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZyA9ICh3aW5kb3cuX190dGkgPSB7IGU6IFtdIH0pOwogICAgICAgICAgICAgICAgICAgICAgICBnLm8gPSBuZXcgUGVyZm9ybWFuY2VPYnNlcnZlcihmdW5jdGlvbiAobCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZy5lID0gZy5lLmNvbmNhdChsLmdldEVudHJpZXMoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICBnLm8ub2JzZXJ2ZSh7IGVudHJ5VHlwZXM6IFsnbG9uZ3Rhc2snXSB9KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KSgpOwogICAgICAgICAgICB9IGNhdGNoIChlKSB7fTwvc2NyaXB0PjxzY3JpcHQgbm9uY2U9IlUyS1VpcHQ1VkMrYkRwZHdWWG51V0E9PSI+LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgb3dhLm1haWxpbmRleC5qcy5MSUNFTlNFLnR4dCAqLwooKCk9Pnt2YXIgZSx0LG4scixvPXs5MTYxMzc6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7WjooKT0+SH0pO3ZhciByPW4oMzQ1MzYyKSxvPW4oNjYyMzcyKSxpPW4oMzE3MTQwKSxhPW4oOTI5NTQxKSxzPW4oODAzMTQ1KSx1PW4oNDk2NTIyKSxjPW4oNjkxMjU0KSxsPW4oOTIzODA2KTtjb25zdCBIPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXt2YXIgbj1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4ucGx1Z2luVmVyc2lvblN0cmluZ0Fycj1bXSxuLnBsdWdpblZlcnNpb25TdHJpbmc9IiIsKDAsbC5aKSh0LG4sKGZ1bmN0aW9uKGUsdCl7ZS5sb2dnZXImJmUubG9nZ2VyLnF1ZXVlfHwoZS5sb2dnZXI9bmV3IG8uQVEoe2xvZ2dpbmdMZXZlbENvbnNvbGU6MX0pKSxlLmluaXRpYWxpemU9ZnVuY3Rpb24obixyLG8sdSl7KDAsaS5MbSkoZSwoZnVuY3Rpb24oKXtyZXR1cm4iQXBwSW5zaWdodHNDb3JlLmluaXRpYWxpemUifSksKGZ1bmN0aW9uKCl7aWYobil7bi5lbmRwb2ludFVybHx8KG4uZW5kcG9pbnRVcmw9Imh0dHBzOi8vYnJvd3Nlci5ldmVudHMuZGF0YS5taWNyb3NvZnQuY29tL09uZUNvbGxlY3Rvci8xLjAvIik7dmFyIGk9bi5wcm9wZXJ0eVN0b3JhZ2VPdmVycmlkZTtpZihpJiYoIWkuZ2V0UHJvcGVydHl8fCFpLnNldFByb3BlcnR5KSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgcHJvcGVydHkgc3RvcmFnZSBvdmVycmlkZSBwYXNzZWQuIik7bi5jaGFubmVscyYmKDAsYS50Tykobi5jaGFubmVscywoZnVuY3Rpb24odCl7dCYmKDAsYS50TykodCwoZnVuY3Rpb24odCl7aWYodC5pZGVudGlmaWVyJiZ0LnZlcnNpb24pe3ZhciBuPXQuaWRlbnRpZmllcisiPSIrdC52ZXJzaW9uO2UucGx1Z2luVmVyc2lvblN0cmluZ0Fyci5wdXNoKG4pfX0pKX0pKX1lLmdldFdQYXJhbT1mdW5jdGlvbigpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/MDotMX0sciYmKDAsYS50TykociwoZnVuY3Rpb24odCl7aWYodCYmdC5pZGVudGlmaWVyJiZ0LnZlcnNpb24pe3ZhciBuPXQuaWRlbnRpZmllcisiPSIrdC52ZXJzaW9uO2UucGx1Z2luVmVyc2lvblN0cmluZ0Fyci5wdXNoKG4pfX0pKSxlLnBsdWdpblZlcnNpb25TdHJpbmc9ZS5wbHVnaW5WZXJzaW9uU3RyaW5nQXJyLmpvaW4oIjsiKTt0cnl7dC5pbml0aWFsaXplKG4scixvLHUpLGUucG9sbEludGVybmFsTG9ncygiSW50ZXJuYWxMb2ciKX1jYXRjaCh0KXt2YXIgYz1lLmxvZ2dlcixsPSgwLHMuZVUpKHQpOy0xIT09bC5pbmRleE9mKCJjaGFubmVscyIpJiYobCs9IlxuIC0gQ2hhbm5lbHMgbXVzdCBiZSBwcm92aWRlZCB0aHJvdWdoIGNvbmZpZy5jaGFubmVscyBvbmx5ISIpLGMudGhyb3dJbnRlcm5hbCgxLDUxNCwiU0RLIEluaXRpYWxpemF0aW9uIEZhaWxlZCAtIG5vIHRlbGVtZXRyeSB3aWxsIGJlIHNlbnQ6ICIrbCl9fSksKGZ1bmN0aW9uKCl7cmV0dXJue2NvbmZpZzpuLGV4dGVuc2lvbnM6cixsb2dnZXI6byxub3RpZmljYXRpb25NYW5hZ2VyOnV9fSkpfSxlLnRyYWNrPWZ1bmN0aW9uKG4peygwLGkuTG0pKGUsKGZ1bmN0aW9uKCl7cmV0dXJuIkFwcEluc2lnaHRzQ29yZS50cmFjayJ9KSwoZnVuY3Rpb24oKXt2YXIgcj1uO2lmKHIpe3IudGltaW5ncz1yLnRpbWluZ3N8fHt9LHIudGltaW5ncy50cmFja1N0YXJ0PSgwLGMuaEspKCksKDAsYy5yNykoci5sYXRlbmN5KXx8KHIubGF0ZW5jeT0xKTt2YXIgbz1yLmV4dD1yLmV4dHx8e307by5zZGs9by5zZGt8fHt9LG8uc2RrLnZlcj1jLnZzO3ZhciBpPXIuYmFzZURhdGE9ci5iYXNlRGF0YXx8e307aS5wcm9wZXJ0aWVzfHwoaS5wcm9wZXJ0aWVzPXt9KTt2YXIgYT1pLnByb3BlcnRpZXM7YS52ZXJzaW9ufHwoYS52ZXJzaW9uPSIiKSwiIiE9PWUucGx1Z2luVmVyc2lvblN0cmluZyYmKGEudmVyc2lvbj1lLnBsdWdpblZlcnNpb25TdHJpbmcpfXQudHJhY2socil9KSwoZnVuY3Rpb24oKXtyZXR1cm57aXRlbTpufX0pLCFuLnN5bmMpfX0pKSxufXJldHVybigwLHIubmUpKHQsZSksdH0odS5GKX0sNjkxMjU0OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse3ZzOigpPT5kLFNuOigpPT5wLGpNOigpPT5DLHI3OigpPT5oLHlqOigpPT5BLFZ2OigpPT52LERvOigpPT5JLGNtOigpPT5VLGw3OigpPT5nLGhLOigpPT5tLGlmOigpPT5LLG1KOigpPT53LG90OigpPT5ifSk7dmFyIHIsbz1uKDIyMTkwOCksaT1uKDgyNjQ1NCksYT1uKDgwMzE0NSkscz1uKDkyOTU0MSksdT1uKDczMTc0MCksYz1uKDY4NTU4MyksbD1uKDcwNjAzOCksSD1uKDc1NTk5MiksZD0iMURTLVdlYi1KUy0zLjIuMyIsZj0id2l0aENyZWRlbnRpYWxzIixTPSgocj17fSlbMF09MCxyWzJdPTYsclsxXT0xLHJbM109NyxyWzQwOThdPTYscls0MDk3XT0xLHJbNDA5OV09NyxyKTtCb29sZWFuKCgwLGEuTWUpKCkpLEJvb2xlYW4oKDAsYS5KaikoKSk7ZnVuY3Rpb24gcChlKXtyZXR1cm4hKCIiPT09ZXx8KDAscy5sZSkoZSkpfWZ1bmN0aW9uIEMoZSl7aWYoZSl7dmFyIHQ9ZS5pbmRleE9mKCItIik7aWYodD4tMSlyZXR1cm4gZS5zdWJzdHJpbmcoMCx0KX1yZXR1cm4iIn1mdW5jdGlvbiBoKGUpe3JldHVybiEhKGUmJigwLHMuaGopKGUpJiZlPj0xJiZlPD00KX1mdW5jdGlvbiBBKGUsdCxuKXtpZighdCYmIXAodCl8fCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gbnVsbDt2YXIgcj10eXBlb2YgdDtpZigic3RyaW5nIj09PXJ8fCJudW1iZXIiPT09cnx8ImJvb2xlYW4iPT09cnx8KDAscy5rSikodCkpdD17dmFsdWU6dH07ZWxzZSBpZigib2JqZWN0IiE9PXJ8fHQuaGFzT3duUHJvcGVydHkoInZhbHVlIikpe2lmKCgwLHMubGUpKHQudmFsdWUpfHwiIj09PXQudmFsdWV8fCEoMCxzLkhEKSh0LnZhbHVlKSYmISgwLHMuaGopKHQudmFsdWUpJiYhKDAscy5qbikodC52YWx1ZSkmJiEoMCxzLmtKKSh0LnZhbHVlKSlyZXR1cm4gbnVsbH1lbHNlIHQ9e3ZhbHVlOm4/SlNPTi5zdHJpbmdpZnkodCk6dH07aWYoKDAscy5rSikodC52YWx1ZSkmJiFOKHQudmFsdWUpKXJldHVybiBudWxsO2lmKCEoMCxzLmxlKSh0LmtpbmQpKXtpZigoMCxzLmtKKSh0LnZhbHVlKXx8IVIodC5raW5kKSlyZXR1cm4gbnVsbDt0LnZhbHVlPXQudmFsdWUudG9TdHJpbmcoKX1yZXR1cm4gdH1mdW5jdGlvbiB2KGUsdCxuKXt2YXIgcj0tMTtpZighKDAscy5vOCkoZSkpaWYodD4wJiYoMzI9PT10P3I9ODE5Mjp0PD0xMyYmKHI9dDw8NSkpLGZ1bmN0aW9uKGUpe2lmKGU+PTAmJmU8PTkpcmV0dXJuITA7cmV0dXJuITF9KG4pKS0xPT09ciYmKHI9MCkscnw9bjtlbHNle3ZhciBvPVNbeShlKV18fC0xOy0xIT09ciYmLTEhPT1vP3J8PW86Nj09PW8mJihyPW8pfXJldHVybiByfWZ1bmN0aW9uIEkoZSx0LG4pe3ZhciByO3JldHVybiB2b2lkIDA9PT1uJiYobj0hMCksZSYmKHI9ZS5nZXQodCksbiYmciYmZGVjb2RlVVJJQ29tcG9uZW50JiYocj1kZWNvZGVVUklDb21wb25lbnQocikpKSxyfHwiIn1mdW5jdGlvbiBVKGUpe3ZvaWQgMD09PWUmJihlPSJEIik7dmFyIHQ9KDAsYy5HVykoKTtyZXR1cm4iQiI9PT1lP3Q9InsiK3QrIn0iOiJQIj09PWU/dD0iKCIrdCsiKSI6Ik4iPT09ZSYmKHQ9dC5yZXBsYWNlKC8tL2csIiIpKSx0fWZ1bmN0aW9uIGcoZSx0LG4scixpKXt2YXIgYT17fSx1PSExLGM9MCxsPWFyZ3VtZW50cy5sZW5ndGgsSD1PYmplY3Rbby5oQl0sZD1hcmd1bWVudHM7Zm9yKCJbb2JqZWN0IEJvb2xlYW5dIj09PUgudG9TdHJpbmcuY2FsbChkWzBdKSYmKHU9ZFswXSxjKyspO2M8bDtjKyspe2U9ZFtjXTsoMCxzLnJXKShlLChmdW5jdGlvbihlLHQpe3UmJnQmJigwLHMuS24pKHQpPygwLHMua0opKHQpPyhhW2VdPWFbZV18fFtdLCgwLHMudE8pKHQsKGZ1bmN0aW9uKHQsbil7dCYmKDAscy5LbikodCk/YVtlXVtuXT1nKCEwLGFbZV1bbl0sdCk6YVtlXVtuXT10fSkpKTphW2VdPWcoITAsYVtlXSx0KTphW2VdPXR9KSl9cmV0dXJuIGF9dmFyIG09Yy5KajtmdW5jdGlvbiBSKGUpe3JldHVybiAwPT09ZXx8ZT4wJiZlPD0xM3x8MzI9PT1lfWZ1bmN0aW9uIE4oZSl7cmV0dXJuIGUubGVuZ3RoPjB9ZnVuY3Rpb24gSyhlLHQpe3ZhciBuPWU7bi50aW1pbmdzPW4udGltaW5nc3x8e30sbi50aW1pbmdzLnByb2Nlc3NUZWxlbWV0cnlTdGFydD1uLnRpbWluZ3MucHJvY2Vzc1RlbGVtZXRyeVN0YXJ0fHx7fSxuLnRpbWluZ3MucHJvY2Vzc1RlbGVtZXRyeVN0YXJ0W3RdPW0oKX1mdW5jdGlvbiB5KGUpe3ZhciB0PTA7aWYobnVsbCE9ZSl7dmFyIG49dHlwZW9mIGU7InN0cmluZyI9PT1uP3Q9MToibnVtYmVyIj09PW4/dD0yOiJib29sZWFuIj09PW4/dD0zOm49PT1vLmZLJiYodD00LCgwLHMua0opKGUpPyh0PTQwOTYsZS5sZW5ndGg+MCYmKHR8PXkoZVswXSkpKTooMCxzLm5yKShlLCJ2YWx1ZSIpJiYodD04MTkyfHkoZS52YWx1ZSkpKX1yZXR1cm4gdH1vLmpBLG8uZkssby5qQSxzLnRPLHMuVUEscy5NcixzLlh6LHMuRlkscy5ZNixhLmIkLHMuSEQscy5oaixzLmpuLHMubWYscy5rSixzLktuLHMubmQsYS5NRixzLlk2LGEuY3AsdS5wNyx1LlVZLHMubF8sbC5jOSxsLkliLHMuSWQscy5yVyxzLlltLHMubzgscy5sZSxzLm5yLHMubWYscy5LbixzLkpfLHMua0oscy5WWixzLkhELHMuaGoscy5qbixzLlk2LHMudE8scy5VQSxzLk1yLHMuWHoscy5uZCxpLnB1LHMuRlkscy5sXyxsLkliLHMubTYsYS53MSxjLkdXLGMuSmosSC5wWixILmF6LEguX2wsSC5DTixILkY2LGMuRE87ZnVuY3Rpb24gdygpe3JldHVybiEhKDAsYS5hOCkoImNocm9tZSIpfWZ1bmN0aW9uIGIoZSx0LG4scixvLGkpe2Z1bmN0aW9uIGEoZSx0LG4pe3RyeXtlW3RdPW59Y2F0Y2goZSl7fX12b2lkIDA9PT1yJiYocj0hMSksdm9pZCAwPT09byYmKG89ITEpO3ZhciBzPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gciYmYShzLCJNaWNyb3NvZnRfQXBwbGljYXRpb25JbnNpZ2h0c19CeXBhc3NBamF4SW5zdHJ1bWVudGF0aW9uIixyKSxuJiZhKHMsZixuKSxzLm9wZW4oZSx0LCFvKSxuJiZhKHMsZixuKSwhbyYmaSYmYShzLCJ0aW1lb3V0IixpKSxzfX0sNDg3MzY5OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse1o6KCk9Pm99KTt2YXIgcj1uKDkyMzgwNik7Y29uc3Qgbz1mdW5jdGlvbiBlKCl7dmFyIHQ9ITAsbj0hMCxvPSEwLGk9InVzZS1jb2xsZWN0b3ItZGVsdGEiLGE9ITE7KDAsci5aKShlLHRoaXMsKGZ1bmN0aW9uKGUpe2UuYWxsb3dSZXF1ZXN0U2VuZGluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlLmZpcnN0UmVxdWVzdFNlbnQ9ZnVuY3Rpb24oKXtvJiYobz0hMSxhfHwodD0hMSkpfSxlLnNob3VsZEFkZENsb2NrU2tld0hlYWRlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gbn0sZS5nZXRDbG9ja1NrZXdIZWFkZXJWYWx1ZT1mdW5jdGlvbigpe3JldHVybiBpfSxlLnNldENsb2NrU2tldz1mdW5jdGlvbihlKXthfHwoZT8oaT1lLG49ITAsYT0hMCk6bj0hMSx0PSEwKX19KSl9fSw5NjA2NjY6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7biQ6KCk9PnIsdFA6KCk9Pm8sdUY6KCk9PmksWDQ6KCk9PmEsemY6KCk9PnMsWWI6KCk9PnUsVVg6KCk9PmMscXc6KCk9PmwsRWQ6KCk9PkgsQVc6KCk9PmQsRE86KCk9PmYsZ2I6KCk9PlMsR3Q6KCk9PnAsTko6KCk9PkMsJF86KCk9PmgsQmU6KCk9PkEseWg6KCk9PnYsUTk6KCk9PkksQ2s6KCk9PlUsdDI6KCk9PmcsUWo6KCk9Pm0sUW46KCk9PlIsWWg6KCk9Pk4sYUI6KCk9Pkt9KTt2YXIgcj0iUE9TVCIsbz0iTWljcm9zb2Z0X0FwcGxpY2F0aW9uSW5zaWdodHNfQnlwYXNzQWpheEluc3RydW1lbnRhdGlvbiIsaT0iZHJvcCIsYT0ic2VuZCIscz0icmVxdWV1ZSIsdT0icnNwRmFpbCIsYz0ib3RoIixsPSJuby1jYWNoZSwgbm8tc3RvcmUiLEg9ImFwcGxpY2F0aW9uL3gtanNvbi1zdHJlYW0iLGQ9ImNhY2hlLWNvbnRyb2wiLGY9ImNvbnRlbnQtdHlwZSIsUz0ia2lsbC10b2tlbnMiLHA9ImtpbGwtZHVyYXRpb24iLEM9ImtpbGwtZHVyYXRpb24tc2Vjb25kcyIsaD0idGltZS1kZWx0YS1taWxsaXMiLEE9ImNsaWVudC12ZXJzaW9uIix2PSJjbGllbnQtaWQiLEk9InRpbWUtZGVsdGEtdG8tYXBwbHktbWlsbGlzIixVPSJ1cGxvYWQtdGltZSIsZz0iYXBpa2V5IixtPSJBdXRoTXNhRGV2aWNlVGlja2V0IixSPSJBdXRoWFRva2VuIixOPSJOb1Jlc3BvbnNlQm9keSIsSz0ibXNmcGMifSw5ODAzNzooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtvdzooKT0+cixqZTooKT0+byxlMjooKT0+aX0pO3ZhciByPSJSRUFMX1RJTUUiLG89Ik5FQVJfUkVBTF9USU1FIixpPSJCRVNUX0VGRk9SVCJ9LDU0NzQxMDooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtsOigpPT51fSk7dmFyIHI9big2OTEyNTQpLG89big5Mjk1NDEpLGk9big5NjA2NjYpO2Z1bmN0aW9uIGEoZSl7dmFyIHQ9KGUuZXh0fHx7fSkuaW50d2ViO3JldHVybiB0JiYoMCxyLlNuKSh0W2kuYUJdKT90W2kuYUJdOm51bGx9ZnVuY3Rpb24gcyhlKXtmb3IodmFyIHQ9bnVsbCxuPTA7bnVsbD09PXQmJm48ZS5sZW5ndGg7bisrKXQ9YShlW25dKTtyZXR1cm4gdH12YXIgdT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxuKXt2YXIgcj1uP1tdLmNvbmNhdChuKTpbXSxpPXRoaXMsdT1zKHIpO2kuaUtleT1mdW5jdGlvbigpe3JldHVybiB0fSxpLk1zZnBjPWZ1bmN0aW9uKCl7cmV0dXJuIHV8fCIifSxpLmNvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIHIubGVuZ3RofSxpLmV2ZW50cz1mdW5jdGlvbigpe3JldHVybiByfSxpLmFkZEV2ZW50PWZ1bmN0aW9uKGUpe3JldHVybiEhZSYmKHIucHVzaChlKSx1fHwodT1hKGUpKSwhMCl9LGkuc3BsaXQ9ZnVuY3Rpb24obixpKXt2YXIgYTtpZihuPHIubGVuZ3RoKXt2YXIgYz1yLmxlbmd0aC1uOygwLG8ubGUpKGkpfHwoYz1pPGM/aTpjKSxhPXIuc3BsaWNlKG4sYyksdT1zKHIpfXJldHVybiBuZXcgZSh0LGEpfX1yZXR1cm4gZS5jcmVhdGU9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbmV3IGUodCxuKX0sZX0oKX0sNTYwNDgxOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse3g6KCk9PlJ9KTt2YXIgcixvPW4oOTI5NTQxKSxpPW4oODAzMTQ1KSxhPW4oNjkxMjU0KSxzPW4oNjYyMzcyKSx1PW4oMzE3MTQwKSxjPW4oMjIxOTA4KSxsPW4oNDYwMTQ5KSxIPW4oNDUyODQ4KSxkPW4oODYzNDMzKSxmPW4oNDg3MzY5KSxTPW4oOTIzODA2KSxwPW4oOTYwNjY2KSxDPSImIitwLlloKyI9dHJ1ZSIsaD0oKHI9e30pWzFdPXAuemYsclsxMDBdPXAuemYsclsyMDBdPSJzZW50IixyWzgwMDRdPXAudUYscls4MDAzXT1wLnVGLHIpLEE9e30sdj17fTtmdW5jdGlvbiBJKGUsdCxuKXtBW2VdPXQsITEhPT1uJiYodlt0XT1lKX1mdW5jdGlvbiBVKGUpe3RyeXtyZXR1cm4gZS5yZXNwb25zZVRleHR9Y2F0Y2goZSl7fXJldHVybiIifWZ1bmN0aW9uIGcoZSx0KXt2YXIgbj0hMTtpZihlJiZ0KXt2YXIgcj0oMCxvLkZZKShlKTtpZihyJiZyLmxlbmd0aD4wKWZvcih2YXIgaT10LnRvTG93ZXJDYXNlKCksYT0wO2E8ci5sZW5ndGg7YSsrKXt2YXIgcz1yW2FdO2lmKHMmJigwLG8ubnIpKHQscykmJnMudG9Mb3dlckNhc2UoKT09PWkpe249ITA7YnJlYWt9fX1yZXR1cm4gbn1mdW5jdGlvbiBtKGUsdCxuLHIpe3QmJm4mJm4ubGVuZ3RoPjAmJihyJiZBW3RdPyhlLmhkcnNbQVt0XV09bixlLnVzZUhkcnM9ITApOmUudXJsKz0iJiIrdCsiPSIrbil9SShwLlFqLHAuUWosITEpLEkocC5CZSxwLkJlKSxJKHAueWgsIkNsaWVudC1JZCIpLEkocC50MixwLnQyKSxJKHAuUTkscC5ROSksSShwLkNrLHAuQ2spLEkocC5RbixwLlFuKTt2YXIgUj1mdW5jdGlvbiBlKHQsbixyLEEsSSl7dGhpcy5fcmVzcG9uc2VIYW5kbGVycz1bXTt2YXIgUixOLEsseSx3LGIseD0iP2NvcnM9dHJ1ZSYiK3AuRE8udG9Mb3dlckNhc2UoKSsiPSIrcC5FZCxPPW5ldyBkLlosUD0hMSxFPW5ldyBmLlosaz0hMSxNPTAsVD0hMCxMPVtdLEY9e30sQj1bXSxEPW51bGwsaj0hMSxXPSExLFg9ITE7KDAsUy5aKShlLHRoaXMsKGZ1bmN0aW9uKGUpe3ZhciBkPSEwO2Z1bmN0aW9uIGYoZSx0KXtmb3IodmFyIG49MCxyPW51bGwsbz0wO251bGw9PXImJm88ZS5sZW5ndGg7KTE9PT0obj1lW29dKT8oMCxpLmNwKSgpP3I9UzooMCxpLlozKSgpJiYocj1xKToyPT09biYmKDAsaS5KTykodCk/cj16OmsmJjM9PT1uJiYoMCxpLk1GKSgpJiYocj1WKSxvKys7cmV0dXJuIHI/e190cmFuc3BvcnQ6bixfaXNTeW5jOnQsc2VuZFBPU1Q6cn06bnVsbH1mdW5jdGlvbiBTKGUsdCxuKXt2YXIgcj1uZXcgWERvbWFpblJlcXVlc3Q7ci5vcGVuKHAubiQsZS51cmxTdHJpbmcpLGUudGltZW91dCYmKHIudGltZW91dD1lLnRpbWVvdXQpLHIub25sb2FkPWZ1bmN0aW9uKCl7dmFyIGU9VShyKTtaKHQsMjAwLHt9LGUpLGllKGUpfSxyLm9uZXJyb3I9ZnVuY3Rpb24oKXtaKHQsNDAwLHt9KX0sci5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtaKHQsNTAwLHt9KX0sci5vbnByb2dyZXNzPWZ1bmN0aW9uKCl7fSxuP3Iuc2VuZChlLmRhdGEpOkkuc2V0KChmdW5jdGlvbigpe3Iuc2VuZChlLmRhdGEpfSksMCl9ZnVuY3Rpb24geihlLHQsbil7dmFyIHIsaT1lLnVybFN0cmluZyxhPSExLHM9ITEsdT0oKHI9e2JvZHk6ZS5kYXRhLG1ldGhvZDpwLm4kfSlbcC50UF09ITAscik7biYmKHUua2VlcGFsaXZlPSEwLDI9PT1lLl9zZW5kUmVhc29uJiYoYT0hMCxpKz1DKSksZCYmKHUuY3JlZGVudGlhbHM9ImluY2x1ZGUiKSxlLmhlYWRlcnMmJigwLG8uRlkpKGUuaGVhZGVycykubGVuZ3RoPjAmJih1LmhlYWRlcnM9ZS5oZWFkZXJzKSxmZXRjaChpLHUpLnRoZW4oKGZ1bmN0aW9uKGUpe3ZhciBuPXt9LHI9IiI7ZS5oZWFkZXJzJiZlLmhlYWRlcnMuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXtuW3RdPWV9KSksZS5ib2R5JiZlLnRleHQoKS50aGVuKChmdW5jdGlvbihlKXtyPWV9KSksc3x8KHM9ITAsWih0LGUuc3RhdHVzLG4sciksaWUocikpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtzfHwocz0hMCxaKHQsMCx7fSkpfSkpLGEmJiFzJiYocz0hMCxaKHQsMjAwLHt9KSksIXMmJmUudGltZW91dD4wJiZJLnNldCgoZnVuY3Rpb24oKXtzfHwocz0hMCxaKHQsNTAwLHt9KSl9KSxlLnRpbWVvdXQpfWZ1bmN0aW9uIHEoZSx0LG4pe3ZhciByPWUudXJsU3RyaW5nO2Z1bmN0aW9uIGkoZSx0LG4pe2lmKCFlW25dJiZ0JiZ0LmdldFJlc3BvbnNlSGVhZGVyKXt2YXIgcj10LmdldFJlc3BvbnNlSGVhZGVyKG4pO3ImJihlW25dPSgwLG8ubmQpKHIpKX1yZXR1cm4gZX1mdW5jdGlvbiBzKGUpe3ZhciB0PXt9O3JldHVybiBlLmdldEFsbFJlc3BvbnNlSGVhZGVycz90PWZ1bmN0aW9uKGUpe3ZhciB0PXt9O2lmKCgwLG8uSEQpKGUpKXt2YXIgbj0oMCxvLm5kKShlKS5zcGxpdCgvW1xyXG5dKy8pOygwLG8udE8pKG4sKGZ1bmN0aW9uKGUpe2lmKGUpe3ZhciBuPWUuaW5kZXhPZigiOiAiKTtpZigtMSE9PW4pe3ZhciByPSgwLG8ubmQpKGUuc3Vic3RyaW5nKDAsbikpLnRvTG93ZXJDYXNlKCksaT0oMCxvLm5kKShlLnN1YnN0cmluZyhuKzEpKTt0W3JdPWl9ZWxzZSB0WygwLG8ubmQpKGUpXT0xfX0pKX1yZXR1cm4gdH0oZS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk6KHQ9aSh0LGUscC4kXyksdD1pKHQsZSxwLkd0KSx0PWkodCxlLHAuTkopKSx0fWZ1bmN0aW9uIHUoZSxuKXtaKHQsZS5zdGF0dXMscyhlKSxuKX1uJiZlLmRpc2FibGVYaHJTeW5jJiYobj0hMSk7dmFyIGM9KDAsYS5vdCkocC5uJCxyLGQsITAsbixlLnRpbWVvdXQpOygwLG8uclcpKGUuaGVhZGVycywoZnVuY3Rpb24oZSx0KXtjLnNldFJlcXVlc3RIZWFkZXIoZSx0KX0pKSxjLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBlPVUoYyk7dShjLGUpLGllKGUpfSxjLm9uZXJyb3I9ZnVuY3Rpb24oKXt1KGMpfSxjLm9udGltZW91dD1mdW5jdGlvbigpe3UoYyl9LGMuc2VuZChlLmRhdGEpfWZ1bmN0aW9uIFooZSx0LG4scil7dHJ5e2UodCxuLHIpfWNhdGNoKGUpeygwLHMua1ApKFIuZGlhZ0xvZygpLDIsNTE4LCgwLGkuZVUpKGUpKX19ZnVuY3Rpb24gVihlLHQsbil7dmFyIHI9MjAwLGE9ZS5fdGhlUGF5bG9hZCxzPWUudXJsU3RyaW5nK0M7dHJ5e3ZhciB1PSgwLGkualcpKCk7aWYoIXUuc2VuZEJlYWNvbihzLGUuZGF0YSkpaWYoYSl7dmFyIGM9W107KDAsby50TykoYS5iYXRjaGVzLChmdW5jdGlvbihlKXtpZihjJiZlJiZlLmNvdW50KCk+MCl7Zm9yKHZhciB0PWUuZXZlbnRzKCksbj0wO248dC5sZW5ndGg7bisrKWlmKCF1LnNlbmRCZWFjb24ocyxELmdldEV2ZW50QmxvYih0W25dKSkpe2MucHVzaChlLnNwbGl0KG4pKTticmVha319ZWxzZSBjLnB1c2goZS5zcGxpdCgwKSl9KSksYWUoYyw4MDAzLGEuc2VuZFR5cGUsITApfWVsc2Ugcj0wfWNhdGNoKGUpe1IuZGlhZ0xvZygpLndhcm5Ub0NvbnNvbGUoIkZhaWxlZCB0byBzZW5kIHRlbGVtZXRyeSB1c2luZyBzZW5kQmVhY29uIEFQSS4gRXg6IisoMCxpLmVVKShlKSkscj0wfWZpbmFsbHl7Wih0LHIse30sIiIpfX1mdW5jdGlvbiBZKGUpe3JldHVybiAyPT09ZXx8Mz09PWV9ZnVuY3Rpb24gUShlKXtyZXR1cm4gVyYmWShlKSYmKGU9MiksZX1mdW5jdGlvbiBKKCl7cmV0dXJuIVAmJk08bn1mdW5jdGlvbiBHKCl7dmFyIGU9QjtyZXR1cm4gQj1bXSxlfWZ1bmN0aW9uIF8oZSx0LG4pe3ZhciByPSExO3JldHVybiBlJiZlLmxlbmd0aD4wJiYhUCYmTlt0XSYmRCYmKHI9MCE9PXR8fEooKSYmKG4+MHx8RS5hbGxvd1JlcXVlc3RTZW5kaW5nKCkpKSxyfWZ1bmN0aW9uICQoZSl7dmFyIHQ9e307cmV0dXJuIGUmJigwLG8udE8pKGUsKGZ1bmN0aW9uKGUsbil7dFtuXT17aUtleTplLmlLZXkoKSxldnRzOmUuZXZlbnRzKCl9fSkpLHR9ZnVuY3Rpb24gZWUoZSxuLHIsbyxjKXtpZihlJiYwIT09ZS5sZW5ndGgpaWYoUClhZShlLDEsbyk7ZWxzZXtvPVEobyk7dHJ5e3ZhciBsPWUsSD0wIT09bzsoMCx1LkxtKShLLChmdW5jdGlvbigpe3JldHVybiJIdHRwTWFuYWdlcjpfc2VuZEJhdGNoZXMifSksKGZ1bmN0aW9uKHMpe3MmJihlPWUuc2xpY2UoMCkpO2Zvcih2YXIgdT1bXSxsPW51bGwsZD0oMCxhLmhLKSgpLGY9TltvXXx8KEg/TlsxXTpOWzBdKSxTPShXfHxZKG8pfHxmJiYzPT09Zi5fdHJhbnNwb3J0KSYmIVQmJmsmJigwLGkuTUYpKCk7XyhlLG8sbik7KXt2YXIgcD1lLnNoaWZ0KCk7cCYmcC5jb3VudCgpPjAmJihPLmlzVGVuYW50S2lsbGVkKHAuaUtleSgpKT91LnB1c2gocCk6KGw9bHx8RC5jcmVhdGVQYXlsb2FkKG4scixILFMsYyxvKSxELmFwcGVuZFBheWxvYWQobCxwLHQpP251bGwhPT1sLm92ZXJmbG93JiYoZT1bbC5vdmVyZmxvd10uY29uY2F0KGUpLGwub3ZlcmZsb3c9bnVsbCxyZShsLGQsKDAsYS5oSykoKSxjKSxkPSgwLGEuaEspKCksbD1udWxsKToocmUobCxkLCgwLGEuaEspKCksYyksZD0oMCxhLmhLKSgpLGU9W3BdLmNvbmNhdChlKSxsPW51bGwpKSl9bCYmcmUobCxkLCgwLGEuaEspKCksYyksZS5sZW5ndGg+MCYmKEI9ZS5jb25jYXQoQikpLGFlKHUsODAwNCxvKX0pLChmdW5jdGlvbigpe3JldHVybntiYXRjaGVzOiQobCkscmV0cnlDb3VudDpuLGlzVGVhcmRvd246cixpc1N5bmNocm9ub3VzOkgsc2VuZFJlYXNvbjpjLHVzZVNlbmRCZWFjb246WShvKSxzZW5kVHlwZTpvfX0pLCFIKX1jYXRjaChlKXsoMCxzLmtQKShSLmRpYWdMb2coKSwyLDQ4LCJVbmV4cGVjdGVkIEV4Y2VwdGlvbiBzZW5kaW5nIGJhdGNoOiAiKygwLGkuZVUpKGUpKX19fWZ1bmN0aW9uIHRlKGUsdCl7dmFyIG49e3VybDp4LGhkcnM6e30sdXNlSGRyczohMX07dD8obi5oZHJzPSgwLGEubDcpKG4uaGRycyxGKSxuLnVzZUhkcnM9KDAsby5GWSkobi5oZHJzKS5sZW5ndGg+MCk6KDAsby5yVykoRiwoZnVuY3Rpb24oZSx0KXt2W2VdP20obix2W2VdLHQsITEpOihuLmhkcnNbZV09dCxuLnVzZUhkcnM9ITApfSkpLG0obixwLnloLCJOT19BVVRIIix0KSxtKG4scC5CZSxhLnZzLHQpO3ZhciByPSIiOygwLG8udE8pKGUuYXBpS2V5cywoZnVuY3Rpb24oZSl7ci5sZW5ndGg+MCYmKHIrPSIsIikscis9ZX0pKSxtKG4scC50MixyLHQpLG0obixwLkNrLCgwLG8ubTYpKCkudG9TdHJpbmcoKSx0KTt2YXIgaT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGUuYmF0Y2hlcy5sZW5ndGg7dCsrKXt2YXIgbj1lLmJhdGNoZXNbdF0uTXNmcGMoKTtpZihuKXJldHVybiBlbmNvZGVVUklDb21wb25lbnQobil9cmV0dXJuIiJ9KGUpO2lmKCgwLGEuU24pKGkpJiYobi51cmwrPSImZXh0LmludHdlYi5tc2ZwYz0iK2kpLEUuc2hvdWxkQWRkQ2xvY2tTa2V3SGVhZGVycygpJiZtKG4scC5ROSxFLmdldENsb2NrU2tld0hlYWRlclZhbHVlKCksdCksSy5nZXRXUGFyYW0pe3ZhciBzPUsuZ2V0V1BhcmFtKCk7cz49MCYmKG4udXJsKz0iJnc9IitzKX1mb3IodmFyIHU9MDt1PEwubGVuZ3RoO3UrKyluLnVybCs9IiYiK0xbdV0ubmFtZSsiPSIrTFt1XS52YWx1ZTtyZXR1cm4gbn1mdW5jdGlvbiBuZShlLHQsbil7ZVt0XT1lW3RdfHx7fSxlW3RdW1IuaWRlbnRpZmllcl09bn1mdW5jdGlvbiByZSh0LG4scyxsKXtpZih0JiZ0LnBheWxvYWRCbG9iJiZ0LnBheWxvYWRCbG9iLmxlbmd0aD4wKXt2YXIgZD0hIWUuc2VuZEhvb2ssZj1OW3Quc2VuZFR5cGVdOyFZKHQuc2VuZFR5cGUpJiZ0LmlzQmVhY29uJiYyPT09dC5zZW5kUmVhc29uJiYoZj1OWzJdfHxOWzNdfHxmKTt2YXIgUz1YOyh0LmlzQmVhY29ufHwzPT09Zi5fdHJhbnNwb3J0KSYmKFM9ITEpO3ZhciBDPXRlKHQsUyk7Uz1TfHxDLnVzZUhkcnM7dmFyIGg9KDAsYS5oSykoKTsoMCx1LkxtKShLLChmdW5jdGlvbigpe3JldHVybiJIdHRwTWFuYWdlcjpfZG9QYXlsb2FkU2VuZCJ9KSwoZnVuY3Rpb24oKXtmb3IodmFyIEE9MDtBPHQuYmF0Y2hlcy5sZW5ndGg7QSsrKWZvcih2YXIgdj10LmJhdGNoZXNbQV0uZXZlbnRzKCksST0wO0k8di5sZW5ndGg7SSsrKXt2YXIgVT12W0ldO2lmKGope3ZhciBtPVUudGltaW5ncz1VLnRpbWluZ3N8fHt9O25lKG0sInNlbmRFdmVudFN0YXJ0IixoKSxuZShtLCJzZXJpYWxpemF0aW9uU3RhcnQiLG4pLG5lKG0sInNlcmlhbGl6YXRpb25Db21wbGV0ZWQiLHMpfVUuc2VuZEF0dGVtcHQ+MD9VLnNlbmRBdHRlbXB0Kys6VS5zZW5kQXR0ZW1wdD0xfWFlKHQuYmF0Y2hlcywxZTMrKGx8fDApLHQuc2VuZFR5cGUsITApO3ZhciBOPXtkYXRhOnQucGF5bG9hZEJsb2IsdXJsU3RyaW5nOkMudXJsLGhlYWRlcnM6Qy5oZHJzLF90aGVQYXlsb2FkOnQsX3NlbmRSZWFzb246bCx0aW1lb3V0Ond9OygwLG8ubzgpKGIpfHwoTi5kaXNhYmxlWGhyU3luYz0hIWIpLFMmJihnKE4uaGVhZGVycyxwLkFXKXx8KE4uaGVhZGVyc1twLkFXXT1wLnF3KSxnKE4uaGVhZGVycyxwLkRPKXx8KE4uaGVhZGVyc1twLkRPXT1wLkVkKSk7dmFyIHk9bnVsbDtmJiYoeT1mdW5jdGlvbihuKXtFLmZpcnN0UmVxdWVzdFNlbnQoKTt2YXIgcz1mdW5jdGlvbihuLGkpeyFmdW5jdGlvbih0LG4saSxzKXt2YXIgdT05ZTMsbD1udWxsLGQ9ITEsZj0hMTt0cnl7dmFyIFM9ITA7aWYodHlwZW9mIHQhPT1jLmpBKXtpZihuKXtFLnNldENsb2NrU2tldyhuW3AuJF9dKTt2YXIgQz1uW3AuR3RdfHxuWyJraWxsLWR1cmF0aW9uLXNlY29uZHMiXTsoMCxvLnRPKShPLnNldEtpbGxTd2l0Y2hUZW5hbnRzKG5bcC5nYl0sQyksKGZ1bmN0aW9uKGUpeygwLG8udE8pKGkuYmF0Y2hlcywoZnVuY3Rpb24odCl7aWYodC5pS2V5KCk9PT1lKXtsPWx8fFtdO3ZhciBuPXQuc3BsaXQoMCk7aS5udW1FdmVudHMtPW4uY291bnQoKSxsLnB1c2gobil9fSkpfSkpfWlmKDIwMD09dHx8MjA0PT10KXJldHVybiB2b2lkKHU9MjAwKTsoISgwLEguRCkodCl8fGkubnVtRXZlbnRzPD0wKSYmKFM9ITEpLHU9OWUzK3QlMWUzfWlmKFMpe3U9MTAwO3ZhciBoPWkucmV0cnlDbnQ7MD09PWkuc2VuZFR5cGUmJihoPHI/KGQ9ITAsb2UoKGZ1bmN0aW9uKCl7MD09PWkuc2VuZFR5cGUmJk0tLSxlZShpLmJhdGNoZXMsaCsxLGkuaXNUZWFyZG93bixXPzI6aS5zZW5kVHlwZSw1KX0pLFcsKDAsSC5lKShoKSkpOihmPSEwLFcmJih1PTgwMDEpKSl9fWZpbmFsbHl7ZHx8KEUuc2V0Q2xvY2tTa2V3KCksZnVuY3Rpb24odCxuLHIsaSl7dHJ5e2kmJlIuX2JhY2tPZmZUcmFuc21pc3Npb24oKSwyMDA9PT1uJiYoaXx8dC5pc1N5bmN8fFIuX2NsZWFyQmFja09mZigpLGZ1bmN0aW9uKGUpe2lmKGope3ZhciB0PSgwLGEuaEspKCk7KDAsby50TykoZSwoZnVuY3Rpb24oZSl7ZSYmZS5jb3VudCgpPjAmJmZ1bmN0aW9uKGUsdCl7aiYmKDAsby50TykoZSwoZnVuY3Rpb24oZSl7bmUoZS50aW1pbmdzPWUudGltaW5nc3x8e30sInNlbmRFdmVudENvbXBsZXRlZCIsdCl9KSl9KGUuZXZlbnRzKCksdCl9KSl9fSh0LmJhdGNoZXMpKSxhZSh0LmJhdGNoZXMsbix0LnNlbmRUeXBlLCEwKX1maW5hbGx5ezA9PT10LnNlbmRUeXBlJiYoTS0tLDUhPT1yJiZlLnNlbmRRdWV1ZWRSZXF1ZXN0cyh0LnNlbmRUeXBlLHIpKX19KGksdSxzLGYpKSxhZShsLDgwMDQsaS5zZW5kVHlwZSl9fShuLGksdCxsKX0sdT10LmlzVGVhcmRvd258fHQuaXNTeW5jO3RyeXtmLnNlbmRQT1NUKG4scyx1KSxlLnNlbmRMaXN0ZW5lciYmZS5zZW5kTGlzdGVuZXIoTixuLHUsdC5pc0JlYWNvbil9Y2F0Y2goZSl7Ui5kaWFnTG9nKCkud2FyblRvQ29uc29sZSgiVW5leHBlY3RlZCBleGNlcHRpb24gc2VuZGluZyBwYXlsb2FkLiBFeDoiKygwLGkuZVUpKGUpKSxaKHMsMCx7fSl9fSksKDAsdS5MbSkoSywoZnVuY3Rpb24oKXtyZXR1cm4iSHR0cE1hbmFnZXI6X2RvUGF5bG9hZFNlbmQuc2VuZGVyIn0pLChmdW5jdGlvbigpe2lmKHkpaWYoMD09PXQuc2VuZFR5cGUmJk0rKyxkJiYhdC5pc0JlYWNvbiYmMyE9PWYuX3RyYW5zcG9ydCl7dmFyIG49e2RhdGE6Ti5kYXRhLHVybFN0cmluZzpOLnVybFN0cmluZyxoZWFkZXJzOigwLGEubDcpKHt9LE4uaGVhZGVycyksdGltZW91dDpOLnRpbWVvdXQsZGlzYWJsZVhoclN5bmM6Ti5kaXNhYmxlWGhyU3luY30scj0hMTsoMCx1LkxtKShLLChmdW5jdGlvbigpe3JldHVybiJIdHRwTWFuYWdlcjpfZG9QYXlsb2FkU2VuZC5zZW5kSG9vayJ9KSwoZnVuY3Rpb24oKXt0cnl7ZS5zZW5kSG9vayhuLChmdW5jdGlvbihlKXtyPSEwLFR8fGUuX3RoZVBheWxvYWR8fChlLl90aGVQYXlsb2FkPWUuX3RoZVBheWxvYWR8fE4uX3RoZVBheWxvYWQsZS5fc2VuZFJlYXNvbj1lLl9zZW5kUmVhc29ufHxOLl9zZW5kUmVhc29uKSx5KGUpfSksdC5pc1N5bmN8fHQuaXNUZWFyZG93bil9Y2F0Y2goZSl7cnx8eShOKX19KSl9ZWxzZSB5KE4pfSkpfSksKGZ1bmN0aW9uKCl7cmV0dXJue3RoZVBheWxvYWQ6dCxzZXJpYWxpemF0aW9uU3RhcnQ6bixzZXJpYWxpemF0aW9uQ29tcGxldGVkOnMsc2VuZFJlYXNvbjpsfX0pLHQuaXNTeW5jKX10LnNpemVFeGNlZWQmJnQuc2l6ZUV4Y2VlZC5sZW5ndGg+MCYmYWUodC5zaXplRXhjZWVkLDgwMDMsdC5zZW5kVHlwZSksdC5mYWlsZWRFdnRzJiZ0LmZhaWxlZEV2dHMubGVuZ3RoPjAmJmFlKHQuZmFpbGVkRXZ0cyw4MDAyLHQuc2VuZFR5cGUpfWZ1bmN0aW9uIG9lKGUsdCxuKXt0P2UoKTpJLnNldChlLG4pfWZ1bmN0aW9uIGllKHQpe3ZhciBuPWUuX3Jlc3BvbnNlSGFuZGxlcnM7dHJ5e2Zvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKXRyeXtuW3JdKHQpfWNhdGNoKGUpeygwLHMua1ApKFIuZGlhZ0xvZygpLDEsNTE5LCJSZXNwb25zZSBoYW5kbGVyIGZhaWxlZDogIitlKX1pZih0KXt2YXIgbz1KU09OLnBhcnNlKHQpOygwLGEuU24pKG8ud2ViUmVzdWx0KSYmKDAsYS5Tbikoby53ZWJSZXN1bHRbcC5hQl0pJiZ5LnNldCgiTVNGUEMiLG8ud2ViUmVzdWx0W3AuYUJdLDMxNTM2ZTMpfX1jYXRjaChlKXt9fWZ1bmN0aW9uIGFlKGUsdCxuLHIpe2lmKGUmJmUubGVuZ3RoPjAmJkEpe3ZhciBvPUFbKGM9dCxsPWhbY10sKDAsYS5TbikobCl8fChsPXAuVVgsYz49OWUzJiZjPD05OTk5P2w9cC5ZYjpjPj04ZTMmJmM8PTg5OTk/bD1wLnVGOmM+PTFlMyYmYzw9MTk5OSYmKGw9cC5YNCkpLGwpXTtpZihvKXt2YXIgaT0wIT09bjsoMCx1LkxtKShLLChmdW5jdGlvbigpe3JldHVybiJIdHRwTWFuYWdlcjpfc2VuZEJhdGNoZXNOb3RpZmljYXRpb24ifSksKGZ1bmN0aW9uKCl7b2UoKGZ1bmN0aW9uKCl7dHJ5e28uY2FsbChBLGUsdCxpLG4pfWNhdGNoKGUpeygwLHMua1ApKFIuZGlhZ0xvZygpLDEsNzQsInNlbmQgcmVxdWVzdCBub3RpZmljYXRpb24gZmFpbGVkOiAiK2UpfX0pLHJ8fGksMCl9KSwoZnVuY3Rpb24oKXtyZXR1cm57YmF0Y2hlczokKGUpLHJlYXNvbjp0LGlzU3luYzppLHNlbmRTeW5jOnIsc2VuZFR5cGU6bn19KSwhaSl9fXZhciBjLGx9ZS5pbml0aWFsaXplPWZ1bmN0aW9uKGUsdCxuLHIsYSl7dmFyIHM7YXx8KGE9e30pLHg9ZSt4LFg9ISEoMCxvLm84KShhLmF2b2lkT3B0aW9ucyl8fCFhLmF2b2lkT3B0aW9ucyxLPXQseT10LmdldENvb2tpZU1ncigpLGo9IUsuY29uZmlnLmRpc2FibGVFdmVudFRpbWluZ3M7dmFyIHU9ISFLLmNvbmZpZy5lbmFibGVDb21wb3VuZEtleTtSPW47dmFyIGM9YS52YWx1ZVNhbml0aXplcixIPWEuc3RyaW5naWZ5T2JqZWN0czsoMCxvLm84KShhLmVuYWJsZUNvbXBvdW5kS2V5KXx8KHU9ISFhLmVuYWJsZUNvbXBvdW5kS2V5KSx3PWEueGhyVGltZW91dCxiPWEuZGlzYWJsZVhoclN5bmMsaz0hKDAsaS5iJCkoKSxEPW5ldyBsLmUoSyxjLEgsdSk7dmFyIFM9cixwPWEuYWx3YXlzVXNlWGhyT3ZlcnJpZGU/cjpudWxsLEM9YS5hbHdheXNVc2VYaHJPdmVycmlkZT9yOm51bGw7aWYoIXIpe1Q9ITE7dmFyIGg9KDAsaS5rJCkoKTtoJiZoLnByb3RvY29sJiYiZmlsZToiPT09aC5wcm90b2NvbC50b0xvd2VyQ2FzZSgpJiYoZD0hMSk7dmFyIEE9W107QT0oMCxpLmIkKSgpP1syLDFdOlsxLDIsM107dmFyIHY9YS50cmFuc3BvcnRzO3YmJigoMCxvLmhqKSh2KT9BPVt2XS5jb25jYXQoQSk6KDAsby5rSikodikmJihBPXYuY29uY2F0KEEpKSkscj1mKEEsITEpLFM9ZihBLCEwKSxyfHxSLmRpYWdMb2coKS53YXJuVG9Db25zb2xlKCJObyBhdmFpbGFibGUgdHJhbnNwb3J0IHRvIHNlbmQgZXZlbnRzIil9KHM9e30pWzBdPXIsc1sxXT1TfHxmKFsxLDIsM10sITApLHNbMl09cHx8ZihbMywyXSwhMCl8fFN8fGYoWzFdLCEwKSxzWzNdPUN8fGYoWzIsM10sITApfHxTfHxmKFsxXSwhMCksTj1zfSxlLl9nZXREYmdQbGdUYXJnZXRzPWZ1bmN0aW9uKCl7cmV0dXJuW05bMF0sTyxELE5dfSxlLmFkZFF1ZXJ5U3RyaW5nUGFyYW1ldGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTA7bjxMLmxlbmd0aDtuKyspaWYoTFtuXS5uYW1lPT09ZSlyZXR1cm4gdm9pZChMW25dLnZhbHVlPXQpO0wucHVzaCh7bmFtZTplLHZhbHVlOnR9KX0sZS5hZGRIZWFkZXI9ZnVuY3Rpb24oZSx0KXtGW2VdPXR9LGUuY2FuU2VuZFJlcXVlc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gSigpJiZFLmFsbG93UmVxdWVzdFNlbmRpbmcoKX0sZS5zZW5kUXVldWVkUmVxdWVzdHM9ZnVuY3Rpb24oZSx0KXsoMCxvLm84KShlKSYmKGU9MCksVyYmKGU9UShlKSx0PTIpLF8oQixlLDApJiZlZShHKCksMCwhMSxlLHR8fDApfSxlLmlzQ29tcGxldGVseUlkbGU9ZnVuY3Rpb24oKXtyZXR1cm4hUCYmMD09PU0mJjA9PT1CLmxlbmd0aH0sZS5zZXRVbmxvYWRpbmc9ZnVuY3Rpb24oZSl7Vz1lfSxlLmFkZEJhdGNoPWZ1bmN0aW9uKGUpe2lmKGUmJmUuY291bnQoKT4wKXtpZihPLmlzVGVuYW50S2lsbGVkKGUuaUtleSgpKSlyZXR1cm4hMTtCLnB1c2goZSl9cmV0dXJuITB9LGUudGVhcmRvd249ZnVuY3Rpb24oKXtCLmxlbmd0aD4wJiZlZShHKCksMCwhMCwyLDIpfSxlLnBhdXNlPWZ1bmN0aW9uKCl7UD0hMH0sZS5yZXN1bWU9ZnVuY3Rpb24oKXtQPSExLGUuc2VuZFF1ZXVlZFJlcXVlc3RzKDAsNCl9LGUuc2VuZFN5bmNocm9ub3VzQmF0Y2g9ZnVuY3Rpb24oZSx0LG4pe2UmJmUuY291bnQoKT4wJiYoKDAsby5sZSkodCkmJih0PTEpLFcmJih0PVEodCksbj0yKSxlZShbZV0sMCwhMSx0LG58fDApKX19KSl9fSw4NjM0MzM6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7WjooKT0+aX0pO3ZhciByPW4oOTIzODA2KSxvPW4oOTI5NTQxKTtjb25zdCBpPWZ1bmN0aW9uIGUoKXt2YXIgdD17fTsoMCxyLlopKGUsdGhpcywoZnVuY3Rpb24oZSl7ZS5zZXRLaWxsU3dpdGNoVGVuYW50cz1mdW5jdGlvbihlLG4pe2lmKGUmJm4pdHJ5e3ZhciByPShzPWUuc3BsaXQoIiwiKSx1PVtdLHMmJigwLG8udE8pKHMsKGZ1bmN0aW9uKGUpe3UucHVzaCgoMCxvLm5kKShlKSl9KSksdSk7aWYoInRoaXMtcmVxdWVzdC1vbmx5Ij09PW4pcmV0dXJuIHI7Zm9yKHZhciBpPTFlMypwYXJzZUludChuLDEwKSxhPTA7YTxyLmxlbmd0aDsrK2EpdFtyW2FdXT0oMCxvLm02KSgpK2l9Y2F0Y2goZSl7cmV0dXJuW119dmFyIHMsdTtyZXR1cm5bXX0sZS5pc1RlbmFudEtpbGxlZD1mdW5jdGlvbihlKXt2YXIgbj10LHI9KDAsby5uZCkoZSk7cmV0dXJuIHZvaWQgMCE9PW5bcl0mJm5bcl0+KDAsby5tNikoKXx8KGRlbGV0ZSBuW3JdLCExKX19KSl9fSw4ODQ4MzooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtaOigpPT5VfSk7dmFyIHI9bigzNDUzNjIpLG89big5MjM4MDYpLGk9bigzMTcxNDApLGE9big3MDYwMzgpLHM9bigyMzU2MiksdT1uKDY5MTI1NCksYz1uKDkyOTU0MSksbD1uKDgwMzE0NSksSD1uKDcxODgxNCksZD1uKDY2MjM3MiksZj1uKDc2Njg2NCksUz1uKDk4MDM3KSxwPW4oNTQ3NDEwKSxDPW4oNTYwNDgxKSxoPW4oNDUyODQ4KSxBPW4oOTYwNjY2KSx2PW4oODA1ODgyKSxJPSJldmVudHNEaXNjYXJkZWQiO2NvbnN0IFU9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCgpe3ZhciBuLHI9ZS5jYWxsKHRoaXMpfHx0aGlzO3IuaWRlbnRpZmllcj0iUG9zdENoYW5uZWwiLHIucHJpb3JpdHk9MTAxMSxyLnZlcnNpb249IjMuMi4zIjt2YXIgZixVLGcsbSxSLE4sSyx5PSExLHc9W10sYj1udWxsLHg9ITEsTz0wLFA9NTAwLEU9MCxrPTFlNCxNPXt9LFQ9Uy5vdyxMPW51bGwsRj1udWxsLEI9MCxEPTAsaj17fSxXPS0xLFg9ITAsej0hMSxxPTYsWj0yO3JldHVybigwLG8uWikodCxyLChmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIHIoZSl7ImJlZm9yZXVubG9hZCIhPT0oZXx8KDAsbC5KaikoKS5ldmVudCkudHlwZSYmKHo9ITAsVS5zZXRVbmxvYWRpbmcoeikpLGVlKDIsMil9ZnVuY3Rpb24gbyhlKXt6PSExLFUuc2V0VW5sb2FkaW5nKHopfWZ1bmN0aW9uIFYoZSx0KXtpZihlLnNlbmRBdHRlbXB0fHwoZS5zZW5kQXR0ZW1wdD0wKSxlLmxhdGVuY3l8fChlLmxhdGVuY3k9MSksZS5leHQmJmUuZXh0LnRyYWNlJiZkZWxldGUgZS5leHQudHJhY2UsZS5leHQmJmUuZXh0LnVzZXImJmUuZXh0LnVzZXIuaWQmJmRlbGV0ZSBlLmV4dC51c2VyLmlkLFgmJihlLmV4dD0oMCxjLkF4KShlLmV4dCksZS5iYXNlRGF0YSYmKGUuYmFzZURhdGE9KDAsYy5BeCkoZS5iYXNlRGF0YSkpLGUuZGF0YSYmKGUuZGF0YT0oMCxjLkF4KShlLmRhdGEpKSksZS5zeW5jKWlmKEJ8fHgpZS5sYXRlbmN5PTMsZS5zeW5jPSExO2Vsc2UgaWYoVSlyZXR1cm4gWCYmKGU9KDAsYy5BeCkoZSkpLHZvaWQgVS5zZW5kU3luY2hyb25vdXNCYXRjaChwLmwuY3JlYXRlKGUuaUtleSxbZV0pLCEwPT09ZS5zeW5jPzE6ZS5zeW5jLDMpO3ZhciBuPWUubGF0ZW5jeSxyPUUsbz1rOzQ9PT1uJiYocj1PLG89UCk7dmFyIGk9ITE7aWYocjxvKWk9IXJlKGUsdCk7ZWxzZXt2YXIgYT0xLHM9MjA7ND09PW4mJihhPTQscz0xKSxpPSEwLGZ1bmN0aW9uKGUsdCxuLHIpe2Zvcig7bjw9dDspe3ZhciBvPXRlKGUsdCwhMCk7aWYobyYmby5jb3VudCgpPjApe3ZhciBpPW8uc3BsaXQoMCxyKSxhPWkuY291bnQoKTtpZihhPjApcmV0dXJuIDQ9PT1uP08tPWE6RS09YSxkZShJLFtpXSxILmguUXVldWVGdWxsKSwhMH1uKyt9cmV0dXJuIG9lKCksITF9KGUuaUtleSxlLmxhdGVuY3ksYSxzKSYmKGk9IXJlKGUsdCkpfWkmJkhlKEksW2VdLEguaC5RdWV1ZUZ1bGwpfWZ1bmN0aW9uIFkoZSx0LG4pe3ZhciByPWllKGUsdCxuKTtyZXR1cm4gVS5zZW5kUXVldWVkUmVxdWVzdHModCxuKSxyfWZ1bmN0aW9uIFEoKXtyZXR1cm4gRT4wfWZ1bmN0aW9uIEooKXtpZihXPj0wJiZpZShXLDAsUikmJlUuc2VuZFF1ZXVlZFJlcXVlc3RzKDAsUiksTz4wJiYhRiYmIXgpe3ZhciBlPU1bVF1bMl07ZT49MCYmKEY9XygoZnVuY3Rpb24oKXtGPW51bGwsWSg0LDAsMSksSigpfSksZSkpfXZhciB0PU1bVF1bMV07IUwmJiFiJiZ0Pj0wJiYheCYmKFEoKT9MPV8oKGZ1bmN0aW9uKCl7TD1udWxsLFkoMD09PUQ/MzoxLDAsMSksRCsrLEQlPTIsSigpfSksdCk6RD0wKX1mdW5jdGlvbiBHKCl7bj1udWxsLHk9ITEsdz1bXSxiPW51bGwseD0hMSxPPTAsUD01MDAsRT0wLGs9MWU0LE09e30sVD1TLm93LEw9bnVsbCxGPW51bGwsQj0wLEQ9MCxmPW51bGwsaj17fSxnPXZvaWQgMCxtPTAsVz0tMSxSPW51bGwsWD0hMCx6PSExLHE9NixaPTIsTj1udWxsLEs9KDAsdi56RykoKSxVPW5ldyBDLngoNTAwLDIsMSx7cmVxdWV1ZTpjZSxzZW5kOmZlLHNlbnQ6U2UsZHJvcDpwZSxyc3BGYWlsOkNlLG90aDpoZX0sSyksdWUoKSxqWzRdPXtiYXRjaGVzOltdLGlLZXlNYXA6e319LGpbM109e2JhdGNoZXM6W10saUtleU1hcDp7fX0salsyXT17YmF0Y2hlczpbXSxpS2V5TWFwOnt9fSxqWzFdPXtiYXRjaGVzOltdLGlLZXlNYXA6e319LEFlKCl9ZnVuY3Rpb24gXyhlLHQpezA9PT10JiZCJiYodD0xKTt2YXIgbj0xZTM7cmV0dXJuIEImJihuPSgwLGguZSkoQi0xKSksSy5zZXQoZSx0Km4pfWZ1bmN0aW9uICQoKXtyZXR1cm4gbnVsbCE9PUwmJihLLmNsZWFyKEwpLEw9bnVsbCxEPTAsITApfWZ1bmN0aW9uIGVlKGUsdCl7JCgpLGImJihLLmNsZWFyKGIpLGI9bnVsbCkseHx8WSgxLGUsdCl9ZnVuY3Rpb24gdGUoZSx0LG4pe3ZhciByPWpbdF07cnx8KHI9alt0PTFdKTt2YXIgbz1yLmlLZXlNYXBbZV07cmV0dXJuIW8mJm4mJihvPXAubC5jcmVhdGUoZSksci5iYXRjaGVzLnB1c2gobyksci5pS2V5TWFwW2VdPW8pLG99ZnVuY3Rpb24gbmUodCxuKXtVLmNhblNlbmRSZXF1ZXN0KCkmJiFCJiYoZz4wJiZFPmcmJihuPSEwKSxuJiZudWxsPT1iJiZlLmZsdXNoKHQsbnVsbCwyMCkpfWZ1bmN0aW9uIHJlKGUsdCl7WCYmKGU9KDAsYy5BeCkoZSkpO3ZhciBuPWUubGF0ZW5jeSxyPXRlKGUuaUtleSxuLCEwKTtyZXR1cm4hIXIuYWRkRXZlbnQoZSkmJig0IT09bj8oRSsrLHQmJjA9PT1lLnNlbmRBdHRlbXB0JiZuZSghZS5zeW5jLG0+MCYmci5jb3VudCgpPj1tKSk6TysrLCEwKX1mdW5jdGlvbiBvZSgpe2Zvcih2YXIgZT0wLHQ9MCxuPWZ1bmN0aW9uKG4pe3ZhciByPWpbbl07ciYmci5iYXRjaGVzJiYoMCxjLnRPKShyLmJhdGNoZXMsKGZ1bmN0aW9uKHIpezQ9PT1uP2UrPXIuY291bnQoKTp0Kz1yLmNvdW50KCl9KSl9LHI9MTtyPD00O3IrKyluKHIpO0U9dCxPPWV9ZnVuY3Rpb24gaWUodCxuLHIpe3ZhciBvPSExLGE9MD09PW47cmV0dXJuIWF8fFUuY2FuU2VuZFJlcXVlc3QoKT8oMCxpLkxtKShlLmNvcmUsKGZ1bmN0aW9uKCl7cmV0dXJuIlBvc3RDaGFubmVsLl9xdWV1ZUJhdGNoZXMifSksKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLG49NDtuPj10Oyl7dmFyIHI9altuXTtyJiZyLmJhdGNoZXMmJnIuYmF0Y2hlcy5sZW5ndGg+MCYmKCgwLGMudE8pKHIuYmF0Y2hlcywoZnVuY3Rpb24odCl7VS5hZGRCYXRjaCh0KT9vPW98fHQmJnQuY291bnQoKT4wOmU9ZS5jb25jYXQodC5ldmVudHMoKSksND09PW4/Ty09dC5jb3VudCgpOkUtPXQuY291bnQoKX0pKSxyLmJhdGNoZXM9W10sci5pS2V5TWFwPXt9KSxuLS19ZS5sZW5ndGg+MCYmSGUoSSxlLEguaC5LaWxsU3dpdGNoKSxvJiZXPj10JiYoVz0tMSxSPTApfSksKGZ1bmN0aW9uKCl7cmV0dXJue2xhdGVuY3k6dCxzZW5kVHlwZTpuLHNlbmRSZWFzb246cn19KSwhYSk6KFc9Vz49MD9NYXRoLm1pbihXLHQpOnQsUj1NYXRoLm1heChSLHIpKSxvfWZ1bmN0aW9uIGFlKGUsdCl7WSgxLDAsdCksb2UoKSxzZSgoZnVuY3Rpb24oKXtlJiZlKCksdy5sZW5ndGg+MD9iPV8oKGZ1bmN0aW9uKCl7Yj1udWxsLGFlKHcuc2hpZnQoKSx0KX0pLDApOihiPW51bGwsSigpKX0pKX1mdW5jdGlvbiBzZShlKXtVLmlzQ29tcGxldGVseUlkbGUoKT9lKCk6Yj1fKChmdW5jdGlvbigpe2I9bnVsbCxzZShlKX0pLC4yNSl9ZnVuY3Rpb24gdWUoKXsoTT17fSlbUy5vd109WzIsMSwwXSxNW1MuamVdPVs2LDMsMF0sTVtTLmUyXT1bMTgsOSwwXX1mdW5jdGlvbiBjZSh0LG4pe3ZhciByPVtdLG89cTt6JiYobz1aKSwoMCxjLnRPKSh0LChmdW5jdGlvbih0KXt0JiZ0LmNvdW50KCk+MCYmKDAsYy50TykodC5ldmVudHMoKSwoZnVuY3Rpb24odCl7dCYmKHQuc3luYyYmKHQubGF0ZW5jeT00LHQuc3luYz0hMSksdC5zZW5kQXR0ZW1wdDxvPygoMCx1LmlmKSh0LGUuaWRlbnRpZmllciksVih0LCExKSk6ci5wdXNoKHQpKX0pKX0pKSxyLmxlbmd0aD4wJiZIZShJLHIsSC5oLk5vblJldHJ5YWJsZVN0YXR1cykseiYmZWUoMiwyKX1mdW5jdGlvbiBsZSh0LG4pe3ZhciByPWUuX25vdGlmaWNhdGlvbk1hbmFnZXJ8fHt9LG89clt0XTtpZihvKXRyeXtvLmFwcGx5KHIsbil9Y2F0Y2gobil7KDAsZC5rUCkoZS5kaWFnTG9nKCksMSw3NCx0KyIgbm90aWZpY2F0aW9uIGZhaWxlZDogIituKX19ZnVuY3Rpb24gSGUoZSx0KXtmb3IodmFyIG49W10scj0yO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspbltyLTJdPWFyZ3VtZW50c1tyXTt0JiZ0Lmxlbmd0aD4wJiZsZShlLFt0XS5jb25jYXQobikpfWZ1bmN0aW9uIGRlKGUsdCl7Zm9yKHZhciBuPVtdLHI9MjtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKW5bci0yXT1hcmd1bWVudHNbcl07dCYmdC5sZW5ndGg+MCYmKDAsYy50TykodCwoZnVuY3Rpb24odCl7dCYmdC5jb3VudCgpPjAmJmxlKGUsW3QuZXZlbnRzKCldLmNvbmNhdChuKSl9KSl9ZnVuY3Rpb24gZmUoZSx0LG4pe2UmJmUubGVuZ3RoPjAmJmxlKCJldmVudHNTZW5kUmVxdWVzdCIsW3Q+PTFlMyYmdDw9MTk5OT90LTFlMzowLCEwIT09bl0pfWZ1bmN0aW9uIFNlKGUsdCl7ZGUoImV2ZW50c1NlbnQiLGUsdCksSigpfWZ1bmN0aW9uIHBlKGUsdCl7ZGUoSSxlLHQ+PThlMyYmdDw9ODk5OT90LThlMzpILmguVW5rbm93bil9ZnVuY3Rpb24gQ2UoZSl7ZGUoSSxlLEguaC5Ob25SZXRyeWFibGVTdGF0dXMpLEooKX1mdW5jdGlvbiBoZShlLHQpe2RlKEksZSxILmguVW5rbm93biksSigpfWZ1bmN0aW9uIEFlKCl7bT1uJiZuLmRpc2FibGVBdXRvQmF0Y2hGbHVzaExpbWl0PzA6TWF0aC5tYXgoMTUwMCxrLzYpfUcoKSxlLl9nZXREYmdQbGdUYXJnZXRzPWZ1bmN0aW9uKCl7cmV0dXJuW1VdfSxlLmluaXRpYWxpemU9ZnVuY3Rpb24obCxILGQpeygwLGkuTG0pKEgsKGZ1bmN0aW9uKCl7cmV0dXJuIlBvc3RDaGFubmVsOmluaXRpYWxpemUifSksKGZ1bmN0aW9uKCl7dmFyIGk9SDt0LmluaXRpYWxpemUobCxILGQpO3RyeXtILmFkZFVubG9hZENiO049KDAsYS5qVSkoKDAscy5KKShlLmlkZW50aWZpZXIpLEguZXZ0TmFtZXNwYWNlJiZILmV2dE5hbWVzcGFjZSgpKTt2YXIgUz1lLl9nZXRUZWxDdHgoKTtsLmV4dGVuc2lvbkNvbmZpZ1tlLmlkZW50aWZpZXJdPWwuZXh0ZW5zaW9uQ29uZmlnW2UuaWRlbnRpZmllcl18fHt9LG49Uy5nZXRFeHRDZmcoZS5pZGVudGlmaWVyKSxLPSgwLHYuekcpKG4uc2V0VGltZW91dE92ZXJyaWRlLG4uY2xlYXJUaW1lb3V0T3ZlcnJpZGUpLFg9IW4uZGlzYWJsZU9wdGltaXplT2JqJiYoMCx1Lm1KKSgpLGZ1bmN0aW9uKGUpe3ZhciB0PWUuZ2V0V1BhcmFtO2UuZ2V0V1BhcmFtPWZ1bmN0aW9uKCl7dmFyIGU9MDtyZXR1cm4gbi5pZ25vcmVNYzFNczBDb29raWVQcm9jZXNzaW5nJiYoZXw9MiksZXx0KCl9fShpKSxuLmV2ZW50c0xpbWl0SW5NZW0+MCYmKGs9bi5ldmVudHNMaW1pdEluTWVtKSxuLmltbWVkaWF0ZUV2ZW50TGltaXQ+MCYmKFA9bi5pbW1lZGlhdGVFdmVudExpbWl0KSxuLmF1dG9GbHVzaEV2ZW50c0xpbWl0PjAmJihnPW4uYXV0b0ZsdXNoRXZlbnRzTGltaXQpLCgwLGMuaGopKG4ubWF4RXZlbnRSZXRyeUF0dGVtcHRzKSYmKHE9bi5tYXhFdmVudFJldHJ5QXR0ZW1wdHMpLCgwLGMuaGopKG4ubWF4VW5sb2FkRXZlbnRSZXRyeUF0dGVtcHRzKSYmKFo9bi5tYXhVbmxvYWRFdmVudFJldHJ5QXR0ZW1wdHMpLEFlKCksbi5odHRwWEhST3ZlcnJpZGUmJm4uaHR0cFhIUk92ZXJyaWRlLnNlbmRQT1NUJiYoZj1uLmh0dHBYSFJPdmVycmlkZSksKDAsdS5TbikobC5hbm9uQ29va2llTmFtZSkmJlUuYWRkUXVlcnlTdHJpbmdQYXJhbWV0ZXIoImFub25ja25tIixsLmFub25Db29raWVOYW1lKSxVLnNlbmRIb29rPW4ucGF5bG9hZFByZXByb2Nlc3NvcixVLnNlbmRMaXN0ZW5lcj1uLnBheWxvYWRMaXN0ZW5lcjt2YXIgcD1uLm92ZXJyaWRlRW5kcG9pbnRVcmw/bi5vdmVycmlkZUVuZHBvaW50VXJsOmwuZW5kcG9pbnRVcmw7ZS5fbm90aWZpY2F0aW9uTWFuYWdlcj1sLmV4dGVuc2lvbkNvbmZpZy5Ob3RpZmljYXRpb25NYW5hZ2VyLFUuaW5pdGlhbGl6ZShwLGUuY29yZSxlLGYsbik7dmFyIEM9bC5kaXNhYmxlUGFnZVVubG9hZEV2ZW50c3x8W107KDAsYS5jOSkocixDLE4pLCgwLGEuVEopKHIsQyxOKSwoMCxhLm5EKShvLGwuZGlzYWJsZVBhZ2VTaG93RXZlbnRzLE4pfWNhdGNoKHQpe3Rocm93IGUuc2V0SW5pdGlhbGl6ZWQoITEpLHR9fSksKGZ1bmN0aW9uKCl7cmV0dXJue2NvcmVDb25maWc6bCxjb3JlOkgsZXh0ZW5zaW9uczpkfX0pKX0sZS5wcm9jZXNzVGVsZW1ldHJ5PWZ1bmN0aW9uKHQscil7KDAsdS5pZikodCxlLmlkZW50aWZpZXIpO3ZhciBvPShyPWUuX2dldFRlbEN0eChyKSkuZ2V0RXh0Q2ZnKGUuaWRlbnRpZmllciksaT0hIW4uZGlzYWJsZVRlbGVtZXRyeTtvJiYoaT1pfHwhIW8uZGlzYWJsZVRlbGVtZXRyeSk7dmFyIGE9dDtpfHx5fHwobi5vdmVycmlkZUluc3RydW1lbnRhdGlvbktleSYmKGEuaUtleT1uLm92ZXJyaWRlSW5zdHJ1bWVudGF0aW9uS2V5KSxvJiZvLm92ZXJyaWRlSW5zdHJ1bWVudGF0aW9uS2V5JiYoYS5pS2V5PW8ub3ZlcnJpZGVJbnN0cnVtZW50YXRpb25LZXkpLFYoYSwhMCksej9lZSgyLDIpOkooKSksZS5wcm9jZXNzTmV4dChhLHIpfSxlLl9kb1RlYXJkb3duPWZ1bmN0aW9uKGUsdCl7ZWUoMiwyKSx5PSEwLFUudGVhcmRvd24oKSwoMCxhLkpBKShudWxsLE4pLCgwLGEuQzkpKG51bGwsTiksKDAsYS5ZbCkobnVsbCxOKSxHKCl9LGUuc2V0RXZlbnRRdWV1ZUxpbWl0cz1mdW5jdGlvbihlLHQpe2s9ZT4wP2U6MWU0LGc9dD4wP3Q6MCxBZSgpO3ZhciBuPUU+ZTtpZighbiYmbT4wKWZvcih2YXIgcj0xOyFuJiZyPD0zO3IrKyl7dmFyIG89altyXTtvJiZvLmJhdGNoZXMmJigwLGMudE8pKG8uYmF0Y2hlcywoZnVuY3Rpb24oZSl7ZSYmZS5jb3VudCgpPj1tJiYobj0hMCl9KSl9bmUoITAsbil9LGUucGF1c2U9ZnVuY3Rpb24oKXskKCkseD0hMCxVLnBhdXNlKCl9LGUucmVzdW1lPWZ1bmN0aW9uKCl7eD0hMSxVLnJlc3VtZSgpLEooKX0sZS5hZGRSZXNwb25zZUhhbmRsZXI9ZnVuY3Rpb24oZSl7VS5fcmVzcG9uc2VIYW5kbGVycy5wdXNoKGUpfSxlLl9sb2FkVHJhbnNtaXRQcm9maWxlcz1mdW5jdGlvbihlKXskKCksdWUoKSxUPVMub3csSigpLCgwLGMuclcpKGUsKGZ1bmN0aW9uKGUsdCl7dmFyIG49dC5sZW5ndGg7aWYobj49Mil7dmFyIHI9bj4yP3RbMl06MDtpZih0LnNwbGljZSgwLG4tMiksdFsxXTwwJiYodFswXT0tMSksdFsxXT4wJiZ0WzBdPjApe3ZhciBvPXRbMF0vdFsxXTt0WzBdPU1hdGguY2VpbChvKSp0WzFdfXI+PTAmJnRbMV0+PTAmJnI+dFsxXSYmKHI9dFsxXSksdC5wdXNoKHIpLE1bZV09dH19KSl9LGUuZmx1c2g9ZnVuY3Rpb24oZSx0LG4pe2lmKHZvaWQgMD09PWUmJihlPSEwKSwheClpZihuPW58fDEsZSludWxsPT1iPygkKCksaWUoMSwwLG4pLGI9XygoZnVuY3Rpb24oKXtiPW51bGwsYWUodCxuKX0pLDApKTp3LnB1c2godCk7ZWxzZXt2YXIgcj0kKCk7WSgxLDEsbiksbnVsbCE9dCYmdCgpLHImJkooKX19LGUuc2V0TXNhQXV0aFRpY2tldD1mdW5jdGlvbihlKXtVLmFkZEhlYWRlcihBLlFqLGUpfSxlLmhhc0V2ZW50cz1RLGUuX3NldFRyYW5zbWl0UHJvZmlsZT1mdW5jdGlvbihlKXtUIT09ZSYmdm9pZCAwIT09TVtlXSYmKCQoKSxUPWUsSigpKX0sZS5fYmFja09mZlRyYW5zbWlzc2lvbj1mdW5jdGlvbigpe0I8NCYmKEIrKywkKCksSigpKX0sZS5fY2xlYXJCYWNrT2ZmPWZ1bmN0aW9uKCl7QiYmKEI9MCwkKCksSigpKX0sKDAsYy5sXykoZSwiX3NldFRpbWVvdXRPdmVycmlkZSIsKGZ1bmN0aW9uKCl7cmV0dXJuIEsuc2V0fSksKGZ1bmN0aW9uKGUpe0s9KDAsdi56RykoZSxLLmNsZWFyKX0pKSwoMCxjLmxfKShlLCJfY2xlYXJUaW1lb3V0T3ZlcnJpZGUiLChmdW5jdGlvbigpe3JldHVybiBLLmNsZWFyfSksKGZ1bmN0aW9uKGUpe0s9KDAsdi56RykoSy5zZXQsZSl9KSl9KSkscn1yZXR1cm4oMCxyLm5lKSh0LGUpLHR9KGYuaSl9LDQ1Mjg0ODooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtEOigpPT5yLGU6KCk9Pm99KTtmdW5jdGlvbiByKGUpe3JldHVybiEoZT49MzAwJiZlPDUwMCYmNDA4IT1lJiY0MjkhPWV8fDUwMT09ZXx8NTA1PT1lKX1mdW5jdGlvbiBvKGUpe3ZhciB0LG49TWF0aC5mbG9vcigxMjAwKk1hdGgucmFuZG9tKCkpKzI0MDA7cmV0dXJuIHQ9TWF0aC5wb3coMixlKSpuLE1hdGgubWluKHQsNmU1KX19LDQ2MDE0OTooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtlOigpPT5IfSk7dmFyIHI9bigzMTcxNDApLG89big5Mjk1NDEpLGk9big2OTEyNTQpLGE9big1NDc0MTApLHM9big5MjM4MDYpLHU9MmU2LGM9TWF0aC5taW4odSw2NWUzKSxsPS9cLi8sSD1mdW5jdGlvbiBlKHQsbixILGYpe3ZhciBTPSJkYXRhIixwPSJiYXNlRGF0YSIsQz0hIWYsaD1uLEE9e307KDAscy5aKShlLHRoaXMsKGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIG4oZSx0LHIsYSxzLHUsYyl7KDAsby5yVykoZSwoZnVuY3Rpb24oZSxkKXt2YXIgZj1udWxs

--
Listserv moderated by Toyin Falola, University of Texas at Austin
To post to this group, send an email to USAAfricaDialogue@googlegroups.com
To subscribe to this group, send an email to USAAfricaDialogue+subscribe@googlegroups.com
Current archives at http://groups.google.com/group/USAAfricaDialogue
Early archives at http://www.utexas.edu/conferences/africa/ads/index.html
---
You received this message because you are subscribed to the Google Groups "USA Africa Dialogue Series" group.
To unsubscribe from this group and stop receiving emails from it, send an email to usaafricadialogue+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/usaafricadialogue/CAGBtzfNX6dCUnYNa8zTs6rsidoTU91XLecOmN0RVrLfj5zvK%2BQ%40mail.gmail.com.

--
Listserv moderated by Toyin Falola, University of Texas at Austin
To post to this group, send an email to USAAfricaDialogue@googlegroups.com
To subscribe to this group, send an email to USAAfricaDialogue+subscribe@googlegroups.com
Current archives at http://groups.google.com/group/USAAfricaDialogue
Early archives at http://www.utexas.edu/conferences/africa/ads/index.html
---
You received this message because you are subscribed to the Google Groups "USA Africa Dialogue Series" group.
To unsubscribe from this group and stop receiving emails from it, send an email to usaafricadialogue+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/usaafricadialogue/DU0PR03MB8415CCFC5328C00F488ECC8DAEB69%40DU0PR03MB8415.eurprd03.prod.outlook.com.

No comments:

Post a Comment

 
Vida de bombeiro Recipes Informatica Humor Jokes Mensagens Curiosity Saude Video Games Car Blog Animals Diario das Mensagens Eletronica Rei Jesus News Noticias da TV Artesanato Esportes Noticias Atuais Games Pets Career Religion Recreation Business Education Autos Academics Style Television Programming Motosport Humor News The Games Home Downs World News Internet Car Design Entertaimment Celebrities 1001 Games Doctor Pets Net Downs World Enter Jesus Variedade Mensagensr Android Rub Letras Dialogue cosmetics Genexus Car net Só Humor Curiosity Gifs Medical Female American Health Madeira Designer PPS Divertidas Estate Travel Estate Writing Computer Matilde Ocultos Matilde futebolcomnoticias girassol lettheworldturn topdigitalnet Bem amado enjohnny produceideas foodasticos cronicasdoimaginario downloadsdegraca compactandoletras newcuriosidades blogdoarmario arrozinhoii sonasol halfbakedtaters make-it-plain amatha