How To Use TRUNK Only If IAX Fails?

Home » Asterisk Users » How To Use TRUNK Only If IAX Fails?
Asterisk Users 6 Comments

I have multiple Asterisk servers in various parts of the world all connected using dedicated VPN

6 thoughts on - How To Use TRUNK Only If IAX Fails?

  • Many Thanks Carlos, I was hoping to check whether the remote server is available before I issue the dial in my dial plan.

    Is there a better way to do it in asterisk without using unix commands?

    Many Thanks, Ashwin

    This email (and any attachments or hyperlinks within it) may contain information that is confidential, legally privileged or otherwise protected from disclosure. If you are not the intended recipient of this email, you are not entitled to use, disclose, distribute, copy, print, disseminate or rely on this email in any way. If you have received this email in error, please notify the sender immediately by telephone or email and destroy it, and all copies of it. Thank you for your cooperation.

  • The command he gave you was in Asterisk. Why do you not want to call it to try it?

    Then you can fail over to the other trunk if the IAX link is down.

    Kind regards,

    Matt

  • SGkgTWF0dCwNCg0KSSB3YXMgYSBiaXQgY29uY2VybmVkIG9uIHRoZSBkZWxheSBpZiB0aGVyZSBt aWdodCAgYmUgYW55IHdoZW4gbXkgaWF4IGxpbmsgaXMgZG93bj8NCkl0IHdvdWxkIGJlIHR3byBk aWFsIHN0ZXBzIHJpZ2h0IHdoZW4gbXkgaWF4IGxpbmsgaXMgZG93bi4NCkJ1dCBJ4oCZbSBtb3Jl IHRoYW4gaGFwcHkgdG8gdHJ5Lg0KDQpNYW55IFRoYW5rcywNCkFzaHdpbi4NCkZyb206IGFzdGVy aXNrLXVzZXJzLWJvdW5jZXNAbGlzdHMuZGlnaXVtLmNvbSBbbWFpbHRvOmFzdGVyaXNrLXVzZXJz LWJvdW5jZXNAbGlzdHMuZGlnaXVtLmNvbV0gT24gQmVoYWxmIE9mIE1hdHQgUmlkZGVsbCAobGlz dHMpDQpTZW50OiAzMCBNYXkgMjAxNSAxNjo1NQ0KVG86IEFzdGVyaXNrIFVzZXJzIE1haWxpbmcg TGlzdCAtIE5vbi1Db21tZXJjaWFsIERpc2N1c3Npb24NClN1YmplY3Q6IFJlOiBbYXN0ZXJpc2st dXNlcnNdIEhvdyB0byB1c2UgVFJVTksgb25seSBpZiBJQVggZmFpbHM/DQoNClRoZSBjb21tYW5k IGhlIGdhdmUgeW91IHdhcyBpbiBBc3Rlcmlzay4gV2h5IGRvIHlvdSBub3Qgd2FudCB0byBjYWxs IGl0IHRvIHRyeSBpdD8NCg0KVGhlbiB5b3UgY2FuIGZhaWwgb3ZlciB0byB0aGUgb3RoZXIgdHJ1
    bmsgaWYgdGhlIElBWCBsaW5rIGlzIGRvd24uDQoNCktpbmQgcmVnYXJkcywNCg0KDQpNYXR0DQoN
    Ck9uIE1heSAzMCwgMjAxNSwgYXQgMjowMyBBTSwgQXNod2luIFN1cmVuZHJhbiA8QXNod2luLlN1
    cmVuZHJhbkBub3ctaGVhbHRoLmNvbTxtYWlsdG86QXNod2luLlN1cmVuZHJhbkBub3ctaGVhbHRo LmNvbT4+IHdyb3RlOg0KTWFueSBUaGFua3MgQ2FybG9zLCBJIHdhcyBob3BpbmcgdG8gY2hlY2sg d2hldGhlciB0aGUgcmVtb3RlIHNlcnZlciBpcw0KYXZhaWxhYmxlIGJlZm9yZSBJIGlzc3VlIHRo ZSBkaWFsIGluIG15IGRpYWwgcGxhbi4NCg0KSXMgdGhlcmUgYSBiZXR0ZXIgd2F5IHRvIGRvIGl0
    IGluIGFzdGVyaXNrIHdpdGhvdXQgdXNpbmcgdW5peCBjb21tYW5kcz8NCg0KDQpNYW55IFRoYW5r cywNCkFzaHdpbg0KDQpPbiA1LzMwLzE1LCAyOjA2IEFNLCAiQ2FybG9zIENoYXZleiIgPGN1cnNv ckB0ZWxlY29tYWJtZXguY29tPG1haWx0bzpjdXJzb3JAdGVsZWNvbWFibWV4LmNvbT4+IHdyb3Rl Og0KDQoNCk9uIDUvMjkvMTUgMToxNiBQTSwgQXNod2luIFN1cmVuZHJhbiB3cm90ZToNCkhpLA0K
    SSBoYXZlIG11bHRpcGxlIEFzdGVyaXNrIHNlcnZlcnMgaW4gdmFyaW91cyBwYXJ0cyBvZiB0aGUg d29ybGQgYWxsDQpjb25uZWN0ZWQgdXNpbmcgZGVkaWNhdGVkIFZQTsK5cy4NCg0KRWFjaCBvZiB0
    aGVzZSBzZXJ2ZXJzIGhhdmUgaWF4IGFuZCBkYWhkaSBUUlVOSyBjb25maWd1cmVkIG9uIHRoZW0u DQoNCk9jY2FzaW9uYWxseSB0aGUgVlBOwrlzIGZhaWwuDQoNCldoYXQgSSB3YW50IHRvIGJlIGFi bGUgdG8gZG8gaXMgb24gbXkgZGlhbCBwbGFuLCB1c2UgSUFYIGlmIHRoZSBhc3Rlcmlzaw0Kc2Vy dmVyIGNhbiByZWFjaCB0aGUgcmVtb3RlIHNlcnZlciB1c2luZyB0aGUgaW50ZXJuZXQgT1IsIHVz ZSBUUlVOSyBvbmx5DQppZiBpdCBjYW7CuXQgdXNlIElBWC4NCg0KQW55IGlkZWFzIG9uIGhvdyB0
    aGlzIGNhbiBiZSBpbXBsZW1lbnRlZCBvbiB0aGUgZGlhbCBwbGFuPw0KDQoNCiAgIENoZWNrIHRo ZSBESUFMU1RBVFVTIHZhcmlhYmxlIHRvIHNlZSBpZiB0aGUgSUFYIHRydW5rIGZhaWxlZCBhbmQN
    CnRoZW4gZGlhbCB2aWEgREFIREkuDQoNCmh0dHBzOi8vd2lraS5hc3Rlcmlzay5vcmcvd2lraS9k aXNwbGF5L0FTVC9EaWFsK0NoYW5uZWwrVmFyaWFibGVzDQoNCi0tDQpUZWxlY29tdW5pY2FjaW9u ZXMgQWJpZXJ0YXMgZGUgTcOpeGljbyBTLkEuIGRlIEMuVi4NCkNhcmxvcyBDaMOhdmV6DQorNTIg KDU1KTkxMTYtOTExNjENCg0KDQotLQ0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQotLSBCYW5kd2lkdGggYW5kIENv bG9jYXRpb24gUHJvdmlkZWQgYnkgaHR0cDovL3d3dy5hcGktZGlnaXRhbC5jb20gLS0NCk5ldyB0
    byBBc3Rlcmlzaz8gSm9pbiB1cyBmb3IgYSBsaXZlIGludHJvZHVjdG9yeSB3ZWJpbmFyIGV2ZXJ5
    IFRodXJzOg0KICAgICAgICAgICAgIGh0dHA6Ly93d3cuYXN0ZXJpc2sub3JnL2hlbGxvDQoNCmFz dGVyaXNrLXVzZXJzIG1haWxpbmcgbGlzdA0KVG8gVU5TVUJTQ1JJQkUgb3IgdXBkYXRlIG9wdGlv bnMgdmlzaXQ6DQogaHR0cDovL2xpc3RzLmRpZ2l1bS5jb20vbWFpbG1hbi9saXN0aW5mby9hc3Rl cmlzay11c2Vycw0KDQpUaGlzIGVtYWlsIChhbmQgYW55IGF0dGFjaG1lbnRzIG9yIGh5cGVybGlu a3Mgd2l0aGluIGl0KSBtYXkgY29udGFpbiBpbmZvcm1hdGlvbiB0aGF0IGlzIGNvbmZpZGVudGlh bCwgbGVnYWxseSBwcml2aWxlZ2VkIG9yIG90aGVyd2lzZSBwcm90ZWN0ZWQgZnJvbSBkaXNjbG9z dXJlLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50IG9mIHRoaXMgZW1haWws IHlvdSBhcmUgbm90IGVudGl0bGVkIHRvIHVzZSwgZGlzY2xvc2UsIGRpc3RyaWJ1dGUsIGNvcHks IHByaW50LCBkaXNzZW1pbmF0ZSBvciByZWx5IG9uIHRoaXMgZW1haWwgaW4gYW55IHdheS4gSWYg eW91IGhhdmUgcmVjZWl2ZWQgdGhpcyBlbWFpbCBpbiBlcnJvciwgcGxlYXNlIG5vdGlmeSB0aGUg c2VuZGVyIGltbWVkaWF0ZWx5IGJ5IHRlbGVwaG9uZSBvciBlbWFpbCBhbmQgZGVzdHJveSBpdCwg YW5kIGFsbCBjb3BpZXMgb2YgaXQuIFRoYW5rIHlvdSBmb3IgeW91ciBjb29wZXJhdGlvbi4NCi0t DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18NCi0tIEJhbmR3aWR0aCBhbmQgQ29sb2NhdGlvbiBQcm92aWRlZCBieSBo dHRwOi8vd3d3LmFwaS1kaWdpdGFsLmNvbSAtLQ0KTmV3IHRvIEFzdGVyaXNrPyBKb2luIHVzIGZv ciBhIGxpdmUgaW50cm9kdWN0b3J5IHdlYmluYXIgZXZlcnkgVGh1cnM6DQogICAgICAgICAgICAg IGh0dHA6Ly93d3cuYXN0ZXJpc2sub3JnL2hlbGxvDQoNCmFzdGVyaXNrLXVzZXJzIG1haWxpbmcg bGlzdA0KVG8gVU5TVUJTQ1JJQkUgb3IgdXBkYXRlIG9wdGlvbnMgdmlzaXQ6DQogIGh0dHA6Ly9s aXN0cy5kaWdpdW0uY29tL21haWxtYW4vbGlzdGluZm8vYXN0ZXJpc2stdXNlcnMNClRoaXMgZW1h aWwgKGFuZCBhbnkgYXR0YWNobWVudHMgb3IgaHlwZXJsaW5rcyB3aXRoaW4gaXQpIG1heSBjb250
    YWluIGluZm9ybWF0aW9uIHRoYXQgaXMgY29uZmlkZW50aWFsLCBsZWdhbGx5IHByaXZpbGVnZWQg b3Igb3RoZXJ3aXNlIHByb3RlY3RlZCBmcm9tIGRpc2Nsb3N1cmUuIElmIHlvdSBhcmUgbm90IHRo ZSBpbnRlbmRlZCByZWNpcGllbnQgb2YgdGhpcyBlbWFpbCwgeW91IGFyZSBub3QgZW50aXRsZWQg dG8gdXNlLCBkaXNjbG9zZSwgZGlzdHJpYnV0ZSwgY29weSwgcHJpbnQsIGRpc3NlbWluYXRlIG9y IHJlbHkgb24gdGhpcyBlbWFpbCBpbiBhbnkgd2F5LiBJZiB5b3UgaGF2ZSByZWNlaXZlZCB0aGlz IGVtYWlsIGluIGVycm9yLCBwbGVhc2Ugbm90aWZ5IHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkgYnkg dGVsZXBob25lIG9yIGVtYWlsIGFuZCBkZXN0cm95IGl0LCBhbmQgYWxsIGNvcGllcyBvZiBpdC4g VGhhbmsgeW91IGZvciB5b3VyIGNvb3BlcmF0aW9uLg0K

  • I would especially look at the CHANUNAVAIL dial status Since it sounds like you are probably qualifying your IAX trunk, that status will be the quickest way to overflow from IAX to TDM.

  • TWFueSBUaGFua3MgVHJleSEgVGhhdOKAmXMgd2hhdCBJIG5lZWQuDQotQXNod2luLg0KRnJvbTog YXN0ZXJpc2stdXNlcnMtYm91bmNlc0BsaXN0cy5kaWdpdW0uY29tIFttYWlsdG86YXN0ZXJpc2st dXNlcnMtYm91bmNlc0BsaXN0cy5kaWdpdW0uY29tXSBPbiBCZWhhbGYgT2YgVHJleSBIaWx5YXJk DQpTZW50OiAwMSBKdW5lIDIwMTUgMDY6MjgNClRvOiBBc3RlcmlzayBVc2VycyBNYWlsaW5nIExp c3QgLSBOb24tQ29tbWVyY2lhbCBEaXNjdXNzaW9uDQpTdWJqZWN0OiBSZTogW2FzdGVyaXNrLXVz ZXJzXSBIb3cgdG8gdXNlIFRSVU5LIG9ubHkgaWYgSUFYIGZhaWxzPw0KDQoNCkkgd291bGQgZXNw ZWNpYWxseSBsb29rIGF0IHRoZSBDSEFOVU5BVkFJTCBkaWFsIHN0YXR1cyBTaW5jZSBpdCBzb3Vu ZHMgbGlrZSB5b3UgYXJlIHByb2JhYmx5IHF1YWxpZnlpbmcgeW91ciBJQVggdHJ1bmssIHRoYXQg c3RhdHVzIHdpbGwgYmUgdGhlIHF1aWNrZXN0IHdheSB0byBvdmVyZmxvdyBmcm9tIElBWCB0byBU
    RE0uDQoNCk9uIFNhdCwgTWF5IDMwLCAyMDE1LCAxMTozNSBQTSBBc2h3aW4gU3VyZW5kcmFuIDxB
    c2h3aW4uU3VyZW5kcmFuQG5vdy1oZWFsdGguY29tPG1haWx0bzpBc2h3aW4uU3VyZW5kcmFuQG5v dy1oZWFsdGguY29tPj4gd3JvdGU6DQpIaSBNYXR0LA0KDQpJIHdhcyBhIGJpdCBjb25jZXJuZWQg b24gdGhlIGRlbGF5IGlmIHRoZXJlIG1pZ2h0ICBiZSBhbnkgd2hlbiBteSBpYXggbGluayBpcyBk b3duPw0KSXQgd291bGQgYmUgdHdvIGRpYWwgc3RlcHMgcmlnaHQgd2hlbiBteSBpYXggbGluayBp cyBkb3duLg0KQnV0IEnigJltIG1vcmUgdGhhbiBoYXBweSB0byB0cnkuDQoNCk1hbnkgVGhhbmtz LA0KQXNod2luLg0KRnJvbTogYXN0ZXJpc2stdXNlcnMtYm91bmNlc0BsaXN0cy5kaWdpdW0uY29t PG1haWx0bzphc3Rlcmlzay11c2Vycy1ib3VuY2VzQGxpc3RzLmRpZ2l1bS5jb20+IFttYWlsdG86
    YXN0ZXJpc2stdXNlcnMtYm91bmNlc0BsaXN0cy5kaWdpdW0uY29tPG1haWx0bzphc3Rlcmlzay11
    c2Vycy1ib3VuY2VzQGxpc3RzLmRpZ2l1bS5jb20+XSBPbiBCZWhhbGYgT2YgTWF0dCBSaWRkZWxs IChsaXN0cykNClNlbnQ6IDMwIE1heSAyMDE1IDE2OjU1DQpUbzogQXN0ZXJpc2sgVXNlcnMgTWFp bGluZyBMaXN0IC0gTm9uLUNvbW1lcmNpYWwgRGlzY3Vzc2lvbg0KU3ViamVjdDogUmU6IFthc3Rl cmlzay11c2Vyc10gSG93IHRvIHVzZSBUUlVOSyBvbmx5IGlmIElBWCBmYWlscz8NCg0KVGhlIGNv bW1hbmQgaGUgZ2F2ZSB5b3Ugd2FzIGluIEFzdGVyaXNrLiBXaHkgZG8geW91IG5vdCB3YW50IHRv IGNhbGwgaXQgdG8gdHJ5IGl0Pw0KDQpUaGVuIHlvdSBjYW4gZmFpbCBvdmVyIHRvIHRoZSBvdGhl ciB0cnVuayBpZiB0aGUgSUFYIGxpbmsgaXMgZG93bi4NCg0KS2luZCByZWdhcmRzLA0KDQpNYXR0
    DQoNCk9uIE1heSAzMCwgMjAxNSwgYXQgMjowMyBBTSwgQXNod2luIFN1cmVuZHJhbiA8QXNod2lu LlN1cmVuZHJhbkBub3ctaGVhbHRoLmNvbTxtYWlsdG86QXNod2luLlN1cmVuZHJhbkBub3ctaGVh bHRoLmNvbT4+IHdyb3RlOg0KTWFueSBUaGFua3MgQ2FybG9zLCBJIHdhcyBob3BpbmcgdG8gY2hl Y2sgd2hldGhlciB0aGUgcmVtb3RlIHNlcnZlciBpcw0KYXZhaWxhYmxlIGJlZm9yZSBJIGlzc3Vl IHRoZSBkaWFsIGluIG15IGRpYWwgcGxhbi4NCg0KSXMgdGhlcmUgYSBiZXR0ZXIgd2F5IHRvIGRv IGl0IGluIGFzdGVyaXNrIHdpdGhvdXQgdXNpbmcgdW5peCBjb21tYW5kcz8NCg0KDQpNYW55IFRo YW5rcywNCkFzaHdpbg0KDQpPbiA1LzMwLzE1LCAyOjA2IEFNLCAiQ2FybG9zIENoYXZleiIgPGN1
    cnNvckB0ZWxlY29tYWJtZXguY29tPG1haWx0bzpjdXJzb3JAdGVsZWNvbWFibWV4LmNvbT4+IHdy b3RlOg0KDQpPbiA1LzI5LzE1IDE6MTYgUE0sIEFzaHdpbiBTdXJlbmRyYW4gd3JvdGU6DQpIaSwN
    CkkgaGF2ZSBtdWx0aXBsZSBBc3RlcmlzayBzZXJ2ZXJzIGluIHZhcmlvdXMgcGFydHMgb2YgdGhl IHdvcmxkIGFsbA0KY29ubmVjdGVkIHVzaW5nIGRlZGljYXRlZCBWUE7CuXMuDQoNCkVhY2ggb2Yg dGhlc2Ugc2VydmVycyBoYXZlIGlheCBhbmQgZGFoZGkgVFJVTksgY29uZmlndXJlZCBvbiB0aGVt Lg0KDQpPY2Nhc2lvbmFsbHkgdGhlIFZQTsK5cyBmYWlsLg0KDQpXaGF0IEkgd2FudCB0byBiZSBh YmxlIHRvIGRvIGlzIG9uIG15IGRpYWwgcGxhbiwgdXNlIElBWCBpZiB0aGUgYXN0ZXJpc2sNCnNl cnZlciBjYW4gcmVhY2ggdGhlIHJlbW90ZSBzZXJ2ZXIgdXNpbmcgdGhlIGludGVybmV0IE9SLCB1
    c2UgVFJVTksgb25seQ0KaWYgaXQgY2Fuwrl0IHVzZSBJQVguDQoNCkFueSBpZGVhcyBvbiBob3cg dGhpcyBjYW4gYmUgaW1wbGVtZW50ZWQgb24gdGhlIGRpYWwgcGxhbj8NCg0KDQogICBDaGVjayB0
    aGUgRElBTFNUQVRVUyB2YXJpYWJsZSB0byBzZWUgaWYgdGhlIElBWCB0cnVuayBmYWlsZWQgYW5k DQp0aGVuIGRpYWwgdmlhIERBSERJLg0KDQpodHRwczovL3dpa2kuYXN0ZXJpc2sub3JnL3dpa2kv ZGlzcGxheS9BU1QvRGlhbCtDaGFubmVsK1ZhcmlhYmxlcw0KDQotLQ0KVGVsZWNvbXVuaWNhY2lv bmVzIEFiaWVydGFzIGRlIE3DqXhpY28gUy5BLiBkZSBDLlYuDQpDYXJsb3MgQ2jDoXZleg0KKzUy ICg1NSk5MTE2LTkxMTYxDQoNCg0KLS0NCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KLS0gQmFuZHdpZHRoIGFuZCBD
    b2xvY2F0aW9uIFByb3ZpZGVkIGJ5IGh0dHA6Ly93d3cuYXBpLWRpZ2l0YWwuY29tIC0tDQpOZXcg dG8gQXN0ZXJpc2s/IEpvaW4gdXMgZm9yIGEgbGl2ZSBpbnRyb2R1Y3Rvcnkgd2ViaW5hciBldmVy eSBUaHVyczoNCiAgICAgICAgICAgICBodHRwOi8vd3d3LmFzdGVyaXNrLm9yZy9oZWxsbw0KDQph c3Rlcmlzay11c2VycyBtYWlsaW5nIGxpc3QNClRvIFVOU1VCU0NSSUJFIG9yIHVwZGF0ZSBvcHRp b25zIHZpc2l0Og0KIGh0dHA6Ly9saXN0cy5kaWdpdW0uY29tL21haWxtYW4vbGlzdGluZm8vYXN0
    ZXJpc2stdXNlcnMNCg0KVGhpcyBlbWFpbCAoYW5kIGFueSBhdHRhY2htZW50cyBvciBoeXBlcmxp bmtzIHdpdGhpbiBpdCkgbWF5IGNvbnRhaW4gaW5mb3JtYXRpb24gdGhhdCBpcyBjb25maWRlbnRp YWwsIGxlZ2FsbHkgcHJpdmlsZWdlZCBvciBvdGhlcndpc2UgcHJvdGVjdGVkIGZyb20gZGlzY2xv c3VyZS4gSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCBvZiB0aGlzIGVtYWls LCB5b3UgYXJlIG5vdCBlbnRpdGxlZCB0byB1c2UsIGRpc2Nsb3NlLCBkaXN0cmlidXRlLCBjb3B5
    LCBwcmludCwgZGlzc2VtaW5hdGUgb3IgcmVseSBvbiB0aGlzIGVtYWlsIGluIGFueSB3YXkuIElm IHlvdSBoYXZlIHJlY2VpdmVkIHRoaXMgZW1haWwgaW4gZXJyb3IsIHBsZWFzZSBub3RpZnkgdGhl IHNlbmRlciBpbW1lZGlhdGVseSBieSB0ZWxlcGhvbmUgb3IgZW1haWwgYW5kIGRlc3Ryb3kgaXQs IGFuZCBhbGwgY29waWVzIG9mIGl0LiBUaGFuayB5b3UgZm9yIHlvdXIgY29vcGVyYXRpb24uDQot LQ0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fDQotLSBCYW5kd2lkdGggYW5kIENvbG9jYXRpb24gUHJvdmlkZWQgYnkg aHR0cDovL3d3dy5hcGktZGlnaXRhbC5jb20gLS0NCk5ldyB0byBBc3Rlcmlzaz8gSm9pbiB1cyBm b3IgYSBsaXZlIGludHJvZHVjdG9yeSB3ZWJpbmFyIGV2ZXJ5IFRodXJzOg0KICAgICAgICAgICAg ICBodHRwOi8vd3d3LmFzdGVyaXNrLm9yZy9oZWxsbw0KDQphc3Rlcmlzay11c2VycyBtYWlsaW5n IGxpc3QNClRvIFVOU1VCU0NSSUJFIG9yIHVwZGF0ZSBvcHRpb25zIHZpc2l0Og0KICBodHRwOi8v bGlzdHMuZGlnaXVtLmNvbS9tYWlsbWFuL2xpc3RpbmZvL2FzdGVyaXNrLXVzZXJzDQpUaGlzIGVt YWlsIChhbmQgYW55IGF0dGFjaG1lbnRzIG9yIGh5cGVybGlua3Mgd2l0aGluIGl0KSBtYXkgY29u dGFpbiBpbmZvcm1hdGlvbiB0aGF0IGlzIGNvbmZpZGVudGlhbCwgbGVnYWxseSBwcml2aWxlZ2Vk IG9yIG90aGVyd2lzZSBwcm90ZWN0ZWQgZnJvbSBkaXNjbG9zdXJlLiBJZiB5b3UgYXJlIG5vdCB0
    aGUgaW50ZW5kZWQgcmVjaXBpZW50IG9mIHRoaXMgZW1haWwsIHlvdSBhcmUgbm90IGVudGl0bGVk IHRvIHVzZSwgZGlzY2xvc2UsIGRpc3RyaWJ1dGUsIGNvcHksIHByaW50LCBkaXNzZW1pbmF0ZSBv ciByZWx5IG9uIHRoaXMgZW1haWwgaW4gYW55IHdheS4gSWYgeW91IGhhdmUgcmVjZWl2ZWQgdGhp cyBlbWFpbCBpbiBlcnJvciwgcGxlYXNlIG5vdGlmeSB0aGUgc2VuZGVyIGltbWVkaWF0ZWx5IGJ5
    IHRlbGVwaG9uZSBvciBlbWFpbCBhbmQgZGVzdHJveSBpdCwgYW5kIGFsbCBjb3BpZXMgb2YgaXQu IFRoYW5rIHlvdSBmb3IgeW91ciBjb29wZXJhdGlvbi4NCi0tDQpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCi0tIEJh bmR3aWR0aCBhbmQgQ29sb2NhdGlvbiBQcm92aWRlZCBieSBodHRwOi8vd3d3LmFwaS1kaWdpdGFs LmNvbSAtLQ0KTmV3IHRvIEFzdGVyaXNrPyBKb2luIHVzIGZvciBhIGxpdmUgaW50cm9kdWN0b3J5
    IHdlYmluYXIgZXZlcnkgVGh1cnM6DQogICAgICAgICAgICAgICBodHRwOi8vd3d3LmFzdGVyaXNr Lm9yZy9oZWxsbw0KDQphc3Rlcmlzay11c2VycyBtYWlsaW5nIGxpc3QNClRvIFVOU1VCU0NSSUJF
    IG9yIHVwZGF0ZSBvcHRpb25zIHZpc2l0Og0KICAgaHR0cDovL2xpc3RzLmRpZ2l1bS5jb20vbWFp bG1hbi9saXN0aW5mby9hc3Rlcmlzay11c2Vycw0KVGhpcyBlbWFpbCAoYW5kIGFueSBhdHRhY2ht ZW50cyBvciBoeXBlcmxpbmtzIHdpdGhpbiBpdCkgbWF5IGNvbnRhaW4gaW5mb3JtYXRpb24gdGhh dCBpcyBjb25maWRlbnRpYWwsIGxlZ2FsbHkgcHJpdmlsZWdlZCBvciBvdGhlcndpc2UgcHJvdGVj dGVkIGZyb20gZGlzY2xvc3VyZS4gSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVu dCBvZiB0aGlzIGVtYWlsLCB5b3UgYXJlIG5vdCBlbnRpdGxlZCB0byB1c2UsIGRpc2Nsb3NlLCBk aXN0cmlidXRlLCBjb3B5LCBwcmludCwgZGlzc2VtaW5hdGUgb3IgcmVseSBvbiB0aGlzIGVtYWls IGluIGFueSB3YXkuIElmIHlvdSBoYXZlIHJlY2VpdmVkIHRoaXMgZW1haWwgaW4gZXJyb3IsIHBs ZWFzZSBub3RpZnkgdGhlIHNlbmRlciBpbW1lZGlhdGVseSBieSB0ZWxlcGhvbmUgb3IgZW1haWwg YW5kIGRlc3Ryb3kgaXQsIGFuZCBhbGwgY29waWVzIG9mIGl0LiBUaGFuayB5b3UgZm9yIHlvdXIg Y29vcGVyYXRpb24uDQo