getprop("ro.product.device") == "equuleus" || abort("E3004: This package is for \"equuleus\" devices; this is a \"" + getprop("ro.product.device") + "\".");
ui_print("Source: Xiaomi/equuleus/equuleus:10/QKQ1.190828.002/V12.5.1.0.QECCNXM:user/release-keys");
ui_print("Target: Xiaomi/equuleus/equuleus:10/QKQ1.190828.002/V12.5.2.0.QECCNXM:user/release-keys");
ui_print("Verifying current system...");
getprop("ro.build.fingerprint") == "Xiaomi/equuleus/equuleus:10/QKQ1.190828.002/V12.5.1.0.QECCNXM:user/release-keys" ||
    getprop("ro.build.fingerprint") == "Xiaomi/equuleus/equuleus:10/QKQ1.190828.002/V12.5.2.0.QECCNXM:user/release-keys" ||
    abort("E3001: Package expects build fingerprint of Xiaomi/equuleus/equuleus:10/QKQ1.190828.002/V12.5.1.0.QECCNXM:user/release-keys or Xiaomi/equuleus/equuleus:10/QKQ1.190828.002/V12.5.2.0.QECCNXM:user/release-keys; this device has " + getprop("ro.build.fingerprint") + ".");
show_progress(0.100000, 10);
patch_partition_check("EMMC:/dev/block/bootdevice/by-name/boot:45307210:a9bd8358a1d240d9658cff59b3650e23bf1e339b",
                      "EMMC:/dev/block/bootdevice/by-name/boot:45307210:c69d60e234e4787386013bce9aa140a77e07f26d") ||
    abort("E3005: \"EMMC:/dev/block/bootdevice/by-name/boot:45307210:a9bd8358a1d240d9658cff59b3650e23bf1e339b\" or \"EMMC:/dev/block/bootdevice/by-name/boot:45307210:c69d60e234e4787386013bce9aa140a77e07f26d\" has unexpected contents.");
