var status = - 1 ;
var eqs = [
[ 1302030 , [ 1302064 , 1402039 ] ] , // Maple Soul Singer -> Maple Glory Sword / Maple Soul Rohen
[ 1332025 , [ 1332056 , 1332055 ] ] , // Maple Wagner -> Maple Asura Dagger / Maple Dark Mate
[ 1382012 , [ 1382039 , 1372034 ] ] , // Maple Lama Staff -> Maple Wisdom Staff / Maple Shine Wand
[ 1412011 , [ 1312032 , 1412027 ] ] , // Maple Dragon Axe -> Maple Steel Axe / Maple Demon Axe
[ 1422014 , [ 1422029 ] ] , // Maple Doom Singer -> Maple Belzet
[ 1432012 , [ 1432040 ] ] , // Maple Impaler -> Maple Soul Spear
[ 1442024 , [ 1442051 ] ] , // Maple Scorpio -> Maple Karstan
[ 1452022 , [ 1452045 ] ] , // Maple Soul Searcher -> Maple Kandiva Bow
[ 1462019 , [ 1462040 ] ] , // Maple Crossbow -> Maple Nishada
[ 1472032 , [ 1472055 ] ] , // Maple Kandayo -> Maple Skanda
[ 1482021 , [ 1482022 ] ] , // Maple Storm Finger -> Maple Golden Claw
[ 1492021 , [ 1492022 ] ] // Maple Storm Pistol -> Maple Cannon Shooter
] ;
var reqs = [
[ 4001126 , 200 ] , // Maple Leaf
[ 4033440 , 50 ] , // Basic White Essence Stones
[ 4033439 , 25 ] , // Basic Pink Essence Stones
[ 4033433 , 25 ] // Basic Red Essence Stones
] ;
var selEq;
function start( ) {
cm.sendNext ( "Lucky you, #h #! You’ve arrived just in time for an incoming stock of new Maple weapons made by the Resistance. They are quite a mighty upgrade from the old weapons provided by Claudine, would you care to take a look? #v1402039#, #v1302064#, #v1332056#, #v1332055#, #v1382039#, #v1372034#, #v1312032#, #v1412027#, #v1422029#, #v1432040#, #v1442051#, #v1452045#, #v1462040#, #v1472055#, #v1482022#, #v1492022#." ) ;
}
function action( mode, type, selection) {
if ( mode == 0 && status == 2 ) {
cm.sendOk ( "Well it's while stocks last anyway. Come back when you are ready." ) ;
cm.dispose ( ) ;
return ;
} else if ( mode < 1 ) {
cm.dispose ( ) ;
return ;
}
status++;
if ( status == 0 ) {
var text = "We will issue one of these weapons out to you for a price!\r \n " ;
text += "\r \n The requirements are:" ;
text += "\r \n The level 43 Maple weapon you want to upgrade." ;
text += "\r \n \t #v4001126# 200 Maple Leaves from monsters all over Commerci." ;
text += "\r \n \t #v4033440# 50 Basic White Essence Stones from mining in Ardentmill." ;
text += "\r \n \t #v4033439# 25 Basic Pink Essence Stones from mining in Ardentmill." ;
text += "\r \n \t #v4033433# 25 Basic Red Essence Stones from mining in Ardentmill." ;
if ( haveEq( ) ) {
cm.sendNext ( text) ;
} else {
cm.sendOk ( text) ;
cm.dispose ( ) ;
}
} else if ( status == 1 ) {
var selText = "Which equip would you like to upgrade? (The equip chosen will be the top one in your inventory).\r \n " ;
for ( var i = 0 ; i < eqs.length ; i++ ) {
if ( cm.haveItem ( eqs[ i] [ 0 ] ) ) {
selText += "\r \n #L" + i + "##i" + eqs[ i] [ 0 ] + "##z" + eqs[ i] [ 0 ] + "#" ;
}
}
cm.sendSimple ( selText) ;
} else if ( status == 2 ) {
selEq = selection;
var selText = "With a #i" + eqs[ selEq] [ 0 ] + "#, you can get " ;
if ( eqs[ selEq] [ 1 ] .length == 1 ) {
selText += "a #i" + eqls[ selEq] [ 1 ] [ 0 ] + "#" ;
} else {
selText += "either a #i" + eqls[ selEq] [ 1 ] [ 0 ] + "# or a #i" + eqls[ selEq] [ 1 ] [ 0 ] + "#." ;
}
if ( haveReq( selEq) ) {
selText += "\r \n \r \n Would you like to exchange a #i" + eqs[ selEq] [ 0 ] + "#?" ;
cm.sendYesNo ( selText) ;
} else {
cm.sendOk ( selText) ;
cm.dispose ( ) ;
}
} else if ( status == 3 ) {
if ( haveReq( selEq) ) {
if ( cm.canHold ( 1302007 ) ) {
takeReq( selEq) ;
cm.gainItem ( eqs[ selEq] [ 0 ] , 1 , true ) ;
} else {
cm.sendOk ( "Do you even have space to receive the weapon? Come back when you're ready!" ) ;
cm.dispose ( ) ;
}
} else {
cm.dispose ( ) ;
}
}
}
function haveReq( item) {
if ( ! cm.haveItem ( eqs[ item] [ 0 ] ) ) {
return false ;
}
for ( var i = 0 ; i < reqs.length ; i++ ) {
if ( cm.haveItem ( reqs[ i] [ 0 ] , reqs[ i] [ 1 ] ) ) {
return false ;
}
}
return true ;
}
function takeReq( item) {
cm.gainItem ( eqs[ item] [ 0 ] , - 1 ) ;
for ( var i = 0 ; i < reqs.length ; i++ ) {
cm.gainItem ( reqs[ i] [ 0 ] , - reqs[ i] [ 1 ] )
}
return true ;
}
function haveEq( ) {
for ( var i = 0 ; i < eqs.length ; i++ ) {
if ( cm.haveItem ( eqs[ i] [ 0 ] ) ) {
return true ;
}
}
return false ;
}
dmFyIHN0YXR1cyA9IC0xOwp2YXIgZXFzID0gWwoJWzEzMDIwMzAsIFsxMzAyMDY0LCAxNDAyMDM5XV0sIC8vIE1hcGxlIFNvdWwgU2luZ2VyIC0+IE1hcGxlIEdsb3J5IFN3b3JkIC8gTWFwbGUgU291bCBSb2hlbgoJWzEzMzIwMjUsIFsxMzMyMDU2LCAxMzMyMDU1XV0sIC8vIE1hcGxlIFdhZ25lciAtPiBNYXBsZSBBc3VyYSBEYWdnZXIgLyBNYXBsZSBEYXJrIE1hdGUKCVsxMzgyMDEyLCBbMTM4MjAzOSwgMTM3MjAzNF1dLCAvLyBNYXBsZSBMYW1hIFN0YWZmIC0+IE1hcGxlIFdpc2RvbSBTdGFmZiAvIE1hcGxlIFNoaW5lIFdhbmQKCVsxNDEyMDExLCBbMTMxMjAzMiwgMTQxMjAyN11dLCAvLyBNYXBsZSBEcmFnb24gQXhlIC0+IE1hcGxlIFN0ZWVsIEF4ZSAvIE1hcGxlIERlbW9uIEF4ZQoJWzE0MjIwMTQsIFsxNDIyMDI5XV0sICAgICAgICAgIC8vIE1hcGxlIERvb20gU2luZ2VyIC0+IE1hcGxlIEJlbHpldAoJWzE0MzIwMTIsIFsxNDMyMDQwXV0sICAgICAgICAgIC8vIE1hcGxlIEltcGFsZXIgLT4gTWFwbGUgU291bCBTcGVhcgoJWzE0NDIwMjQsIFsxNDQyMDUxXV0sICAgICAgICAgIC8vIE1hcGxlIFNjb3JwaW8gLT4gTWFwbGUgS2Fyc3RhbgoJWzE0NTIwMjIsIFsxNDUyMDQ1XV0sICAgICAgICAgIC8vIE1hcGxlIFNvdWwgU2VhcmNoZXIgLT4gTWFwbGUgS2FuZGl2YSBCb3cKCVsxNDYyMDE5LCBbMTQ2MjA0MF1dLCAgICAgICAgICAvLyBNYXBsZSBDcm9zc2JvdyAtPiBNYXBsZSBOaXNoYWRhCglbMTQ3MjAzMiwgWzE0NzIwNTVdXSwgICAgICAgICAgLy8gTWFwbGUgS2FuZGF5byAtPiBNYXBsZSBTa2FuZGEKCVsxNDgyMDIxLCBbMTQ4MjAyMl1dLCAgICAgICAgICAvLyBNYXBsZSBTdG9ybSBGaW5nZXIgLT4gTWFwbGUgR29sZGVuIENsYXcKCVsxNDkyMDIxLCBbMTQ5MjAyMl1dICAgICAgICAgICAvLyBNYXBsZSBTdG9ybSBQaXN0b2wgLT4gTWFwbGUgQ2Fubm9uIFNob290ZXIKXTsKdmFyIHJlcXMgPSBbCglbNDAwMTEyNiwgMjAwXSwgLy8gTWFwbGUgTGVhZgoJWzQwMzM0NDAsIDUwXSwgIC8vIEJhc2ljIFdoaXRlIEVzc2VuY2UgU3RvbmVzCglbNDAzMzQzOSwgMjVdLCAgLy8gQmFzaWMgUGluayBFc3NlbmNlIFN0b25lcwoJWzQwMzM0MzMsIDI1XSAgIC8vIEJhc2ljIFJlZCBFc3NlbmNlIFN0b25lcwpdOwp2YXIgc2VsRXE7CgpmdW5jdGlvbiBzdGFydCgpIHsKCWNtLnNlbmROZXh0KCJMdWNreSB5b3UsICNoICMhIFlvdeKAmXZlIGFycml2ZWQganVzdCBpbiB0aW1lIGZvciBhbiBpbmNvbWluZyBzdG9jayBvZiBuZXcgTWFwbGUgd2VhcG9ucyBtYWRlIGJ5IHRoZSBSZXNpc3RhbmNlLiBUaGV5IGFyZSBxdWl0ZSBhIG1pZ2h0eSB1cGdyYWRlIGZyb20gdGhlIG9sZCB3ZWFwb25zIHByb3ZpZGVkIGJ5IENsYXVkaW5lLCB3b3VsZCB5b3UgY2FyZSB0byB0YWtlIGEgbG9vaz8gI3YxNDAyMDM5IywgI3YxMzAyMDY0IywgI3YxMzMyMDU2IywgI3YxMzMyMDU1IywgI3YxMzgyMDM5IywgI3YxMzcyMDM0IywgI3YxMzEyMDMyIywgI3YxNDEyMDI3IywgI3YxNDIyMDI5IywgI3YxNDMyMDQwIywgI3YxNDQyMDUxIywgI3YxNDUyMDQ1IywgI3YxNDYyMDQwIywgI3YxNDcyMDU1IywgI3YxNDgyMDIyIywgI3YxNDkyMDIyIy4iKTsKfQoKZnVuY3Rpb24gYWN0aW9uKG1vZGUsIHR5cGUsIHNlbGVjdGlvbikgewoJaWYgKG1vZGUgPT0gMCAmJiBzdGF0dXMgPT0gMikgewoJCWNtLnNlbmRPaygiV2VsbCBpdCdzIHdoaWxlIHN0b2NrcyBsYXN0IGFueXdheS4gQ29tZSBiYWNrIHdoZW4geW91IGFyZSByZWFkeS4iKTsKCQljbS5kaXNwb3NlKCk7CgkJcmV0dXJuOwoJfSBlbHNlIGlmIChtb2RlIDwgMSkgewoJCWNtLmRpc3Bvc2UoKTsKCQlyZXR1cm47Cgl9CglzdGF0dXMrKzsKCWlmIChzdGF0dXMgPT0gMCkgewoJCXZhciB0ZXh0ID0gIldlIHdpbGwgaXNzdWUgb25lIG9mIHRoZXNlIHdlYXBvbnMgb3V0IHRvIHlvdSBmb3IgYSBwcmljZSFcclxuIjsKCQl0ZXh0ICs9ICJcclxuVGhlIHJlcXVpcmVtZW50cyBhcmU6IjsKCQl0ZXh0ICs9ICJcclxuVGhlIGxldmVsIDQzIE1hcGxlIHdlYXBvbiB5b3Ugd2FudCB0byB1cGdyYWRlLiI7CgkJdGV4dCArPSAiXHJcblx0I3Y0MDAxMTI2IyAyMDAgTWFwbGUgTGVhdmVzIGZyb20gbW9uc3RlcnMgYWxsIG92ZXIgQ29tbWVyY2kuIjsKCQl0ZXh0ICs9ICJcclxuXHQjdjQwMzM0NDAjIDUwIEJhc2ljIFdoaXRlIEVzc2VuY2UgU3RvbmVzIGZyb20gbWluaW5nIGluIEFyZGVudG1pbGwuIjsKCQl0ZXh0ICs9ICJcclxuXHQjdjQwMzM0MzkjIDI1IEJhc2ljIFBpbmsgRXNzZW5jZSBTdG9uZXMgZnJvbSBtaW5pbmcgaW4gQXJkZW50bWlsbC4iOwoJCXRleHQgKz0gIlxyXG5cdCN2NDAzMzQzMyMgMjUgQmFzaWMgUmVkIEVzc2VuY2UgU3RvbmVzIGZyb20gbWluaW5nIGluIEFyZGVudG1pbGwuIjsKCQlpZiAoaGF2ZUVxKCkpIHsKCQkJY20uc2VuZE5leHQodGV4dCk7CgkJfSBlbHNlIHsKCQkJY20uc2VuZE9rKHRleHQpOwoJCQljbS5kaXNwb3NlKCk7CgkJfQoJfSBlbHNlIGlmIChzdGF0dXMgPT0gMSkgewoJCXZhciBzZWxUZXh0ID0gIldoaWNoIGVxdWlwIHdvdWxkIHlvdSBsaWtlIHRvIHVwZ3JhZGU/IChUaGUgZXF1aXAgY2hvc2VuIHdpbGwgYmUgdGhlIHRvcCBvbmUgaW4geW91ciBpbnZlbnRvcnkpLlxyXG4iOwoJCWZvciAodmFyIGkgPSAwOyBpIDwgZXFzLmxlbmd0aDsgaSsrKSB7CgkJCWlmIChjbS5oYXZlSXRlbShlcXNbaV1bMF0pKSB7CgkJCQlzZWxUZXh0ICs9ICJcclxuI0wiICsgaSArICIjI2kiICsgZXFzW2ldWzBdICsgIiMjeiIgKyBlcXNbaV1bMF0gKyAiIyI7CgkJCX0KCQl9CgkJY20uc2VuZFNpbXBsZShzZWxUZXh0KTsKCX0gZWxzZSBpZiAoc3RhdHVzID09IDIpIHsKCQlzZWxFcSA9IHNlbGVjdGlvbjsKCQl2YXIgc2VsVGV4dCA9ICJXaXRoIGEgI2kiICsgZXFzW3NlbEVxXVswXSArICIjLCB5b3UgY2FuIGdldCAiOwoJCWlmIChlcXNbc2VsRXFdWzFdLmxlbmd0aCA9PSAxKSB7CgkJCXNlbFRleHQgKz0gImEgI2kiICsgZXFsc1tzZWxFcV1bMV1bMF0gKyAiIyI7CgkJfSBlbHNlIHsKCQkJc2VsVGV4dCArPSAiZWl0aGVyIGEgI2kiICsgZXFsc1tzZWxFcV1bMV1bMF0gKyAiIyBvciBhICNpIiArIGVxbHNbc2VsRXFdWzFdWzBdICsgIiMuIjsKCQl9CgkJaWYgKGhhdmVSZXEoc2VsRXEpKSB7CgkJCXNlbFRleHQgKz0gIlxyXG5cclxuV291bGQgeW91IGxpa2UgdG8gZXhjaGFuZ2UgYSAjaSIgKyBlcXNbc2VsRXFdWzBdICsgIiM/IjsKCQkJY20uc2VuZFllc05vKHNlbFRleHQpOwoJCX0gZWxzZSB7CgkJCWNtLnNlbmRPayhzZWxUZXh0KTsKCQkJY20uZGlzcG9zZSgpOwoJCX0KCX0gZWxzZSBpZiAoc3RhdHVzID09IDMpIHsKCQlpZiAoaGF2ZVJlcShzZWxFcSkpIHsKCQkJaWYgKGNtLmNhbkhvbGQoMTMwMjAwNykpIHsKCQkJCXRha2VSZXEoc2VsRXEpOwoJCQkJY20uZ2Fpbkl0ZW0oZXFzW3NlbEVxXVswXSwgMSwgdHJ1ZSk7CgkJCX0gZWxzZSB7CgkJCQljbS5zZW5kT2soIkRvIHlvdSBldmVuIGhhdmUgc3BhY2UgdG8gcmVjZWl2ZSB0aGUgd2VhcG9uPyBDb21lIGJhY2sgd2hlbiB5b3UncmUgcmVhZHkhIik7CgkJCQljbS5kaXNwb3NlKCk7CgkJCX0KCQl9IGVsc2UgewoJCQljbS5kaXNwb3NlKCk7CgkJfQoJfQp9CgpmdW5jdGlvbiBoYXZlUmVxKGl0ZW0pIHsKCWlmICghY20uaGF2ZUl0ZW0oZXFzW2l0ZW1dWzBdKSkgewoJCXJldHVybiBmYWxzZTsKCX0KCWZvciAodmFyIGkgPSAwOyBpIDwgcmVxcy5sZW5ndGg7IGkrKykgewoJCWlmIChjbS5oYXZlSXRlbShyZXFzW2ldWzBdLCByZXFzW2ldWzFdKSkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJfQoJcmV0dXJuIHRydWU7Cn0KCmZ1bmN0aW9uIHRha2VSZXEoaXRlbSkgewoJY20uZ2Fpbkl0ZW0oZXFzW2l0ZW1dWzBdLCAtMSk7Cglmb3IgKHZhciBpID0gMDsgaSA8IHJlcXMubGVuZ3RoOyBpKyspIHsKCQljbS5nYWluSXRlbShyZXFzW2ldWzBdLCAtcmVxc1tpXVsxXSkKCX0KCXJldHVybiB0cnVlOwp9CgpmdW5jdGlvbiBoYXZlRXEoKSB7Cglmb3IgKHZhciBpID0gMDsgaSA8IGVxcy5sZW5ndGg7IGkrKykgewoJCWlmIChjbS5oYXZlSXRlbShlcXNbaV1bMF0pKSB7CgkJCXJldHVybiB0cnVlOwoJCX0KCX0KCXJldHVybiBmYWxzZTsKfQ==
stdin
cmVzdGFydDoKCiMgQ29uc3RhbnRzCmNvbiA6PSB7CiAgcjE9MiwgcjI9MiwgYmV0YTE9NCwgYmV0YTI9NCwgbXUxPTAuNSwgbXUyPTAuNSwKICBudTE9MC41LCBudTI9MC41LCBldGExPTEuNSwgZXRhMj0xLjUsCiAgdGhldGExPTIsIHRoZXRhMj0yLCBkZWx0YTE9NCwgZGVsdGEyPTQsCiAgZ2FtbWExPTQsIGdhbW1hMj00Cn06CgojIERlZmluZSB1KHgpCnUgOj0geCAtJmd0OyBldmFsZiggKChkZWx0YTEqcjEgLSBkZWx0YTEqKG11MSp4XmV0YTEgKyBudTEqeF50aGV0YTEpKSAvIAogICAgICAgICAgICAgICAgKG11MSp4XmV0YTEgKyBudTEqeF50aGV0YTEgLSByMSAtIGdhbW1hMSkpICk6CiAgICAgICAgICAgICAgICAKIyBEZWZpbmUgZih4KQpmIDo9IHggLSZndDsgZXZhbGYoIChyMipkZWx0YTIgKyAoZ2FtbWEyICsgcjIpKnggLSAobXUyKnUoeCleZXRhMiArIG51Mip1KHgpXnRoZXRhMikqKGRlbHRhMiArIHgpKSApOgoKIyBTb2x2ZSBmKHgpID0gMCBudW1lcmljYWxseQpzb2wgOj0gZnNvbHZlKGYoeCk9MCwgeD0wLi41KTogCngxIDo9IHNvbDogCngyIDo9IHUoeDEpOgoKIyBEZWZpbmUgZzEgYW5kIGcyCmcxIDo9ICh4LHkpIC0mZ3Q7IGV2YWxmKCByMSArIGdhbW1hMSp5LyhkZWx0YTEgKyB5KSAtIG11MSp4XmV0YTEgLSBudTEqeF50aGV0YTEgKToKZzIgOj0gKHgseSkgLSZndDsgZXZhbGYoIHIyICsgZ2FtbWEyKngvKGRlbHRhMiArIHgpIC0gbXUyKnleZXRhMiAtIG51Mip5XnRoZXRhMiApOgoKIyBFdmFsdWF0ZSBnMSBhbmQgZzIgYXQgKHgxLCB4MikKZzFfdmFsIDo9IGcxKHgxLCB4Mik6IApnMl92YWwgOj0gZzIoeDEsIHgyKToKCiMgUGFydGlhbCBkZXJpdmF0aXZlcyBuZWVkZWQgZm9yIGNoYXJhY3RlcmlzdGljIGVxdWF0aW9uCmExMSA6PSBldmFsZiggcjEgKyBnYW1tYTEqeDIvKGRlbHRhMSArIHgyKSAtIG51MSp4MV50aGV0YTEgLSBtdTEqKGV0YTErMSkqeDFeZXRhMSApOgphMjIgOj0gZXZhbGYoIHIyICsgZ2FtbWEyKngxLyhkZWx0YTIgKyB4MSkgLSBudTIqeDJedGhldGEyIC0gbXUyKihldGEyKzEpKngyXmV0YTEgKToKYjExIDo9IGV2YWxmKCAtbnUxKnRoZXRhMSp4MV50aGV0YTEgKToKYjIxIDo9IGV2YWxmKCBnYW1tYTIqZGVsdGEyKngyIC8gKGRlbHRhMiArIHgxKV4yICk6CmMxMiA6PSBldmFsZiggZ2FtbWExKmRlbHRhMSp4MSAvIChkZWx0YTEgKyB4MileMiApOgpjMjIgOj0gZXZhbGYoIC1udTIqdGhldGEyKngyXnRoZXRhMiApOgoKIyBDcml0aWNhbCB0YXUxCnRhdTEgOj0gMC42ODY3NTY6CgojIERlZmluZSBoMSh4KSwgaDIoeCksIGgzKHgpIHdpdGggdGF1MiA9IDAKaDEgOj0geCAtJmd0OyAtKGExMSpjMjIgKyAoYjExKmMyMiAtIGMxMipiMjEpKmNvcyh4KnRhdTEpKV4yIC0gKHgqYzIyICsgKGIxMSpjMjIgLSBjMTIqYjIxKSpzaW4oeCp0YXUxKSleMjoKCmgyIDo9IHggLSZndDsgLShhMTEqYzIyICsgKGIxMSpjMjIgLSBjMTIqYjIxKSpjb3MoeCp0YXUxKSkgKiAKICAgICAgICAgICAgKHheMiAtIGExMSphMjIgKyB4KmIxMSpzaW4oeCp0YXUxKSAtIGEyMipiMTEqY29zKHgqdGF1MSkpICsKICAgICAgICAgICAgKGMyMip4ICsgKGIxMSpjMjIgLSBjMTIqYjIxKSpzaW4oeCp0YXUxKSkgKiAKICAgICAgICAgICAgKHgqKGExMSArIGEyMikgKyB4KmIxMSpjb3MoeCp0YXUxKSArIGEyMipiMTEqc2luKHgqdGF1MSkpOgoKaDMgOj0geCAtJmd0OyAoYTExKmMyMiArIChiMTEqYzIyIC0gYzEyKmIyMSkqY29zKHgqdGF1MSkpICogCiAgICAgICAgICAgICh4KihhMTEgKyBhMjIpICsgeCpiMTEqY29zKHgqdGF1MSkgKyBhMjIqYjExKnNpbih4KnRhdTEpKSArCiAgICAgICAgICAgICh4XjIgLSBhMTEqYTIyICsgeCpiMTEqc2luKHgqdGF1MSkgLSBhMjIqYjExKmNvcyh4KnRhdTEpKSAqIAogICAgICAgICAgICAoeCpjMjIgKyAoYjExKmMyMiAtIGMxMipiMjEpKnNpbih4KnRhdTEpKToKCiMgRmluYWwgY29tYmluZWQgZnVuY3Rpb24KaCA6PSB4IC0mZ3Q7IGgyKHgpXjIgKyBoMyh4KV4yIC0gaDEoeCleMjoKCiMgRmluZCBjcml0aWNhbCByb290CnJvb3QgOj0gZnNvbHZlKGgoeCk9MCwgeD0wLi41KToKeF9jcml0IDo9IHJvb3Q6CmhfdmFsIDo9IGgoeF9jcml0KToKCiMgRGlzcGxheSB0YXUxIHJlbWFpbnMgdmFsaWQKcHJpbnRmKCZxdW90O1Jvb3QgZm91bmQgYXQgeCA9ICUuNWYgd2l0aCBoKHgpID0gJS41ZVxuJnF1b3Q7LCB4X2NyaXQsIGhfdmFsKTs=
restart:
# Constants
con := {
r1=2, r2=2, beta1=4, beta2=4, mu1=0.5, mu2=0.5,
nu1=0.5, nu2=0.5, eta1=1.5, eta2=1.5,
theta1=2, theta2=2, delta1=4, delta2=4,
gamma1=4, gamma2=4
}:
# Define u(x)
u := x -> evalf( ((delta1*r1 - delta1*(mu1*x^eta1 + nu1*x^theta1)) /
(mu1*x^eta1 + nu1*x^theta1 - r1 - gamma1)) ):
# Define f(x)
f := x -> evalf( (r2*delta2 + (gamma2 + r2)*x - (mu2*u(x)^eta2 + nu2*u(x)^theta2)*(delta2 + x)) ):
# Solve f(x) = 0 numerically
sol := fsolve(f(x)=0, x=0..5):
x1 := sol:
x2 := u(x1):
# Define g1 and g2
g1 := (x,y) -> evalf( r1 + gamma1*y/(delta1 + y) - mu1*x^eta1 - nu1*x^theta1 ):
g2 := (x,y) -> evalf( r2 + gamma2*x/(delta2 + x) - mu2*y^eta2 - nu2*y^theta2 ):
# Evaluate g1 and g2 at (x1, x2)
g1_val := g1(x1, x2):
g2_val := g2(x1, x2):
# Partial derivatives needed for characteristic equation
a11 := evalf( r1 + gamma1*x2/(delta1 + x2) - nu1*x1^theta1 - mu1*(eta1+1)*x1^eta1 ):
a22 := evalf( r2 + gamma2*x1/(delta2 + x1) - nu2*x2^theta2 - mu2*(eta2+1)*x2^eta1 ):
b11 := evalf( -nu1*theta1*x1^theta1 ):
b21 := evalf( gamma2*delta2*x2 / (delta2 + x1)^2 ):
c12 := evalf( gamma1*delta1*x1 / (delta1 + x2)^2 ):
c22 := evalf( -nu2*theta2*x2^theta2 ):
# Critical tau1
tau1 := 0.686756:
# Define h1(x), h2(x), h3(x) with tau2 = 0
h1 := x -> -(a11*c22 + (b11*c22 - c12*b21)*cos(x*tau1))^2 - (x*c22 + (b11*c22 - c12*b21)*sin(x*tau1))^2:
h2 := x -> -(a11*c22 + (b11*c22 - c12*b21)*cos(x*tau1)) *
(x^2 - a11*a22 + x*b11*sin(x*tau1) - a22*b11*cos(x*tau1)) +
(c22*x + (b11*c22 - c12*b21)*sin(x*tau1)) *
(x*(a11 + a22) + x*b11*cos(x*tau1) + a22*b11*sin(x*tau1)):
h3 := x -> (a11*c22 + (b11*c22 - c12*b21)*cos(x*tau1)) *
(x*(a11 + a22) + x*b11*cos(x*tau1) + a22*b11*sin(x*tau1)) +
(x^2 - a11*a22 + x*b11*sin(x*tau1) - a22*b11*cos(x*tau1)) *
(x*c22 + (b11*c22 - c12*b21)*sin(x*tau1)):
# Final combined function
h := x -> h2(x)^2 + h3(x)^2 - h1(x)^2:
# Find critical root
root := fsolve(h(x)=0, x=0..5):
x_crit := root:
h_val := h(x_crit):
# Display tau1 remains valid
printf("Root found at x = %.5f with h(x) = %.5e\n", x_crit, h_val);