I hope I haven't made any errors, except possibly for typos. It was hard to stay focussed while doing step 27. If you find any errors, please let me know by PM.
Prelims
a) R12C1 = {59/68}
b) R12C2 = {13}
c) R2C34 = {18/27/36/45}, no 9
d) R3C34 = {19/28/37/46}, no 5
e) R34C9 = {18/27/36/45}, no 9
f) R45C1 = {18/27/36/45}, no 9
g) R56C9 = {18/27/36/45}, no 9
h) R67C1 = {13}
i) R7C67 = {39/48/57}, no 1,2,6
j) R8C67 = {17/26/35}, no 4,8,9
k) R89C8 = {49/58/67}, no 1,2,3
l) R89C9 = {29/38/47/56}, no 1
m) 19(3) cage at R5C2 = {289/379/469/478/568}, no 1
n) 15(5) cage at R9C3 = {12345}
o) 42(7) cage at R7C3 = {3456789}
Steps resulting from Prelims
1a. Naked pair {13} in R12C2, locked for C2 and N1, clean-up: no 6,8 in R2C4, no 7,9 in R3C4
1b. Naked pair {13} in R67C1, locked for C1, clean-up: no 6,8 in R45C1
1c. Naked quint {12345} in 15(5) cage at R9C3, locked for R9, clean-up: no 8,9 in R8C8, no 6,7,8,9 in R8C9
2. 31(5) cage at R1C3 must contain 9, locked for R1, clean-up: no 5 in R2C1
2a. 31(5) cage at R4C5 must contain 9, locked for N5
3. 45 rule on R12 1 outie R3C7 = 1 innie R2C5 + 5, R2C5 = {1234}, R3C7 = {6789}
4. 45 rule on R89 1 innie R8C5 = 1 outie R7C3 + 1, no 9 in R7C3, no 1,2,3 in R8C5
5. 1 in R8 only in R8C67 = {17}, locked for R8, clean-up: no 6 in R7C3 (step 4), no 6 in R9C8
6. R8C9 = 2 (hidden single in R8), R9C9 = 9, clean-up: no 7 in R34C9, no 7 in R56C9, no 3 in R7C6, no 4 in R8C8
7. 6 in R9 only in R9C12, locked for N7 and 42(7) cage at R7C3, no 6 in R8C4
7a. 42(7) cage at R7C3 = {3456789}, 7 locked for N7, 9 locked for R8, clean-up: no 8 in R7C3 (step 4)
7b. 3 in R8 only in R8C34, locked for 42(7) cage at R7C3, no 3 in R7C3, clean-up: no 4 in R8C5 (step 4)
7c. 4 in R8 only in R8C1234, locked for 42(7) cage at R7C3, no 4 in R7C3, clean-up: no 5 in R8C5 (step 4)
7d. R7C67 = [48/84/93] (cannot be {57} which clashes with R7C3), no 5,7
8. 6 in N8 only in R7C45 + R8C5, locked for 21(5) cage at R6C3, no 6 in R6C34
8a. 21(5) cage at R6C3 = {12369/12468/12567/13467}
8b. Caged X-Wing for 1 in R67C1 and 21(5) cage at R6C3, no other 1 in R67, clean-up: no 8 in R5C9
8c. 1 in N9 only in R89C7, locked for C7
9. 45 rule on C1 3 innies R389C1 = 18 = {279/468} (cannot be {459} because R9C1 only contains 6,7,8, cannot be {567} which clashes with R12C1), no 5
9a. 2 of {279} must be in R3C1 -> no 7,9 in R3C1
10. 31(5) cage at R1C3 = {16789/25789/34789/45679} (cannot be {35689} which clashes with R1C1), 7 locked for R1
10a. R1C1289 = {1238/1256/1346/2345}
10b. 8 of {1238} must be in R1C1 -> no 8 in R1C89
10c. 2 of {1238/1256/2345} must be in R1C8, 6 of {1346} must be in R1C1 -> no 5,6 in R1C8
11. 2,4,7 in N1 only in R123C3 + R3C12, CPE no 2,4,7 in R45C3
11a. 2 in C1 only in R345C1, CPE no 2 in R4C2
12. 3,4 in N9 only in R7C789 + R9C7, CPE no 3,4 in R56C7
12a. 6 in N9 only in R7C89 + R8C8, CPE no 6 in R6C8
13. Hidden killer quad 1,2,3,4 in R2C2, R2C34, R2C5 and R2C6789 for R2, R2C2, R2C34 and R2C5 each contain one of 1,2,3,4 -> R2C6789 must contain one of 1,2,3,4
13a. 37(7) cage at R1C8 = {1246789/1345789/2345689} contains three of 1,2,3,4 -> R1C89 = {1234}
14. 7 in C9 only in R27C9
14a. 45 rule on C9 3 innies R127C9 = 16 = {178/367/457}
14b. R1C9 = {134} -> no 1,3,4 in R27C9
15. R1C1289 (step 10a) = {1238/1346/2345} (cannot be {1256} because 5,6 only in R1C1), 3 locked for R1
16. 45 rule on C2 4 innies R3489C2 = 22 = {2479/2569/2578/4567}
16a. 2 of {2479/2569/2578} must be in R3C2 -> no 8,9 in R3C2
17. 37(7) cage at R1C8 = {1246789/1345789/2345689}
Consider combinations for 37(7) cage
37(7) cage = {1246789/2345689} => killer triple 6,8,9 in R2C1 and 37(7) cage, locked for R2 => R3C34 = {27/45}
or 37(7) cage = {1345789} => caged X-Wing for 1,3 in R12C2 and 37(7) cage, no other 1,3 in R12 => R3C34 = {27/45}
-> R3C34 = {27/45}
18. 6 in C3 only in R1345C3, CPE no 6 in R3C12
18a. R389C1 (step 9) = {279/468}
18b. 6,7 only in R9C1 -> R9C1 = {67}
18c. R3489C2 (step 16) = {2479/2569/2578/4567}
18d. 2 of {2479} must be in R3C2, 4 of {4567} must be in R8C2 (R89C2 cannot be {567} which clashes with R7C3 + R9C1, ALS block; or if preferred R7C3 + R89C2 + R9C1 cannot contain only 5,6,7) -> no 4 in R3C2
19. 21(5) cage at R6C3 (step 8a) = {12369/12468/12567/13467}
19a. Consider combinations for R7C67 = {48}/[93]
R7C67 = {48} => 2,9 in R7 only in R7C245 => 21(5) cage = {12369/12468/12567} (cannot be {13467} which doesn’t contain 2 or 9)
or R7C67 = [93] => R67C1 = [31] => 21(5) cage = {12468/12567}
-> 21(5) cage = {12369/12468/12567}
20. 21(5) cage at R6C3 (step 19a) = {12369/12468/12567}
20a. 6 of {12567} must be in R8C5 with 5 in R6C4 (R6C3 + R7C45 cannot contain 5 which would clash with R7C3 + R8C5 = [56], step 4), no 5 in R6C3 + R7C45, no 7 in R6C4
21. 37(7) cage at R1C8 = {1246789/1345789/2345689}
21a. Consider combinations for R2C34 (step 17) = {27/45}
R2C34 = {27}, locked for R2, clean-up: no 7 in R3C7 (step 3) => 37(7) cage = {2345689}
or R2C34 = {45}, locked for R2 => 37(7) cage = {1246789}
-> 37(7) cage = {1246789/2345689}
21b. Hidden killer pair 5,7 in R2C34 and 37(7) cage for R2, R2C34 contains one of 5,7 -> 37(7) must contain one of 5,7 in R2 -> no 7 in R3C7, clean-up: no 2 in R2C5 (step 3)
[A much harder forcing chain …]
22. Consider combinations for R12C1 = [59/68/86]
R12C1 = [59] => R45C1 = {27} => R9C1 = 6, R3489C2 (step 16) = {2479/2578} (cannot be {4567} because 5 blocked from R3C2 and 6 blocked from R9C2) => R3C2 = 2, R2C3 = {47}, R3C3 = {467} => R3C34 = {46}/[73] => no 4 in R3C1
or R12C1 = {68} => R389C1 (step 9) = {279} (only remaining combination) => R3C1 = 2
-> no 4 in R3C1
23. R3C34 = [46/64/73/91] (cannot be {28} which clashes with R3C1), no 2,8
23a. 4 in N1 only in R123C3, locked for C3
24. R389C1 (step 9) = {279/468}
24a. R3C1 = {28} -> no 8 in R8C1
24b. 8 in C1 only in R123C1, locked for N1
25. Consider combinations for R12C1 = [59/68/86]
R12C1 = [59] => R3C2 = 2 (as in step 22)
or R12C1 = {68} => R3C1 = 2
-> 2 must be in R3C12, locked for R3, N1 and 27(6) cage at R3C1, no 2 in R4C4, clean-up: no 7 in R2C4
26. R3489C2 (step 16) = {2479/2578/4567} (cannot be {2569} which clashes with R389C1 (step 9) = [846]), 7 locked for C2
26a. 4 of {2479} must be in R4C2 (cannot be [2947] which clashes with R389C1 (step 9) = [846]), no 9 in R4C2
26b. 6 of {4567} must be in R9C2 (cannot be [5647] which clashes with R389C1 (step 9) = [297] because 2 must be in R3C12), no 6 in R4C2
[With hindsight it’s a pity that I didn’t see step 28 before step 27. Please feel free to skip step 27; the results of step 27 can probably be achieved more simply later.]
27. 27(6) cage at R3C1 contains 2 = {123489/123579/123678/124578/234567} (cannot be {124569} which clashes with R45C1 = {45} when R3C1 = 2)
27a. Analysing combinations which contain 5
2 of {123579} must be in R3C1 => R45C1 = {45} => R4C2 = 7, R3C2 = 5
For 2 of {124578} in R3C1 => R45C1 = {45} => R4C4 = 4, R3C2 = 5
For 8 of {124578} in R3C1 => R3C2 = 2, 2 in C1 only in R45C1 = {27} => R4C4 = 7 => R4C2 = 4, R45C3 = {15}
2 of {234567} must be in R3C1 => R45C1 = {45} => R4C4 = 4, R3C2 = 5
-> no 5 in R4C24
27b. Analysing combinations which contain 8
2 of {123489} must be in R3C2 => R3C1 = 8
2 of {123678} must be in R3C1 (R3C12 + R4C2 cannot be [827] which clashes with R45C1 = {27}, only remaining place for 2 in C1) => R3C2 = 7 => R4C2 = 8
For 2 of {124578} in R3C1 => R45C1 = {45} => R4C4 = 4
For 8 in {123489/124578}, no other 8 in cage
-> no 8 in R4C4
[It would probably be possible to eliminate some of the combinations for the 27(6) cage using interactions with R3489C2 but this would have made steps 27a and 27b even more complicated. I’ll wait for a simpler way to reduce the number of combinations.]
28. R3489C2 (step 26) = {2479/4567} (cannot be {2578} because R3C2 = 2, R3C1 = 8, R4C2 = 7 clashes with R45C1 = {27}, only remaining place for 2 in C1), no 8, 4 locked for C2
29. Naked pair {67} in R9C12, locked for R9 and N7 -> R7C3 = 5, R9C8 = 8, R8C8 = 5, clean-up: no 4 in R2C4, no 4 in R7C6
29a. Naked pair {49} in R8C12, locked for R8 and N7
29b. R8C5 = 6 (hidden single in R8)
30. Killer pair 4,7 in R45C1 and R4C2, locked for N4
30a. R3489C2 (step 28) = {2479/4567}
30b. 2,5 only in R3C2 -> R3C2 = {25}
31. 6 in N9 only in R7C89, locked for 33(6) cage at R5C7, no 6 in R5C7 + R6C67
31a. 33(6) cage = {235689/245679/345678}
31b. 7 in N9 only in R7C89 + R8C7, CPE no 7 in R56C7
32. 45 rule on C12 6(3+3 or 4+2) outies R4C34 + R5C3 + R7C3 + R8C34 = 29, R7C3 + R8C34 = 5 + {38} = 16 -> R4C34 + R5C3 = 13 = {139/148/346}, no 7
32a. 4 of {346} must be in R4C4 -> no 6 in R4C4
32b. Consider combinations for R4C34 + R5C3
R4C34 + R5C3 = {139/346} => grouped X-Wing for 3 in R4C34 + R5C3 and R8C34, no other 3 in C34
or R4C34 + R5C3 = {148}, 8 locked for C3 => R8C3 = 3
-> no 3 in R69C3
33. Consider combinations for R4C34 + R5C3 (step 32) = {139/148/346}
R4C34 + R5C3 = {139}, 9 locked for C3
or R4C34 + R5C3 = {148/346} => R4C4 = 4, R4C2 = 7, R45C1 = [54] => R12C1 = {68}, locked for N1 => R123C3 = {479}, 9 locked for C3
-> no 9 in R6C3
34. R4C34 + R5C3 = 13 (step 32) -> R3C12 + R4C2 = 14 = [257/824]
34a. 27(6) cage at R3C1 (step 27) = {123489/123579/124578/234567} (cannot be {123678} which doesn’t contain 4 or 5)
34b. Hidden killer pair 6,9 in 27(6) cage and 19(3) cage at R5C2 for N4, 19(3) cage contains one of 6,9 -> 27(6) cage must contain one of 6,9 -> 27(6) cage = {123489/123579/234567} (cannot be {124578} which doesn’t contain 6 or 9)
34c. 27(6) contains 3 which must be in R4C34 + R5C3 = (step 32) = {139/346}, no 8 in R45C3
34d. Grouped X-Wing for 3 in R4C34 + R5C3 and R8C34, no other 3 in C34, clean-up: no 7 in R3C3
35. 37(7) cage at R1C8 (step 21a) = {1246789/2345689}
35a. R127C9 (step 14a) = {178/367/457} = [187/367/457] (cannot be [376] because 37(7) cage only contains one of 3,7) -> R7C9 = 7, R7C8 = 6 (hidden single in R7), R8C67 = [71]
35b. Naked pair {34} in R79C7, locked for C7
36. 21(5) cage at R6C3 (step 19a) = {12369/12468}, no 5
36a. 3 of {12369} must be in R7C5 -> no 9 in R7C5
37. 33(6) cage at R5C7 (step 31a) contains 6 and 7 = {245679/345678}
37a. 5,8 of {345678} must be in R56C7 -> no 8 in R6C6
38. R6C5 = 7 (hidden single in R6)
39. 21(5) cage at R6C3 (step 36) = {12468} (only remaining combination, cannot be {12369} which clashes with R7C6 + R8C4, ALS block), no 3,9
40. R7C6 = 9 (hidden single in R7), R7C7 = 3, R67C1 = [31], R9C7 = 4, R9C3 = 2, R7C2 = 8, R8C34 = [38], clean-up: no 6 in R5C9
41. Naked pair {24} in R7C45, locked for 21(5) cage at R6C3 -> R6C4 = 1, R6C3 = 8, R9C4 = 5, R2C4 = 2, R2C3 = 7, R7C45 = [42], R3C4 = 6, R3C3 = 4, R4C4 = 3, R5C4 = 9, R1C4 = 7, clean-up: no 5 in R4C9, no 1 in R5C9
42. R4C7 = 7 (hidden single in C7), R4C2 = 4, R8C12 = [49]
43. R7C2 = 8 -> R56C2 = 11 = {56}, locked for C2 and N4 -> R3C12 = [82], R45C1 = [27], R45C3 = [91], R1C3 = 6, R12C1 = [59], R3C7 = 9
44. R1C34 = [67] = 13 -> R1C567 = 18 = {189} (only remaining combination) = [918]
and the rest is naked singles.