apply_patch_space(45307210) || abort("E3006: Not enough free space on /cache to apply patches.");
show_progress(0.100000, 70);
if (range_sha1("/dev/block/bootdevice/by-name/system", "1510,1,590,698,712,744,751,753,754,1000,1005,1007,1008,1114,1115,1599,1600,2288,2289,2291,2293,2294,2295,2310,2311,2492,2493,3664,3665,3667,3668,3672,3673,3681,3682,3683,3684,9041,9042,9044,9045,9449,9450,9452,9453,10449,10451,16390,16391,16524,16525,19294,19296,25544,25546,32768,32770,32959,32960,34683,34684,34686,34688,34747,34748,34881,34883,35113,35114,35182,35183,35192,35193,35661,35664,35670,35671,35676,35677,35721,35724,35735,35736,35861,35862,35865,35866,35883,37185,38795,38796,38804,38805,38810,38811,38813,38814,45387,45388,45390,45391,45478,45479,45562,45563,48462,48463,48711,48712,48858,48859,49876,49877,50251,50252,50288,50289,55908,55910,61280,61281,61633,61635,61688,61689,61695,61696,61709,61710,62332,62333,63223,63224,63486,63487,63664,63665,65536,65537,66811,66812,67870,67871,70435,70436,75920,75921,77783,77784,77856,77857,82521,82524,84707,84708,87331,87332,87507,87508,87655,87656,87808,87809,90565,90566,90578,90579,91207,91208,98304,98306,98495,98496,105677,105678,105854,105857,106880,106883,108600,108601,108650,108651,108654,108657,110704,110705,110763,110764,110785,110786,111543,111546,111563,111564,111812,111815,111981,111982,112023,112024,112532,112533,113580,113581,113651,113652,113698,113699,114025,114026,114178,114179,122347,122348,122387,122388,125013,125016,129406,129407,129412,129413,129810,129811,130511,130512,130518,130519,131072,131073,133891,133892,135436,135437,149406,149408,154994,154995,155379,155381,155906,155907,156354,156355,156359,156360,156372,156373,156377,156378,156389,156390,156765,156766,156789,156790,158130,158131,158285,158286,158375,158378,158391,158394,159290,159293,163202,163203,163469,163472,163840,163842,164031,164032,166244,166245,166466,166467,169634,169635,169642,169643,169655,169656,169993,169994,171737,171738,172172,172173,173920,173921,176664,176669,177318,177319,181337,181338,182770,182771,187514,187515,188310,188311,191551,191552,196608,196609,197153,197154,204363,204364,204668,204670,204682,204683,204693,204696,204697,204698,204699,204700,204702,204703,204704,204705,204757,204758,204843,204844,204849,204850,204856,204857,204880,204881,204943,204944,204947,204952,204953,204954,204955,204956,204957,204958,205752,205753,205759,205760,206313,206315,206868,206870,206871,206872,206873,206874,206875,206876,206877,206878,206879,206880,206881,206882,206883,206884,206885,206888,208348,208350,208431,208432,208434,210355,210358,210360,210618,210619,210626,210628,211116,211118,211226,211227,211257,211258,211269,211270,211536,211537,211650,211651,211667,211669,212985,212986,226679,226680,229376,229378,229567,229568,235248,235249,237313,237314,237599,237600,242753,242754,259483,259484,259647,259648,262144,262145,266266,266267,287220,287221,294912,294914,295103,295104,298669,299179,299214,299496,299510,299512,299523,299524,315021,315022,319424,319425,319773,319774,320089,320090,320105,320106,320133,320134,320177,320178,322557,324037,327680,327681,329628,329670,338650,338651,347361,347363,347459,347461,347711,347712,351348,351349,356803,356804,357196,357197,357371,357372,358660,358661,360448,360449,363850,363851,366205,366206,366566,366567,366587,366588,366622,366623,366693,366694,378753,378754,390814,390815,393216,393217,400889,400890,409831,409832,415278,415280,425984,425985,427761,427762,431017,431018,435295,435296,438537,438538,443428,443429,450768,450769,451319,451320,451539,451540,453297,453300,455162,455163,455355,455356,458752,458753,459586,459588,459744,459745,459825,459826,460043,460044,460343,460344,460482,460483,462174,462178,462197,462198,462201,462202,462225,462226,462297,462298,462312,462313,462322,462323,462332,462333,462346,462347,462368,462369,462414,462416,462417,462418,462419,462420,462421,462422,462423,462424,462426,462427,462431,462432,462433,462434,462436,462437,462438,462439,462440,462441,462443,462444,462445,462446,462447,462448,462449,462450,462451,462452,462453,462454,462455,462456,462457,462458,462459,462460,462462,462463,462465,462466,462467,462470,462472,462474,462482,462483,462489,462491,462497,462498,462504,462505,462509,462510,463731,463732,463837,463839,463849,463851,463869,463871,463911,463912,463914,463929,463934,479175,479383,479416,479417,479419,479439,479440,479446,479447,479453,479454,479459,479460,479474,479475,479481,479482,479485,479486,479491,479492,479499,479500,479502,479503,479507,479508,479512,479513,479524,479525,479549,479550,479553,479554,479614,479615,479635,479636,479656,479657,479693,479694,479719,479720,479731,479732,479741,479742,479747,479748,479750,479751,479755,479756,479762,479763,479768,479769,479773,479774,479780,479781,479786,479787,479792,479793,479797,479798,479801,479802,479810,479811,479815,479816,479827,479828,479833,479834,479839,479840,479845,479846,479848,479849,479855,479856,479858,479859,479864,479865,479869,479870,479891,479892,479899,479900,479903,479904,479906,479907,479911,479912,479914,479915,479930,479931,479934,479935,479937,479938,479942,479943,479948,479949,479961,479962,479965,479966,479968,479969,479972,479973,479975,479976,479978,479979,479981,479982,479984,479985,479987,479988,479990,479991,479994,479995,479997,479998,480001,480002,480004,480005,480007,480008,480010,480011,480013,480014,480018,480019,480021,480022,480024,480025,480028,480029,480031,480032,480035,480036,480038,480039,480041,480042,480046,480047,480052,480053,480056,480057,480060,480061,480064,480065,480068,480069,480071,480072,480075,480077,480080,480081,480085,480086,480089,480090,480098,480099,480113,480114,480118,480119,480121,480122,480128,480129,480139,480140,480147,480148,480151,480152,480158,480159,480171,480172,480178,480179,480183,480184,480201,480202,480204,480205,480210,480211,480218,480219,480221,480222,480225,480226,480231,480232,480237,480238,480244,480245,480256,480257,480259,480260,480265,480266,480275,480276,480286,480287,480295,480296,480300,480301,480315,480316,480319,480320,480333,480334,480337,480338,480343,480344,480348,480349,480353,480354,480358,480359,480373,480374,480407,480408,480425,480426,480457,480458,480470,480471,480498,480499,480504,480505,480519,480520,480531,480532,480534,480535,480537,480538,480543,480544,480551,480552,480554,480555,480557,480558,480567,480568,480582,480583,480587,480588,480592,480593,480597,480598,480602,480603,480618,480619,480621,480622,480627,480628,480631,480632,480636,480637,480643,480644,480651,480652,480657,480658,480662,480663,480668,480669,480673,480674,480678,480679,480687,480688,480698,480699,480708,480709,480715,480716,480724,480725,480731,480732,480740,480741,480744,480745,480747,480748,480756,480757,480764,480765,480777,480778,480790,480791,480794,480795,480801,480802,480808,480809,480813,480814,480827,480828,480839,480840,480848,480849,480860,480861,480863,480864,480872,480873,480878,480879,480881,480882,480889,480890,480903,480904,480909,480910,480914,480915,480921,480922,480929,480930,480935,480936,480940,480941,480946,480947,480952,480953,480970,480971,480974,480975,480980,480981,480988,480989,481003,481004,481006,481007,481015,481016,481021,481022,481024,481025,481027,481028,481038,481039,481044,481045,481047,481048,481062,481064,481079,481080,481086,481087,481091,481092,481102,481103,481116,481117,481122,481123,481129,481130,481132,481133,481157,481158,481162,481163,481166,481167,481171,481172,481177,481178,481187,481188,481196,481197,481200,481201,481206,481207,481213,481214,481218,481219,481223,481224,481238,481239,481254,481255,481257,481258,481270,481271,481281,481282,481286,481287,481289,481290,481294,481295,481297,481298,481303,481304,481308,481309,481314,481315,481317,481318,481320,481321,481323,481324,481348,481349,481363,481364,481369,481372,484400,484401,484994,484995,486114,486115,487515,487516,487568,487569,488932,488934,489294,489295,491520,491521,495051,495052,495060,495061,495135,495136,516720,516721,520787,520788,520947,520948,520954,520955,521835,521836,521894,521895,524288,524289,530946,530947,531225,531226,533977,533979,534255,534256,534263,534264,535167,535168,536517,536518,539544,539545,539553,539554,539573,539574,539582,539583,539857,539858,539862,539863,541091,541092,541520,541521,541614,541617,541638,541639,541644,541645,543162,543163,543257,543258,549003,549004,550582,550585,553569,553570,557056,557057,560646,560647,563736,563737,572137,572138,585578,585581,586580,586583,586826,586827,589824,589825,601581,601582,605850,605851,607179,617301,622592,622593,638808,638809,640622,640623,644736,644737,644754,644755,644781,644782,652921,652922,652940,652941,652951,652952,653419,653420,654234,654235,655360,655361,664599,664601,666796,666797,666799,666800,669240,669241,669245,669246,672504,672505,672566,672567,679899,679900,684016,684017,684083,684084,684088,684089,684141,684142,687081,687082,687097,687098,687235,687236,688128,688129,689601,689602,690357,690358,690503,690504,690509,690510,690522,690523,690551,690554,692653,692656,692669,692670,692677,692678,692682,692683,692743,692744,692746,692747,692751,692752,692867,692868,692875,692876,692879,692880,692884,692885,692896,692897,707462,707463,720896,720897,723649,723650,725063,725064,728158,728159,728165,728166,728176,728177,728181,728182,728185,728188,728192,728193,728205,728206,728212,728213,728215,728216,728221,728222,731332,731333,731351,731352,731356,731357,731381,731382,731390,731391,731398,731399,731408,731409,731418,731419,731582,731583,731584,731585,731586,731587,731621,731622,731623,731624,732538,732539,735545,735546,736315,736316,741717,741718,742830,742833,743282,743283,743654,743655,745140,745141,745231,745233,745235,745236,745238,745239,745241,745242,745244,745245,745247,745248,745250,745251,745255,745256,745258,745259,745261,745262,745264,745265,745269,745270,745289,745290,745295,745296,745315,745316,745331,745332,745336,745337,745353,745354,745359,745360,745378,745379,745392,745393,745397,745398,745415,745416,745421,745422,745441,745442,745456,745457,745459,745460,745462,745463,745465,745466,745468,745469,745471,745472,745474,745475,745477,745478,745480,745481,745483,745484,745486,745488,745529,745530,746267,746268,746272,746273,753664,753665,754843,754844,764039,764042,764507,764508,765175,765176,765203,765204,765207,765208,765485,765488,765509,765510,765525,766884,767260,767261,767264,767265,767284,767285,767342,767344,767353,767354,767479,767480,767671,767672,767673,767676,774155,780254,780261,780370") == "735795e21a856f61ab78ce1a20a9ad2de50c9d39" || block_image_verify("/dev/block/bootdevice/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat")) then
ui_print("Verified system image...");
else
check_first_block("/dev/block/bootdevice/by-name/system");
ifelse (block_image_recover("/dev/block/bootdevice/by-name/system", "1510,1,590,698,712,744,751,753,754,1000,1005,1007,1008,1114,1115,1599,1600,2288,2289,2291,2293,2294,2295,2310,2311,2492,2493,3664,3665,3667,3668,3672,3673,3681,3682,3683,3684,9041,9042,9044,9045,9449,9450,9452,9453,10449,10451,16390,16391,16524,16525,19294,19296,25544,25546,32768,32770,32959,32960,34683,34684,34686,34688,34747,34748,34881,34883,35113,35114,35182,35183,35192,35193,35661,35664,35670,35671,35676,35677,35721,35724,35735,35736,35861,35862,35865,35866,35883,37185,38795,38796,38804,38805,38810,38811,38813,38814,45387,45388,45390,45391,45478,45479,45562,45563,48462,48463,48711,48712,48858,48859,49876,49877,50251,50252,50288,50289,55908,55910,61280,61281,61633,61635,61688,61689,61695,61696,61709,61710,62332,62333,63223,63224,63486,63487,63664,63665,65536,65537,66811,66812,67870,67871,70435,70436,75920,75921,77783,77784,77856,77857,82521,82524,84707,84708,87331,87332,87507,87508,87655,87656,87808,87809,90565,90566,90578,90579,91207,91208,98304,98306,98495,98496,105677,105678,105854,105857,106880,106883,108600,108601,108650,108651,108654,108657,110704,110705,110763,110764,110785,110786,111543,111546,111563,111564,111812,111815,111981,111982,112023,112024,112532,112533,113580,113581,113651,113652,113698,113699,114025,114026,114178,114179,122347,122348,122387,122388,125013,125016,129406,129407,129412,129413,129810,129811,130511,130512,130518,130519,131072,131073,133891,133892,135436,135437,149406,149408,154994,154995,155379,155381,155906,155907,156354,156355,156359,156360,156372,156373,156377,156378,156389,156390,156765,156766,156789,156790,158130,158131,158285,158286,158375,158378,158391,158394,159290,159293,163202,163203,163469,163472,163840,163842,164031,164032,166244,166245,166466,166467,169634,169635,169642,169643,169655,169656,169993,169994,171737,171738,172172,172173,173920,173921,176664,176669,177318,177319,181337,181338,182770,182771,187514,187515,188310,188311,191551,191552,196608,196609,197153,197154,204363,204364,204668,204670,204682,204683,204693,204696,204697,204698,204699,204700,204702,204703,204704,204705,204757,204758,204843,204844,204849,204850,204856,204857,204880,204881,204943,204944,204947,204952,204953,204954,204955,204956,204957,204958,205752,205753,205759,205760,206313,206315,206868,206870,206871,206872,206873,206874,206875,206876,206877,206878,206879,206880,206881,206882,206883,206884,206885,206888,208348,208350,208431,208432,208434,210355,210358,210360,210618,210619,210626,210628,211116,211118,211226,211227,211257,211258,211269,211270,211536,211537,211650,211651,211667,211669,212985,212986,226679,226680,229376,229378,229567,229568,235248,235249,237313,237314,237599,237600,242753,242754,259483,259484,259647,259648,262144,262145,266266,266267,287220,287221,294912,294914,295103,295104,298669,299179,299214,299496,299510,299512,299523,299524,315021,315022,319424,319425,319773,319774,320089,320090,320105,320106,320133,320134,320177,320178,322557,324037,327680,327681,329628,329670,338650,338651,347361,347363,347459,347461,347711,347712,351348,351349,356803,356804,357196,357197,357371,357372,358660,358661,360448,360449,363850,363851,366205,366206,366566,366567,366587,366588,366622,366623,366693,366694,378753,378754,390814,390815,393216,393217,400889,400890,409831,409832,415278,415280,425984,425985,427761,427762,431017,431018,435295,435296,438537,438538,443428,443429,450768,450769,451319,451320,451539,451540,453297,453300,455162,455163,455355,455356,458752,458753,459586,459588,459744,459745,459825,459826,460043,460044,460343,460344,460482,460483,462174,462178,462197,462198,462201,462202,462225,462226,462297,462298,462312,462313,462322,462323,462332,462333,462346,462347,462368,462369,462414,462416,462417,462418,462419,462420,462421,462422,462423,462424,462426,462427,462431,462432,462433,462434,462436,462437,462438,462439,462440,462441,462443,462444,462445,462446,462447,462448,462449,462450,462451,462452,462453,462454,462455,462456,462457,462458,462459,462460,462462,462463,462465,462466,462467,462470,462472,462474,462482,462483,462489,462491,462497,462498,462504,462505,462509,462510,463731,463732,463837,463839,463849,463851,463869,463871,463911,463912,463914,463929,463934,479175,479383,479416,479417,479419,479439,479440,479446,479447,479453,479454,479459,479460,479474,479475,479481,479482,479485,479486,479491,479492,479499,479500,479502,479503,479507,479508,479512,479513,479524,479525,479549,479550,479553,479554,479614,479615,479635,479636,479656,479657,479693,479694,479719,479720,479731,479732,479741,479742,479747,479748,479750,479751,479755,479756,479762,479763,479768,479769,479773,479774,479780,479781,479786,479787,479792,479793,479797,479798,479801,479802,479810,479811,479815,479816,479827,479828,479833,479834,479839,479840,479845,479846,479848,479849,479855,479856,479858,479859,479864,479865,479869,479870,479891,479892,479899,479900,479903,479904,479906,479907,479911,479912,479914,479915,479930,479931,479934,479935,479937,479938,479942,479943,479948,479949,479961,479962,479965,479966,479968,479969,479972,479973,479975,479976,479978,479979,479981,479982,479984,479985,479987,479988,479990,479991,479994,479995,479997,479998,480001,480002,480004,480005,480007,480008,480010,480011,480013,480014,480018,480019,480021,480022,480024,480025,480028,480029,480031,480032,480035,480036,480038,480039,480041,480042,480046,480047,480052,480053,480056,480057,480060,480061,480064,480065,480068,480069,480071,480072,480075,480077,480080,480081,480085,480086,480089,480090,480098,480099,480113,480114,480118,480119,480121,480122,480128,480129,480139,480140,480147,480148,480151,480152,480158,480159,480171,480172,480178,480179,480183,480184,480201,480202,480204,480205,480210,480211,480218,480219,480221,480222,480225,480226,480231,480232,480237,480238,480244,480245,480256,480257,480259,480260,480265,480266,480275,480276,480286,480287,480295,480296,480300,480301,480315,480316,480319,480320,480333,480334,480337,480338,480343,480344,480348,480349,480353,480354,480358,480359,480373,480374,480407,480408,480425,480426,480457,480458,480470,480471,480498,480499,480504,480505,480519,480520,480531,480532,480534,480535,480537,480538,480543,480544,480551,480552,480554,480555,480557,480558,480567,480568,480582,480583,480587,480588,480592,480593,480597,480598,480602,480603,480618,480619,480621,480622,480627,480628,480631,480632,480636,480637,480643,480644,480651,480652,480657,480658,480662,480663,480668,480669,480673,480674,480678,480679,480687,480688,480698,480699,480708,480709,480715,480716,480724,480725,480731,480732,480740,480741,480744,480745,480747,480748,480756,480757,480764,480765,480777,480778,480790,480791,480794,480795,480801,480802,480808,480809,480813,480814,480827,480828,480839,480840,480848,480849,480860,480861,480863,480864,480872,480873,480878,480879,480881,480882,480889,480890,480903,480904,480909,480910,480914,480915,480921,480922,480929,480930,480935,480936,480940,480941,480946,480947,480952,480953,480970,480971,480974,480975,480980,480981,480988,480989,481003,481004,481006,481007,481015,481016,481021,481022,481024,481025,481027,481028,481038,481039,481044,481045,481047,481048,481062,481064,481079,481080,481086,481087,481091,481092,481102,481103,481116,481117,481122,481123,481129,481130,481132,481133,481157,481158,481162,481163,481166,481167,481171,481172,481177,481178,481187,481188,481196,481197,481200,481201,481206,481207,481213,481214,481218,481219,481223,481224,481238,481239,481254,481255,481257,481258,481270,481271,481281,481282,481286,481287,481289,481290,481294,481295,481297,481298,481303,481304,481308,481309,481314,481315,481317,481318,481320,481321,481323,481324,481348,481349,481363,481364,481369,481372,484400,484401,484994,484995,486114,486115,487515,487516,487568,487569,488932,488934,489294,489295,491520,491521,495051,495052,495060,495061,495135,495136,516720,516721,520787,520788,520947,520948,520954,520955,521835,521836,521894,521895,524288,524289,530946,530947,531225,531226,533977,533979,534255,534256,534263,534264,535167,535168,536517,536518,539544,539545,539553,539554,539573,539574,539582,539583,539857,539858,539862,539863,541091,541092,541520,541521,541614,541617,541638,541639,541644,541645,543162,543163,543257,543258,549003,549004,550582,550585,553569,553570,557056,557057,560646,560647,563736,563737,572137,572138,585578,585581,586580,586583,586826,586827,589824,589825,601581,601582,605850,605851,607179,617301,622592,622593,638808,638809,640622,640623,644736,644737,644754,644755,644781,644782,652921,652922,652940,652941,652951,652952,653419,653420,654234,654235,655360,655361,664599,664601,666796,666797,666799,666800,669240,669241,669245,669246,672504,672505,672566,672567,679899,679900,684016,684017,684083,684084,684088,684089,684141,684142,687081,687082,687097,687098,687235,687236,688128,688129,689601,689602,690357,690358,690503,690504,690509,690510,690522,690523,690551,690554,692653,692656,692669,692670,692677,692678,692682,692683,692743,692744,692746,692747,692751,692752,692867,692868,692875,692876,692879,692880,692884,692885,692896,692897,707462,707463,720896,720897,723649,723650,725063,725064,728158,728159,728165,728166,728176,728177,728181,728182,728185,728188,728192,728193,728205,728206,728212,728213,728215,728216,728221,728222,731332,731333,731351,731352,731356,731357,731381,731382,731390,731391,731398,731399,731408,731409,731418,731419,731582,731583,731584,731585,731586,731587,731621,731622,731623,731624,732538,732539,735545,735546,736315,736316,741717,741718,742830,742833,743282,743283,743654,743655,745140,745141,745231,745233,745235,745236,745238,745239,745241,745242,745244,745245,745247,745248,745250,745251,745255,745256,745258,745259,745261,745262,745264,745265,745269,745270,745289,745290,745295,745296,745315,745316,745331,745332,745336,745337,745353,745354,745359,745360,745378,745379,745392,745393,745397,745398,745415,745416,745421,745422,745441,745442,745456,745457,745459,745460,745462,745463,745465,745466,745468,745469,745471,745472,745474,745475,745477,745478,745480,745481,745483,745484,745486,745488,745529,745530,746267,746268,746272,746273,753664,753665,754843,754844,764039,764042,764507,764508,765175,765176,765203,765204,765207,765208,765485,765488,765509,765510,765525,766884,767260,767261,767264,767265,767284,767285,767342,767344,767353,767354,767479,767480,767671,767672,767673,767676,774155,780254,780261,780370") && block_image_verify("/dev/block/bootdevice/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat"), ui_print("system recovered successfully."), abort("E1004: system partition fails to recover"));
endif;
if (range_sha1("/dev/block/bootdevice/by-name/vendor", "48,1,219,570,578,588,589,670,671,735,736,738,742,744,755,760,761,763,764,772,773,1208,32770,32832,32833,33338,65537,66042,98306,98368,98369,98874,131073,131578,163842,163904,163905,164410,196609,197114,216377,229376,229378,229440,229441,258044,260078,260085,260211") == "1f20da2fb24d4915ef71b2ea5dbb752963db9880" || block_image_verify("/dev/block/bootdevice/by-name/vendor", package_extract_file("vendor.transfer.list"), "vendor.new.dat", "vendor.patch.dat")) then
ui_print("Verified vendor image...");
else
check_first_block("/dev/block/bootdevice/by-name/vendor");
ifelse (block_image_recover("/dev/block/bootdevice/by-name/vendor", "48,1,219,570,578,588,589,670,671,735,736,738,742,744,755,760,761,763,764,772,773,1208,32770,32832,32833,33338,65537,66042,98306,98368,98369,98874,131073,131578,163842,163904,163905,164410,196609,197114,216377,229376,229378,229440,229441,258044,260078,260085,260211") && block_image_verify("/dev/block/bootdevice/by-name/vendor", package_extract_file("vendor.transfer.list"), "vendor.new.dat", "vendor.patch.dat"), ui_print("vendor recovered successfully."), abort("E2004: vendor partition fails to recover"));
endif;

