Vilayat Guliyev

Vilayat Mukhtar oglu Guliyev (Azerbaijani: Vilayət Muxtar oğlu Quliyev, Вилајәт Мухтар оғлу Гулијев, [vilajæt muxtar oɣlu ɡulijif], born 5 November 1952) is an Azerbaijani politician who was Minister of Foreign Affairs of Azerbaijan from 1999 to 2004. He was elected to the Azeri parliament in 1996 as a supporter of President Heydar Aliyev. He served as Minister of Foreign Affairs under Aliyev, and for short term under his son, Ilham, from October 1999 until April 2004, when he was replaced by Elmar Mammadyarov.[1]

Vilayat Guliyev
Vilayət Quliyev
Minister of Foreign Affairs of Azerbaijan
In office
October 26, 1999  April 7, 2004
PresidentHeydar Aliyev
Ilham Aliyev
Preceded byTofig Zulfugarov
Succeeded byElmar Mammadyarov
Personal details
Born (1952-11-05) 5 November 1952
Agjabadi, Azerbaijan

Early life

Guliyev was born on November 5, 1952 in a town of Agjabedi, Azerbaijan. Having completed high school, he enrolled at Azerbaijan State University in 1970 and graduated with a degree in Philology in 1975. He then worked as a teacher at a local school in Beylagan Rayon of Azerbaijan. At the same time, he was admitted to Azerbaijan National Academy of Sciences for doctoral studies. In 1978-1981, Guliyev worked as the head of department and later as deputy director of the Academy's Institute of Literature and Languages named after Nizami. From 1992 through 1993, he was a professor at Atatürk University in Turkey and in 1994 was appointed Chief Scientist at the National Academy of Sciences.

Political career

In 1996, Guliyev was elected to the National Assembly of Azerbaijan (Milli Mejlis). In October 1999, he was appointed as Minister of Foreign Affairs by President Heydar Aliyev. In 2004, Guliyev was appointed Ambassador of Azerbaijan to Poland.[1] He has since played a significant role in facilitating military cooperation of signing of military-technical memorandum with Poland and sparking interest of Polish government in transportation of Azerbaijani oil and gas to Poland and Ukraine through Odessa-Brody-Gdansk pipeline.[2] In 2010, Guliyev was appointed Ambassador of Azerbaijan to Hungary.[3]

Academic titles and works

In 1990, Guliyev obtained PhD in Philology. He authored 3 monographs and over 300 publications. Guliyev also wrote over 12 books. Main subject of his research was analysis of literature and history of its application in relations between Azerbaijan, Russia, Iran and Turkey in 19th-20th centuries. Vilayat Guliyev is fluent in Russian, Turkish, Arabic, English and Persian.[1]

Guliyev is married and has two children. One of his children, Shamil Guluzade currently works at Baku International Sea Trade Port.

gollark: I can come up with a thing to transmit ubqmachine™ details to osmarks.net or whatever which people can embed in their code.
gollark: It's an x86-64 system using debian or something.
gollark: > `import hashlib`Hashlib is still important!> `for entry, ubq323 in {**globals(), **__builtins__, **sys.__dict__, **locals(), CONSTANT: Entry()}.items():`Iterate over a bunch of things. I think only the builtins and globals are actually used.The stuff under here using `blake2s` stuff is actually written to be ridiculously unportable, to hinder analysis. This caused issues when trying to run it, so I had to hackily patch in the `/local` thing a few minutes before the deadline.> `for PyObject in gc.get_objects():`When I found out that you could iterate over all objects ever, this had to be incorporated somehow. This actually just looks for some random `os` function, and when it finds it loads the obfuscated code.> `F, G, H, I = typing(lookup[7]), typing(lookup[8]), __import__("functools"), lambda h, i, *a: F(G(h, i))`This is just a convoluted way to define `enumerate(range))` in one nice function.> `print(len(lookup), lookup[3], typing(lookup[3])) #`This is what actually loads the obfuscated stuff. I think.> `class int(typing(lookup[0])):`Here we subclass `complex`. `complex` is used for 2D coordinates within the thing, so I added some helper methods, such as `__iter__`, allowing unpacking of complex numbers into real and imaginary parts, `abs`, which generates a complex number a+ai, and `ℝ`, which provvides the floored real parts of two things.> `class Mаtrix:`This is where the magic happens. It actually uses unicode homoglyphs again, for purposes.> `self = typing("dab7d4733079c8be454e64192ce9d20a91571da25fc443249fc0be859b227e5d")`> `rows = gc`I forgot what exactly the `typing` call is looking up, but these aren't used for anything but making the fake type annotations work.> `def __init__(rows: self, self: rows):`This slightly nonidiomatic function simply initializes the matrix's internals from the 2D array used for inputs.> `if 1 > (typing(lookup[1]) in dir(self)):`A convoluted way to get whether something has `__iter__` or not.
gollark: If you guess randomly the chance of getting none right is 35%ish.
gollark: Anyway, going through #12 in order:> `import math, collections, random, gc, hashlib, sys, hashlib, smtplib, importlib, os.path, itertools, hashlib`> `import hashlib`We need some libraries to work with. Hashlib is very important, so to be sure we have hashlib we make sure to keep importing it.> `ℤ = int`> `ℝ = float`> `Row = "__iter__"`Create some aliases for int and float to make it mildly more obfuscated. `Row` is not used directly in anywhere significant.> `lookup = [...]`These are a bunch of hashes used to look up globals/objects. Some of them are not actually used. There is deliberately a comma missing, because of weird python string concattey things.```pythondef aes256(x, X): import hashlib A = bytearray() for Α, Ҙ in zip(x, hashlib.shake_128(X).digest(x.__len__())): A.append(Α ^ Ҙ) import zlib, marshal, hashlib exec(marshal.loads(zlib.decompress(A)))```Obviously, this is not actual AES-256. It is abusing SHAKE-128's variable length digests to implement what is almost certainly an awful stream cipher. The arbitrary-length hash of our key, X, is XORed with the data. Finally, the result of this is decompressed, loaded (as a marshalled function, which is extremely unportable bytecode I believe), and executed. This is only used to load one piece of obfuscated code, which I may explain later.> `class Entry(ℝ):`This is also only used once, in `typing` below. Its `__init__` function implements Rule 110 in a weird and vaguely golfy way involving some sets and bit manipulation. It inherits from float, but I don't think this does much.> `#raise SystemExit(0)`I did this while debugging the rule 110 but I thought it would be fun to leave it in.> `def typing(CONSTANT: __import__("urllib3")):`This is an obfuscated way to look up objects and load our obfuscated code.> `return getattr(Entry, CONSTANT)`I had significant performance problems, so this incorporates a cache. This was cooler™️ than dicts.

See also

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.