# ---- start making changes here ----

ui_print("Patching boot image...");
show_progress(0.100000, 10);
patch_partition("EMMC:/dev/block/bootdevice/by-name/boot:45307210:a9bd8358a1d240d9658cff59b3650e23bf1e339b",
                "EMMC:/dev/block/bootdevice/by-name/boot:45307210:c69d60e234e4787386013bce9aa140a77e07f26d",
                package_extract_file("boot.img.p")) ||
    abort("E3008: Failed to apply patch to EMMC:/dev/block/bootdevice/by-name/boot:45307210:c69d60e234e4787386013bce9aa140a77e07f26d");

# ---- radio update tasks ----

ui_print("Patching firmware images...");
package_extract_file("firmware-update/abl.elf", "/dev/block/bootdevice/by-name/abl_a");
package_extract_file("firmware-update/abl.elf", "/dev/block/bootdevice/by-name/abl_b");
show_progress(0.600000, 600);
ui_print("Patching system image after verification.");
block_image_update("/dev/block/bootdevice/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat") ||
  abort("E1001: Failed to update system image.");
ui_print("Patching vendor image after verification.");
block_image_update("/dev/block/bootdevice/by-name/vendor", package_extract_file("vendor.transfer.list"), "vendor.new.dat", "vendor.patch.dat") ||
  abort("E2001: Failed to update vendor image.");
show_progress(0.100000, 2);

# ---- radio update tasks 2 ----

ui_print("Patching vbmeta dtbo logo binimages...");
